Merge tag 'dt-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 10 Jan 2022 16:24:40 +0000 (08:24 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 10 Jan 2022 16:24:40 +0000 (08:24 -0800)
Pull ARM SoC devicetree updates from Arnd Bergmann:
 "As usual, this is the bulk of the updates for the SoC tree, adding
  more devices to existing files, addressing issues from ever improving
  automated checking, and fixing minor issues.

  The most interesting bits as usual are the new platforms. All the
  newly supported SoCs belong into existing families this time:

   - Qualcomm gets support for two newly announced platforms, both of
     which can now work in production environments: the SDX65 5G modem
     that can run a minimal Linux on its Cortex-A7 core, and the
     Snapdragon 8 Gen 1, their latest high-end phone SoC.

   - Renesas adds support for R-Car S4-8, the most recent automotive
     Server/Communication SoC.

   - TI adds support for J721s2, a new automotive SoC in the K3 family.

   - Mediatek MT7986a/b is a SoC used in Wifi routers, the latest
     generation following their popular MT76xx series. Only basic
     support is added for now.

   - NXP i.MX8 ULP8 is a new low-power variant of the widespread i.MX8
     series.

   - TI SPEAr320s is a minor variant of the old SPEAr320 SoC that we
     have supported for a long time.

  New boards with the existing SoCs include

   - Aspeed AST2500/AST2600 BMCs in TYAN, Facebook and Yadro servers

   - AT91/SAMA5 based evaluation board

   - NXP gains twenty new development and industrial boards for their
     i.MX and Layerscape SoCs

   - Intel IXP4xx now supports the final two machines in device tree
     that were previously only supported in old style board files.

   - Mediatek MT6589 is used in the Fairphone FP1 phone from 2013, while
     MT8183 is used in the Acer Chromebook 314.

   - Qualcomm gains support for the reference machines using the two new
     SoCs, plus a number of Chromebook variants and phones based on the
     Snapdragon 7c, 845 and 888 SoCs, including various Sony Xperia
     devices and the Microsoft Surface Duo 2.

   - ST STM32 now supports the Engicam i.Core STM32MP1 carrier board.

   - Tegra now boots various older Android devices based on 32-bit chips
     out of the box, including a number of ASUS Transformer tablets.

     There is also a new Jetson AGX Orin developer kit.

   - Apple support adds the missing device trees for all the remaining
     M1 Macbook and iMac variants, though not yet the M1 Pro/Max
     versions.

   - Allwinner now supports another version of the Tanix TX6 set-top box
     based on the H6 SoC.

   - Broadcom gains support for the Netgear RAXE500 Wireless router
     based on BCM4908"

* tag 'dt-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (574 commits)
  Revert "ARM: dts: BCM5301X: define RTL8365MB switch on Asus RT-AC88U"
  arm64: dts: qcom: sm6125: Avoid using missing SM6125_VDDCX
  arm64: dts: qcom: sm8450-qrd: Enable USB nodes
  arm64: dts: qcom: sm8450: Add usb nodes
  ARM: dts: aspeed: add LCLK setting into LPC KCS nodes
  dt-bindings: ipmi: bt-bmc: add 'clocks' as a required property
  ARM: dts: aspeed: add LCLK setting into LPC IBT node
  ARM: dts: aspeed: p10: Add TPM device
  ARM: dts: aspeed: p10: Enable USB host ports
  ARM: dts: aspeed: Add TYAN S8036 BMC machine
  ARM: dts: aspeed: tyan-s7106: Add uart_routing and fix vuart config
  ARM: dts: aspeed: Adding Facebook Bletchley BMC
  ARM: dts: aspeed: g220a: Enable secondary flash
  ARM: dts: Add openbmc-flash-layout-64-alt.dtsi
  ARM: dts: aspeed: Add secure boot controller node
  dt-bindings: aspeed: Add Secure Boot Controller bindings
  ARM: dts: Remove "spidev" nodes
  dt-bindings: pinctrl: samsung: Add pin drive definitions for Exynos850
  dt-bindings: arm: samsung: Document E850-96 board binding
  dt-bindings: Add vendor prefix for WinLink
  ...

557 files changed:
Documentation/devicetree/bindings/arm/apple.yaml
Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/arm/aspeed/aspeed,sbc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml
Documentation/devicetree/bindings/arm/fsl.yaml
Documentation/devicetree/bindings/arm/mediatek.yaml
Documentation/devicetree/bindings/arm/qcom.yaml
Documentation/devicetree/bindings/arm/renesas.yaml
Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
Documentation/devicetree/bindings/arm/stm32/stm32.yaml
Documentation/devicetree/bindings/arm/sunxi.yaml
Documentation/devicetree/bindings/arm/sunxi/allwinner,sun4i-a10-mbus.yaml
Documentation/devicetree/bindings/arm/tegra.yaml
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt [deleted file]
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/arm/ti/k3.yaml
Documentation/devicetree/bindings/bus/fsl,spba-bus.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/bus/imx-weim.txt
Documentation/devicetree/bindings/clock/nvidia,tegra20-car.yaml
Documentation/devicetree/bindings/clock/qcom,gcc-sdx65.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/clock/qcom,gcc-sm8450.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/crypto/allwinner,sun4i-a10-crypto.yaml
Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.txt [deleted file]
Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.txt [deleted file]
Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra210-nvenc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra210-nvjpg.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/i2c/apple,i2c.yaml
Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
Documentation/devicetree/bindings/iommu/apple,dart.yaml
Documentation/devicetree/bindings/ipmi/aspeed,ast2400-ibt-bmc.txt
Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt [deleted file]
Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/media/nvidia,tegra-vde.txt [deleted file]
Documentation/devicetree/bindings/media/nvidia,tegra-vde.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra186-mc.yaml
Documentation/devicetree/bindings/misc/nvidia,tegra186-misc.txt [deleted file]
Documentation/devicetree/bindings/misc/nvidia,tegra186-misc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/misc/nvidia,tegra20-apbmisc.txt [deleted file]
Documentation/devicetree/bindings/misc/nvidia,tegra20-apbmisc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt [deleted file]
Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml
Documentation/devicetree/bindings/pci/apple,pcie.yaml
Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/power/renesas,rcar-sysc.yaml
Documentation/devicetree/bindings/reset/renesas,rst.yaml
Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.txt [deleted file]
Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/serial/8250.yaml
Documentation/devicetree/bindings/serial/nvidia,tegra194-tcu.txt [deleted file]
Documentation/devicetree/bindings/serial/nvidia,tegra194-tcu.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.txt [deleted file]
Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/soc/imx/fsl,imx8mn-disp-blk-ctrl.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml
Documentation/devicetree/bindings/sram/sram.yaml
Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.txt [deleted file]
Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
Documentation/devicetree/bindings/vendor-prefixes.yaml
Documentation/devicetree/bindings/watchdog/apple,wdt.yaml [new file with mode: 0644]
MAINTAINERS
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/am335x-bone-common.dtsi
arch/arm/boot/dts/am335x-boneblack-common.dtsi
arch/arm/boot/dts/am335x-boneblue.dts
arch/arm/boot/dts/am335x-icev2.dts
arch/arm/boot/dts/am335x-osd3358-sm-red.dts
arch/arm/boot/dts/am437x-cm-t43.dts
arch/arm/boot/dts/am437x-gp-evm.dts
arch/arm/boot/dts/am437x-l4.dtsi
arch/arm/boot/dts/am43xx-clocks.dtsi
arch/arm/boot/dts/armada-38x.dtsi
arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts
arch/arm/boot/dts/aspeed-bmc-bytedance-g220a.dts
arch/arm/boot/dts/aspeed-bmc-facebook-bletchley.dts [new file with mode: 0644]
arch/arm/boot/dts/aspeed-bmc-ibm-everest.dts
arch/arm/boot/dts/aspeed-bmc-ibm-rainier.dts
arch/arm/boot/dts/aspeed-bmc-tyan-s7106.dts
arch/arm/boot/dts/aspeed-bmc-tyan-s8036.dts [new file with mode: 0644]
arch/arm/boot/dts/aspeed-bmc-vegman-n110.dts [new file with mode: 0644]
arch/arm/boot/dts/aspeed-bmc-vegman-rx20.dts [new file with mode: 0644]
arch/arm/boot/dts/aspeed-bmc-vegman-sx20.dts [new file with mode: 0644]
arch/arm/boot/dts/aspeed-bmc-vegman.dtsi [new file with mode: 0644]
arch/arm/boot/dts/aspeed-g4.dtsi
arch/arm/boot/dts/aspeed-g5.dtsi
arch/arm/boot/dts/aspeed-g6.dtsi
arch/arm/boot/dts/at91-q5xr5.dts
arch/arm/boot/dts/at91-sama5d2_xplained.dts
arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts [new file with mode: 0644]
arch/arm/boot/dts/at91-sama7g5ek.dts
arch/arm/boot/dts/at91-wb50n.dts
arch/arm/boot/dts/bcm-cygnus.dtsi
arch/arm/boot/dts/bcm-hr2.dtsi
arch/arm/boot/dts/bcm-nsp.dtsi
arch/arm/boot/dts/bcm2711-rpi-4-b.dts
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
arch/arm/boot/dts/bcm53016-meraki-mr32.dts
arch/arm/boot/dts/bcm5301x.dtsi
arch/arm/boot/dts/bcm958625-meraki-alamo.dtsi
arch/arm/boot/dts/elpida_ecb240abacn.dtsi
arch/arm/boot/dts/exynos4210-i9100.dts
arch/arm/boot/dts/exynos5260.dtsi
arch/arm/boot/dts/gemini-nas4220b.dts
arch/arm/boot/dts/imx1-pinfunc.h
arch/arm/boot/dts/imx1.dtsi
arch/arm/boot/dts/imx25.dtsi
arch/arm/boot/dts/imx27-pinfunc.h
arch/arm/boot/dts/imx28-tx28.dts
arch/arm/boot/dts/imx31.dtsi
arch/arm/boot/dts/imx50.dtsi
arch/arm/boot/dts/imx51.dtsi
arch/arm/boot/dts/imx53-tx53.dtsi
arch/arm/boot/dts/imx53.dtsi
arch/arm/boot/dts/imx6dl-mba6.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-mba6a.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-mba6b.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-phytec-mira-rdk-nand.dts
arch/arm/boot/dts/imx6q-mba6.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6q-mba6a.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-mba6b.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-phytec-mira-rdk-emmc.dts
arch/arm/boot/dts/imx6q-phytec-mira-rdk-nand.dts
arch/arm/boot/dts/imx6q-yapp4-crux.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-dhcom-drc02.dtsi
arch/arm/boot/dts/imx6qdl-dhcom-pdk2.dtsi
arch/arm/boot/dts/imx6qdl-dhcom-som.dtsi
arch/arm/boot/dts/imx6qdl-mba6.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-mba6a.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-mba6b.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-phytec-mira-peb-av-02.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-phytec-mira-peb-eval-01.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-phytec-mira-peb-wlbt-05.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-tqma6a.dtsi
arch/arm/boot/dts/imx6qdl-tx6.dtsi
arch/arm/boot/dts/imx6qdl.dtsi
arch/arm/boot/dts/imx6qp-mba6b.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6qp-phytec-mira-rdk-nand.dts
arch/arm/boot/dts/imx6qp-yapp4-crux-plus.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-imx6ull-opos6uldev.dtsi
arch/arm/boot/dts/imx6ul-phytec-segin-ff-rdk-nand.dts
arch/arm/boot/dts/imx6ul-phytec-segin-peb-wlbt-05.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-prti6g.dts
arch/arm/boot/dts/imx6ul-tx6ul.dtsi
arch/arm/boot/dts/imx6ull-jozacp.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-phytec-segin-ff-rdk-nand.dts
arch/arm/boot/dts/imx6ull-phytec-segin-lc-rdk-nand.dts
arch/arm/boot/dts/imx6ull-phytec-segin-peb-wlbt-05.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ulz-bsh-smm-m2.dts [new file with mode: 0644]
arch/arm/boot/dts/imx7d-remarkable2.dts
arch/arm/boot/dts/imx7s-warp.dts
arch/arm/boot/dts/imx7s.dtsi
arch/arm/boot/dts/intel-ixp42x-freecom-fsg-3.dts
arch/arm/boot/dts/intel-ixp42x-gateway-7001.dts [new file with mode: 0644]
arch/arm/boot/dts/intel-ixp42x-goramo-multilink.dts [new file with mode: 0644]
arch/arm/boot/dts/intel-ixp4xx.dtsi
arch/arm/boot/dts/milbeaut-m10v.dtsi
arch/arm/boot/dts/motorola-mapphone-common.dtsi
arch/arm/boot/dts/mt6589-fairphone-fp1.dts [new file with mode: 0644]
arch/arm/boot/dts/mt6589.dtsi
arch/arm/boot/dts/omap3-tao3530.dtsi
arch/arm/boot/dts/openbmc-flash-layout-64-alt.dtsi [new file with mode: 0644]
arch/arm/boot/dts/qcom-apq8016-sbc.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
arch/arm/boot/dts/qcom-ipq4019.dtsi
arch/arm/boot/dts/qcom-ipq8064.dtsi
arch/arm/boot/dts/qcom-mdm9615-wp8548-mangoh-green.dts
arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts
arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dts
arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts
arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
arch/arm/boot/dts/qcom-sdx55-t55.dts
arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts
arch/arm/boot/dts/qcom-sdx55.dtsi
arch/arm/boot/dts/qcom-sdx65-mtp.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-sdx65.dtsi [new file with mode: 0644]
arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts
arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ov5640-single.dtsi
arch/arm/boot/dts/sama5d2.dtsi
arch/arm/boot/dts/sama7g5-pinfunc.h
arch/arm/boot/dts/sama7g5.dtsi
arch/arm/boot/dts/spear1310-evb.dts
arch/arm/boot/dts/spear1340-evb.dts
arch/arm/boot/dts/spear310.dtsi
arch/arm/boot/dts/spear320.dtsi
arch/arm/boot/dts/spear320s.dtsi [new file with mode: 0644]
arch/arm/boot/dts/ste-dbx5x0.dtsi
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts
arch/arm/boot/dts/stm32f429-disco.dts
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi
arch/arm/boot/dts/stm32mp157a-icore-stm32mp1-ctouch2-of10.dts [new file with mode: 0644]
arch/arm/boot/dts/stm32mp157a-icore-stm32mp1-edimm2.2.dts
arch/arm/boot/dts/stm32mp157c-ev1.dts
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
arch/arm/boot/dts/sun8i-h2-plus-bananapi-m2-zero.dts
arch/arm/boot/dts/sun8i-h3-beelink-x2.dts
arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
arch/arm/boot/dts/sun8i-h3.dtsi
arch/arm/boot/dts/sun8i-r40.dtsi
arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
arch/arm/boot/dts/sunxi-h3-h5.dtsi
arch/arm/boot/dts/sunxi-libretech-all-h3-cc.dtsi
arch/arm/boot/dts/tegra114-asus-tf701t.dts [new file with mode: 0644]
arch/arm/boot/dts/tegra114-dalmore.dts
arch/arm/boot/dts/tegra114-roth.dts
arch/arm/boot/dts/tegra114-tn7.dts
arch/arm/boot/dts/tegra114.dtsi
arch/arm/boot/dts/tegra124-apalis-emc.dtsi
arch/arm/boot/dts/tegra124-apalis-eval.dts
arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts
arch/arm/boot/dts/tegra124-apalis-v1.2.dtsi
arch/arm/boot/dts/tegra124-apalis.dtsi
arch/arm/boot/dts/tegra124-jetson-tk1-emc.dtsi
arch/arm/boot/dts/tegra124-jetson-tk1.dts
arch/arm/boot/dts/tegra124-nyan-big-emc.dtsi
arch/arm/boot/dts/tegra124-nyan-big-fhd.dts [new file with mode: 0644]
arch/arm/boot/dts/tegra124-nyan-blaze-emc.dtsi
arch/arm/boot/dts/tegra124-nyan.dtsi
arch/arm/boot/dts/tegra124-peripherals-opp.dtsi
arch/arm/boot/dts/tegra124-venice2.dts
arch/arm/boot/dts/tegra124.dtsi
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts
arch/arm/boot/dts/tegra20-asus-tf101.dts [new file with mode: 0644]
arch/arm/boot/dts/tegra20-colibri-eval-v3.dts
arch/arm/boot/dts/tegra20-colibri-iris.dts
arch/arm/boot/dts/tegra20-colibri.dtsi
arch/arm/boot/dts/tegra20-cpu-opp-microvolt.dtsi
arch/arm/boot/dts/tegra20-cpu-opp.dtsi
arch/arm/boot/dts/tegra20-harmony.dts
arch/arm/boot/dts/tegra20-medcom-wide.dts
arch/arm/boot/dts/tegra20-paz00.dts
arch/arm/boot/dts/tegra20-peripherals-opp.dtsi
arch/arm/boot/dts/tegra20-plutux.dts
arch/arm/boot/dts/tegra20-seaboard.dts
arch/arm/boot/dts/tegra20-tamonten.dtsi
arch/arm/boot/dts/tegra20-tec.dts
arch/arm/boot/dts/tegra20-trimslice.dts
arch/arm/boot/dts/tegra20-ventana.dts
arch/arm/boot/dts/tegra20.dtsi
arch/arm/boot/dts/tegra30-apalis-eval.dts
arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts
arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi
arch/arm/boot/dts/tegra30-apalis.dtsi
arch/arm/boot/dts/tegra30-asus-lvds-display.dtsi [new file with mode: 0644]
arch/arm/boot/dts/tegra30-asus-nexus7-grouper-common.dtsi
arch/arm/boot/dts/tegra30-asus-nexus7-grouper-maxim-pmic.dtsi
arch/arm/boot/dts/tegra30-asus-nexus7-grouper-memory-timings.dtsi
arch/arm/boot/dts/tegra30-asus-nexus7-grouper-ti-pmic.dtsi
arch/arm/boot/dts/tegra30-asus-nexus7-grouper.dtsi
arch/arm/boot/dts/tegra30-asus-nexus7-tilapia.dtsi
arch/arm/boot/dts/tegra30-asus-tf201.dts [new file with mode: 0644]
arch/arm/boot/dts/tegra30-asus-tf300t.dts [new file with mode: 0644]
arch/arm/boot/dts/tegra30-asus-tf300tg.dts [new file with mode: 0644]
arch/arm/boot/dts/tegra30-asus-tf700t.dts [new file with mode: 0644]
arch/arm/boot/dts/tegra30-asus-transformer-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/tegra30-beaver.dts
arch/arm/boot/dts/tegra30-cardhu-a02.dts
arch/arm/boot/dts/tegra30-cardhu-a04.dts
arch/arm/boot/dts/tegra30-cardhu.dtsi
arch/arm/boot/dts/tegra30-colibri.dtsi
arch/arm/boot/dts/tegra30-cpu-opp-microvolt.dtsi
arch/arm/boot/dts/tegra30-cpu-opp.dtsi
arch/arm/boot/dts/tegra30-ouya.dts
arch/arm/boot/dts/tegra30-pegatron-chagall.dts [new file with mode: 0644]
arch/arm/boot/dts/tegra30-peripherals-opp.dtsi
arch/arm/boot/dts/tegra30.dtsi
arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
arch/arm64/boot/dts/allwinner/Makefile
arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-mini.dts [new file with mode: 0644]
arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts
arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
arch/arm64/boot/dts/altera/socfpga_stratix10_socdk_nand.dts
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
arch/arm64/boot/dts/amlogic/meson-gxl-s805x-p241.dts
arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
arch/arm64/boot/dts/apple/Makefile
arch/arm64/boot/dts/apple/t8103-j274.dts
arch/arm64/boot/dts/apple/t8103-j293.dts [new file with mode: 0644]
arch/arm64/boot/dts/apple/t8103-j313.dts [new file with mode: 0644]
arch/arm64/boot/dts/apple/t8103-j456.dts [new file with mode: 0644]
arch/arm64/boot/dts/apple/t8103-j457.dts [new file with mode: 0644]
arch/arm64/boot/dts/apple/t8103-jxxx.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/apple/t8103-pmgr.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/apple/t8103.dtsi
arch/arm64/boot/dts/broadcom/bcm4908/Makefile
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts [new file with mode: 0644]
arch/arm64/boot/dts/exynos/exynos5433.dtsi
arch/arm64/boot/dts/exynos/exynos7.dtsi
arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts
arch/arm64/boot/dts/exynos/exynosautov9.dtsi
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-13bb.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-65bb.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-7777.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-85bb.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-899b.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-9999.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
arch/arm64/boot/dts/freescale/fsl-lx2160a-qds.dts
arch/arm64/boot/dts/freescale/fsl-lx2160a-rdb.dts
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
arch/arm64/boot/dts/freescale/fsl-lx2162a-qds.dts
arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-ctouch2.dts
arch/arm64/boot/dts/freescale/imx8mm-icore-mx8mm-edimm2.2.dts
arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm.dtsi
arch/arm64/boot/dts/freescale/imx8mn-beacon-baseboard.dtsi
arch/arm64/boot/dts/freescale/imx8mn-beacon-som.dtsi
arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl-mba8mx.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mn.dtsi
arch/arm64/boot/dts/freescale/imx8mp-evk.dts
arch/arm64/boot/dts/freescale/imx8mp.dtsi
arch/arm64/boot/dts/freescale/imx8mq-evk.dts
arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts
arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mq-librem5-r4.dts
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi
arch/arm64/boot/dts/freescale/imx8mq-mnt-reform2.dts
arch/arm64/boot/dts/freescale/imx8mq-nitrogen-som.dtsi
arch/arm64/boot/dts/freescale/imx8mq-tqma8mq-mba8mx.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mq.dtsi
arch/arm64/boot/dts/freescale/imx8qm.dtsi
arch/arm64/boot/dts/freescale/imx8qxp.dtsi
arch/arm64/boot/dts/freescale/imx8ulp-evk.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8ulp-pinfunc.h [new file with mode: 0755]
arch/arm64/boot/dts/freescale/imx8ulp.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/mba8mx.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/intel/socfpga_agilex_socdk_nand.dts
arch/arm64/boot/dts/intel/socfpga_n5x_socdk.dts
arch/arm64/boot/dts/marvell/armada-37xx.dtsi
arch/arm64/boot/dts/marvell/cn9130-crb.dtsi
arch/arm64/boot/dts/marvell/cn9130.dtsi
arch/arm64/boot/dts/mediatek/Makefile
arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt7986a.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt7986b.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8173-elm.dtsi
arch/arm64/boot/dts/mediatek/mt8173.dtsi
arch/arm64/boot/dts/mediatek/mt8183-evb.dts
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cozmo.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel-sku1.dts
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel-sku6.dts
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel-sku7.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel.dtsi
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel14-sku2.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel14.dts
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi
arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu-sku22.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
arch/arm64/boot/dts/mediatek/mt8183.dtsi
arch/arm64/boot/dts/mediatek/mt8192.dtsi
arch/arm64/boot/dts/mediatek/mt8516.dtsi
arch/arm64/boot/dts/nvidia/Makefile
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts
arch/arm64/boot/dts/nvidia/tegra132-peripherals-opp.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/nvidia/tegra132.dtsi
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi
arch/arm64/boot/dts/nvidia/tegra186-p3509-0000+p3636-0001.dts
arch/arm64/boot/dts/nvidia/tegra186.dtsi
arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts
arch/arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi
arch/arm64/boot/dts/nvidia/tegra194-p3668-0000.dtsi
arch/arm64/boot/dts/nvidia/tegra194-p3668.dtsi
arch/arm64/boot/dts/nvidia/tegra194.dtsi
arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts
arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi
arch/arm64/boot/dts/nvidia/tegra210-p2894.dtsi
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
arch/arm64/boot/dts/nvidia/tegra210.dtsi
arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts [new file with mode: 0644]
arch/arm64/boot/dts/nvidia/tegra234-p3737-0000.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/nvidia/tegra234-sim-vdk.dts
arch/arm64/boot/dts/nvidia/tegra234.dtsi
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/apq8096-db820c.dts
arch/arm64/boot/dts/qcom/ipq6018.dtsi
arch/arm64/boot/dts/qcom/ipq8074.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/msm8916-samsung-serranove.dts
arch/arm64/boot/dts/qcom/msm8916.dtsi
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts
arch/arm64/boot/dts/qcom/msm8994-msft-lumia-octagon.dtsi
arch/arm64/boot/dts/qcom/msm8994-sony-xperia-kitakami.dtsi
arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi
arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts
arch/arm64/boot/dts/qcom/msm8996.dtsi
arch/arm64/boot/dts/qcom/msm8998-clamshell.dtsi
arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts
arch/arm64/boot/dts/qcom/msm8998-oneplus-common.dtsi
arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
arch/arm64/boot/dts/qcom/msm8998.dtsi
arch/arm64/boot/dts/qcom/pm660.dtsi
arch/arm64/boot/dts/qcom/pm8998.dtsi
arch/arm64/boot/dts/qcom/pmk8350.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r2.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r3.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r4.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r4.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots.dts [deleted file]
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r4.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r9.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen.dts [deleted file]
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r0.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3-kb.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3-lte.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-kb.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor-parade-ps8640.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor-ti-sn65dsi86.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
arch/arm64/boot/dts/qcom/sc7180.dtsi
arch/arm64/boot/dts/qcom/sc7280-crd.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7280-idp-ec-h1.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7280-idp2.dts
arch/arm64/boot/dts/qcom/sc7280.dtsi
arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi
arch/arm64/boot/dts/qcom/sdm630.dtsi
arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts
arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts
arch/arm64/boot/dts/qcom/sdm845-mtp.dts
arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
arch/arm64/boot/dts/qcom/sdm845-oneplus-fajita.dts
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akari.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-apollo.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
arch/arm64/boot/dts/qcom/sdm845.dtsi
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dts
arch/arm64/boot/dts/qcom/sm6125.dtsi
arch/arm64/boot/dts/qcom/sm6350.dtsi
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
arch/arm64/boot/dts/qcom/sm8150.dtsi
arch/arm64/boot/dts/qcom/sm8250-mtp.dts
arch/arm64/boot/dts/qcom/sm8250.dtsi
arch/arm64/boot/dts/qcom/sm8350-hdk.dts
arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sm8350-mtp.dts
arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami-pdx214.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami-pdx215.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sm8350.dtsi
arch/arm64/boot/dts/qcom/sm8450-qrd.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sm8450.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/Makefile
arch/arm64/boot/dts/renesas/cat875.dtsi
arch/arm64/boot/dts/renesas/r8a774a1.dtsi
arch/arm64/boot/dts/renesas/r8a774b1.dtsi
arch/arm64/boot/dts/renesas/r8a774c0.dtsi
arch/arm64/boot/dts/renesas/r8a774e1.dtsi
arch/arm64/boot/dts/renesas/r8a77951.dtsi
arch/arm64/boot/dts/renesas/r8a77960.dtsi
arch/arm64/boot/dts/renesas/r8a77961.dtsi
arch/arm64/boot/dts/renesas/r8a77965.dtsi
arch/arm64/boot/dts/renesas/r8a77980.dtsi
arch/arm64/boot/dts/renesas/r8a77990.dtsi
arch/arm64/boot/dts/renesas/r8a77995.dtsi
arch/arm64/boot/dts/renesas/r8a779a0-falcon-cpu.dtsi
arch/arm64/boot/dts/renesas/r8a779a0.dtsi
arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r8a779f0-spider.dts [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r8a779f0.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r9a07g044.dtsi
arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi
arch/arm64/boot/dts/renesas/rzg2l-smarc.dtsi
arch/arm64/boot/dts/renesas/salvator-common.dtsi
arch/arm64/boot/dts/renesas/ulcb.dtsi
arch/arm64/boot/dts/rockchip/px30.dtsi
arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4a-plus.dts
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b-plus.dts
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
arch/arm64/boot/dts/rockchip/rk356x.dtsi
arch/arm64/boot/dts/ti/Makefile
arch/arm64/boot/dts/ti/k3-am64-main.dtsi
arch/arm64/boot/dts/ti/k3-am642-evm.dts
arch/arm64/boot/dts/ti/k3-am642-sk.dts
arch/arm64/boot/dts/ti/k3-am642.dtsi
arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
arch/arm64/boot/dts/ti/k3-am654-base-board.dts
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
arch/arm64/boot/dts/ti/k3-j7200.dtsi
arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
arch/arm64/boot/dts/ti/k3-j721e.dtsi
arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts [new file with mode: 0644]
arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/ti/k3-j721s2.dtsi [new file with mode: 0644]
drivers/clk/sunxi-ng/ccu-sun50i-a64.h
drivers/clk/sunxi-ng/ccu-sun8i-h3.h
drivers/soc/bcm/brcmstb/pm/pm-mips.c
include/dt-bindings/clock/qcom,gcc-sdx65.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,gcc-sm8450.h [new file with mode: 0644]
include/dt-bindings/clock/sun50i-a64-ccu.h
include/dt-bindings/clock/sun8i-h3-ccu.h
include/dt-bindings/clock/tegra234-clock.h
include/dt-bindings/memory/tegra234-mc.h [new file with mode: 0644]
include/dt-bindings/pinctrl/k3.h
include/dt-bindings/pinctrl/samsung.h
include/dt-bindings/power/imx8ulp-power.h [new file with mode: 0644]
include/dt-bindings/reset/tegra234-reset.h

index 1e772c8..8d93e8a 100644 (file)
@@ -12,12 +12,19 @@ maintainers:
 description: |
   ARM platforms using SoCs designed by Apple Inc., branded "Apple Silicon".
 
-  This currently includes devices based on the "M1" SoC, starting with the
-  three Mac models released in late 2020:
+  This currently includes devices based on the "M1" SoC:
 
   - Mac mini (M1, 2020)
   - MacBook Pro (13-inch, M1, 2020)
   - MacBook Air (M1, 2020)
+  - iMac (24-inch, M1, 2021)
+
+  And devices based on the "M1 Pro" and "M1 Max" SoCs:
+
+  - MacBook Pro (14-inch, M1 Pro, 2021)
+  - MacBook Pro (14-inch, M1 Max, 2021)
+  - MacBook Pro (16-inch, M1 Pro, 2021)
+  - MacBook Pro (16-inch, M1 Max, 2021)
 
   The compatible property should follow this format:
 
@@ -56,8 +63,24 @@ properties:
               - apple,j274 # Mac mini (M1, 2020)
               - apple,j293 # MacBook Pro (13-inch, M1, 2020)
               - apple,j313 # MacBook Air (M1, 2020)
+              - apple,j456 # iMac (24-inch, 4x USB-C, M1, 2021)
+              - apple,j457 # iMac (24-inch, 2x USB-C, M1, 2021)
           - const: apple,t8103
           - const: apple,arm-platform
+      - description: Apple M1 Pro SoC based platforms
+        items:
+          - enum:
+              - apple,j314s # MacBook Pro (14-inch, M1 Pro, 2021)
+              - apple,j316s # MacBook Pro (16-inch, M1 Pro, 2021)
+          - const: apple,t6000
+          - const: apple,arm-platform
+      - description: Apple M1 Max SoC based platforms
+        items:
+          - enum:
+              - apple,j314c # MacBook Pro (14-inch, M1 Max, 2021)
+              - apple,j316c # MacBook Pro (16-inch, M1 Max, 2021)
+          - const: apple,t6001
+          - const: apple,arm-platform
 
 additionalProperties: true
 
diff --git a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
new file mode 100644 (file)
index 0000000..b6b5d3a
--- /dev/null
@@ -0,0 +1,134 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/apple/apple,pmgr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple SoC Power Manager (PMGR)
+
+maintainers:
+  - Hector Martin <marcan@marcan.st>
+
+description: |
+  Apple SoCs include PMGR blocks responsible for power management,
+  which can control various clocks, resets, power states, and
+  performance features. This node represents the PMGR as a syscon,
+  with sub-nodes representing individual features.
+
+properties:
+  $nodename:
+    pattern: "^power-management@[0-9a-f]+$"
+
+  compatible:
+    items:
+      - enum:
+          - apple,t8103-pmgr
+          - apple,t6000-pmgr
+      - const: apple,pmgr
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+patternProperties:
+  "power-controller@[0-9a-f]+$":
+    description:
+      The individual power management domains within this controller
+    type: object
+    $ref: /power/apple,pmgr-pwrstate.yaml#
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        power-management@23b700000 {
+            compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
+            #address-cells = <1>;
+            #size-cells = <1>;
+            reg = <0x2 0x3b700000 0x0 0x14000>;
+
+            ps_sio: power-controller@1c0 {
+                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+                reg = <0x1c0 8>;
+                #power-domain-cells = <0>;
+                #reset-cells = <0>;
+                label = "sio";
+                apple,always-on;
+            };
+
+            ps_uart_p: power-controller@220 {
+                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+                reg = <0x220 8>;
+                #power-domain-cells = <0>;
+                #reset-cells = <0>;
+                label = "uart_p";
+                power-domains = <&ps_sio>;
+            };
+
+            ps_uart0: power-controller@270 {
+                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+                reg = <0x270 8>;
+                #power-domain-cells = <0>;
+                #reset-cells = <0>;
+                label = "uart0";
+                power-domains = <&ps_uart_p>;
+            };
+        };
+
+        power-management@23d280000 {
+            compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
+            #address-cells = <1>;
+            #size-cells = <1>;
+            reg = <0x2 0x3d280000 0x0 0xc000>;
+
+            ps_aop_filter: power-controller@4000 {
+                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+                reg = <0x4000 8>;
+                #power-domain-cells = <0>;
+                #reset-cells = <0>;
+                label = "aop_filter";
+            };
+
+            ps_aop_base: power-controller@4010 {
+                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+                reg = <0x4010 8>;
+                #power-domain-cells = <0>;
+                #reset-cells = <0>;
+                label = "aop_base";
+                power-domains = <&ps_aop_filter>;
+            };
+
+            ps_aop_shim: power-controller@4038 {
+                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+                reg = <0x4038 8>;
+                #power-domain-cells = <0>;
+                #reset-cells = <0>;
+                label = "aop_shim";
+                power-domains = <&ps_aop_base>;
+            };
+
+            ps_aop_uart0: power-controller@4048 {
+                compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+                reg = <0x4048 8>;
+                #power-domain-cells = <0>;
+                #reset-cells = <0>;
+                label = "aop_uart0";
+                power-domains = <&ps_aop_shim>;
+            };
+        };
+    };
diff --git a/Documentation/devicetree/bindings/arm/aspeed/aspeed,sbc.yaml b/Documentation/devicetree/bindings/arm/aspeed/aspeed,sbc.yaml
new file mode 100644 (file)
index 0000000..c72aab7
--- /dev/null
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
+# Copyright 2021 Joel Stanley, IBM Corp.
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/arm/aspeed/aspeed,sbc.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: ASPEED Secure Boot Controller
+
+maintainers:
+  - Joel Stanley <joel@jms.id.au>
+  - Andrew Jeffery <andrew@aj.id.au>
+
+description: |
+  The ASPEED SoCs have a register bank for interacting with the secure boot
+  controller.
+
+properties:
+  compatible:
+    items:
+      - const: aspeed,ast2600-sbc
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    sbc: secure-boot-controller@1e6f2000 {
+            compatible = "aspeed,ast2600-sbc";
+            reg = <0x1e6f2000 0x1000>;
+    };
index 2cd4e4a..9b74553 100644 (file)
@@ -29,6 +29,7 @@ properties:
         items:
           - enum:
               - asus,gt-ac5300
+              - netgear,raxe500
           - const: brcm,bcm4908
 
       - description: BCM49408 based boards
index 0b595b2..97f6eeb 100644 (file)
@@ -240,6 +240,7 @@ properties:
               - uniwest,imx6q-evi         # Uniwest Evi
               - variscite,dt6customboard
               - wand,imx6q-wandboard      # Wandboard i.MX6 Quad Board
+              - ysoft,imx6q-yapp4-crux    # i.MX6 Quad Y Soft IOTA Crux board
               - zealz,imx6q-gk802         # Zealz GK802
               - zii,imx6q-zii-rdu2        # ZII RDU2 Board
           - const: fsl,imx6q
@@ -323,6 +324,20 @@ properties:
           - const: toradex,apalis_imx6q
           - const: fsl,imx6q
 
+      - description: TQ-Systems TQMa6Q SoM (variant A) on MBa6x
+        items:
+          - const: tq,imx6q-mba6x-a
+          - const: tq,mba6a               # Expected by bootloader, to be removed in the future
+          - const: tq,imx6q-tqma6q-a
+          - const: fsl,imx6q
+
+      - description: TQ-Systems TQMa6Q SoM (variant B) on MBa6x
+        items:
+          - const: tq,imx6q-mba6x-b
+          - const: tq,mba6b               # Expected by bootloader, to be removed in the future
+          - const: tq,imx6q-tqma6q-b
+          - const: fsl,imx6q
+
       - description: i.MX6QP based Boards
         items:
           - enum:
@@ -334,6 +349,7 @@ properties:
               - kvg,vicutp                # Kverneland UT1P board
               - prt,prtwd3                # Protonic WD3 board
               - wand,imx6qp-wandboard     # Wandboard i.MX6 QuadPlus Board
+              - ysoft,imx6qp-yapp4-crux-plus  # i.MX6 Quad Plus Y Soft IOTA Crux+ board
               - zii,imx6qp-zii-rdu2       # ZII RDU2+ Board
           - const: fsl,imx6qp
 
@@ -344,6 +360,13 @@ properties:
           - const: phytec,imx6qdl-pcm058  # PHYTEC phyCORE-i.MX6
           - const: fsl,imx6qp
 
+      - description: TQ-Systems TQMa6QP SoM on MBa6x
+        items:
+          - const: tq,imx6qp-mba6x-b
+          - const: tq,mba6b               # Expected by bootloader, to be removed in the future
+          - const: tq,imx6qp-tqma6qp-b
+          - const: fsl,imx6qp
+
       - description: i.MX6DL based Boards
         items:
           - enum:
@@ -482,6 +505,20 @@ properties:
           - const: dh,imx6s-dhcom-som
           - const: fsl,imx6dl
 
+      - description: TQ-Systems TQMa6DL SoM (variant A) on MBa6x
+        items:
+          - const: tq,imx6dl-mba6x-a
+          - const: tq,mba6a               # Expected by bootloader, to be removed in the future
+          - const: tq,imx6dl-tqma6dl-a
+          - const: fsl,imx6dl
+
+      - description: TQ-Systems TQMa6DL SoM (variant B) on MBa6x
+        items:
+          - const: tq,imx6dl-mba6x-b
+          - const: tq,mba6b               # Expected by bootloader, to be removed in the future
+          - const: tq,imx6dl-tqma6dl-b
+          - const: fsl,imx6dl
+
       - description: i.MX6SL based Boards
         items:
           - enum:
@@ -580,6 +617,7 @@ properties:
         items:
           - enum:
               - fsl,imx6ull-14x14-evk     # i.MX6 UltraLiteLite 14x14 EVK Board
+              - joz,jozacp                # JOZ Access Point
               - kontron,imx6ull-n6411-som # Kontron N6411 SOM
               - myir,imx6ull-mys-6ulx-eval # MYiR Tech iMX6ULL Evaluation Board
               - toradex,colibri-imx6ull      # Colibri iMX6ULL Modules
@@ -632,6 +670,7 @@ properties:
       - description: i.MX6ULZ based Boards
         items:
           - enum:
+              - bsh,imx6ulz-bsh-smm-m2    # i.MX6 ULZ BSH SystemMaster
               - fsl,imx6ulz-14x14-evk     # i.MX6 ULZ 14x14 EVK Board
           - const: fsl,imx6ull # This seems odd. Should be last?
           - const: fsl,imx6ulz
@@ -754,10 +793,23 @@ properties:
           - const: variscite,var-som-mx8mm
           - const: fsl,imx8mm
 
+      - description:
+          TQMa8MxML is a series of SOM featuring NXP i.MX8MM system-on-chip
+          variants. It is designed to be soldered on different carrier boards.
+          All variants (TQMa8M[Q,D,S][L]ML) use the same device tree, hence only
+          one compatible is needed.
+        items:
+          - enum:
+              - tq,imx8mm-tqma8mqml-mba8mx # TQ-Systems GmbH i.MX8MM TQMa8MQML SOM on MBa8Mx
+          - const: tq,imx8mm-tqma8mqml     # TQ-Systems GmbH i.MX8MM TQMa8MQML SOM
+          - const: fsl,imx8mm
+
       - description: i.MX8MN based Boards
         items:
           - enum:
               - beacon,imx8mn-beacon-kit  # i.MX8MN Beacon Development Kit
+              - bsh,imx8mn-bsh-smm-s2     # i.MX8MN BSH SystemMaster S2
+              - bsh,imx8mn-bsh-smm-s2pro  # i.MX8MN BSH SystemMaster S2 PRO
               - fsl,imx8mn-ddr4-evk       # i.MX8MN DDR4 EVK Board
               - fsl,imx8mn-evk            # i.MX8MN LPDDR4 EVK Board
               - gw,imx8mn-gw7902          # i.MX8MM Gateworks Board
@@ -769,6 +821,17 @@ properties:
           - const: variscite,var-som-mx8mn
           - const: fsl,imx8mn
 
+      - description:
+          TQMa8MxNL is a series of SOM featuring NXP i.MX8MN system-on-chip
+          variants. It is designed to be soldered on different carrier boards.
+          All variants (TQMa8M[Q,D,S][L]NL) use the same device tree, hence only
+          one compatible is needed.
+        items:
+          - enum:
+              - tq,imx8mn-tqma8mqnl-mba8mx # TQ-Systems GmbH i.MX8MN TQMa8MQNL SOM on MBa8Mx
+          - const: tq,imx8mn-tqma8mqnl     # TQ-Systems GmbH i.MX8MN TQMa8MQNL SOM
+          - const: fsl,imx8mn
+
       - description: i.MX8MP based Boards
         items:
           - enum:
@@ -805,6 +868,15 @@ properties:
           - const: purism,librem5
           - const: fsl,imx8mq
 
+      - description:
+          TQMa8Mx is a series of SOM featuring NXP i.MX8MQ system-on-chip
+          variants. It is designed to be clicked on different carrier boards.
+        items:
+          - enum:
+              - tq,imx8mq-tqma8mq-mba8mx # TQ-Systems GmbH i.MX8MQ TQMa8Mx SOM on MBa8Mx
+          - const: tq,imx8mq-tqma8mq     # TQ-Systems GmbH i.MX8MQ TQMa8Mx SOM
+          - const: fsl,imx8mq
+
       - description: Zodiac Inflight Innovations Ultra Boards
         items:
           - enum:
@@ -834,6 +906,12 @@ properties:
           - const: toradex,colibri-imx8x
           - const: fsl,imx8qxp
 
+      - description: i.MX8ULP based Boards
+        items:
+          - enum:
+              - fsl,imx8ulp-evk           # i.MX8ULP EVK Board
+          - const: fsl,imx8ulp
+
       - description:
           Freescale Vybrid Platform Device Tree Bindings
 
index 0fa5549..0ffe1ac 100644 (file)
@@ -77,6 +77,14 @@ properties:
           - enum:
               - mediatek,mt7629-rfb
           - const: mediatek,mt7629
+      - items:
+          - enum:
+              - mediatek,mt7986a-rfb
+          - const: mediatek,mt7986a
+      - items:
+          - enum:
+              - mediatek,mt7986b-rfb
+          - const: mediatek,mt7986b
       - items:
           - enum:
               - mediatek,mt8127-moose
@@ -134,6 +142,10 @@ properties:
               - google,krane-sku176
           - const: google,krane
           - const: mediatek,mt8183
+      - description: Google Cozmo (Acer Chromebook 314)
+        items:
+          - const: google,cozmo
+          - const: mediatek,mt8183
       - description: Google Damu (ASUS Chromebook Flip CM3)
         items:
           - const: google,damu
@@ -143,7 +155,9 @@ properties:
           - enum:
               - google,fennel-sku0
               - google,fennel-sku1
+              - google,fennel-sku2
               - google,fennel-sku6
+              - google,fennel-sku7
           - const: google,fennel
           - const: mediatek,mt8183
       - description: Google Juniper (Acer Chromebook Spin 311) / Kenzo (Acer Chromebook 311)
@@ -159,6 +173,12 @@ properties:
           - const: google,kakadu-rev2
           - const: google,kakadu
           - const: mediatek,mt8183
+      - description: Google Kakadu (ASUS Chromebook Detachable CM3)
+        items:
+          - const: google,kakadu-rev3-sku22
+          - const: google,kakadu-rev2-sku22
+          - const: google,kakadu
+          - const: mediatek,mt8183
       - description: Google Kappa (HP Chromebook 11a)
         items:
           - const: google,kappa
index 29a0bd3..370aab2 100644 (file)
@@ -48,6 +48,7 @@ description: |
         sdx65
         sm7225
         sm8150
+        sdx65
         sm8250
         sm8350
         sm8450
@@ -202,8 +203,10 @@ properties:
 
       - items:
           - enum:
+              - qcom,sc7280-crd
               - qcom,sc7280-idp
               - qcom,sc7280-idp2
+              - google,hoglin
               - google,piglin
               - google,senor
           - const: qcom,sc7280
@@ -225,6 +228,11 @@ properties:
               - qcom,sdx65-mtp
           - const: qcom,sdx65
 
+      - items:
+          - enum:
+              - qcom,sdx65-mtp
+          - const: qcom,sdx65
+
       - items:
           - enum:
               - qcom,ipq6018-cp01
index 5172065..6a9350e 100644 (file)
@@ -315,6 +315,18 @@ properties:
           - const: renesas,falcon-cpu
           - const: renesas,r8a779a0
 
+      - description: R-Car S4-8 (R8A779F0)
+        items:
+          - enum:
+              - renesas,spider-cpu # Spider CPU board (RTP8A779F0ASKB0SC2S)
+          - const: renesas,r8a779f0
+
+      - items:
+          - enum:
+              - renesas,spider-breakout # Spider BreakOut board (RTP8A779F0ASKB0SB0S)
+          - const: renesas,spider-cpu
+          - const: renesas,r8a779f0
+
       - description: R-Car H3e (R8A779M0)
         items:
           - enum:
index ef6dc14..052cd94 100644 (file)
@@ -199,6 +199,18 @@ properties:
               - samsung,exynos7-espresso        # Samsung Exynos7 Espresso
           - const: samsung,exynos7
 
+      - description: Exynos7885 based boards
+        items:
+          - enum:
+              - samsung,jackpotlte              # Samsung Galaxy A8 (2018)
+          - const: samsung,exynos7885
+
+      - description: Exynos850 based boards
+        items:
+          - enum:
+              - winlink,e850-96                 # WinLink E850-96
+          - const: samsung,exynos850
+
       - description: Exynos Auto v9 based boards
         items:
           - enum:
index bcaf7be..b07720e 100644 (file)
@@ -77,6 +77,7 @@ properties:
         items:
           - enum:
               - engicam,icore-stm32mp1-ctouch2       # STM32MP1 Engicam i.Core STM32MP1 C.TOUCH 2.0
+              - engicam,icore-stm32mp1-ctouch2-of10  # STM32MP1 Engicam i.Core STM32MP1 C.TOUCH 2.0 10.1" OF
               - engicam,icore-stm32mp1-edimm2.2      # STM32MP1 Engicam i.Core STM32MP1 EDIMM2.2 Starter Kit
           - const: engicam,icore-stm32mp1            # STM32MP1 Engicam i.Core STM32MP1 SoM
           - const: st,stm32mp157
index 889128a..c8a3102 100644 (file)
@@ -808,6 +808,11 @@ properties:
           - const: oranth,tanix-tx6
           - const: allwinner,sun50i-h6
 
+      - description: Tanix TX6 mini
+        items:
+          - const: oranth,tanix-tx6-mini
+          - const: allwinner,sun50i-h6
+
       - description: TBS A711 Tablet
         items:
           - const: tbs-biometrics,a711
index 29c9961..8eee312 100644 (file)
@@ -32,12 +32,38 @@ properties:
       - allwinner,sun8i-h3-mbus
       - allwinner,sun8i-r40-mbus
       - allwinner,sun50i-a64-mbus
+      - allwinner,sun50i-h5-mbus
 
   reg:
-    maxItems: 1
+    minItems: 1
+    items:
+      - description: MBUS interconnect/bandwidth limit/PMU registers
+      - description: DRAM controller/PHY registers
+
+  reg-names:
+    minItems: 1
+    items:
+      - const: mbus
+      - const: dram
 
   clocks:
+    minItems: 1
+    items:
+      - description: MBUS interconnect module clock
+      - description: DRAM controller/PHY module clock
+      - description: Register bus clock, shared by MBUS and DRAM
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: mbus
+      - const: dram
+      - const: bus
+
+  interrupts:
     maxItems: 1
+    description:
+      MBUS PMU activity interrupt.
 
   dma-ranges:
     description:
@@ -54,13 +80,55 @@ required:
   - clocks
   - dma-ranges
 
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - allwinner,sun8i-h3-mbus
+          - allwinner,sun50i-a64-mbus
+          - allwinner,sun50i-h5-mbus
+
+then:
+  properties:
+    reg:
+      minItems: 2
+
+    reg-names:
+      minItems: 2
+
+    clocks:
+      minItems: 3
+
+    clock-names:
+      minItems: 3
+
+  required:
+    - reg-names
+    - clock-names
+
+else:
+  properties:
+    reg:
+      maxItems: 1
+
+    reg-names:
+      maxItems: 1
+
+    clocks:
+      maxItems: 1
+
+    clock-names:
+      maxItems: 1
+
 additionalProperties: false
 
 examples:
   - |
-    #include <dt-bindings/clock/sun5i-ccu.h>
+    #include <dt-bindings/clock/sun50i-a64-ccu.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
 
-    mbus: dram-controller@1c01000 {
+    dram-controller@1c01000 {
         compatible = "allwinner,sun5i-a13-mbus";
         reg = <0x01c01000 0x1000>;
         clocks = <&ccu CLK_MBUS>;
@@ -70,4 +138,21 @@ examples:
         #interconnect-cells = <1>;
     };
 
+  - |
+    dram-controller@1c62000 {
+        compatible = "allwinner,sun50i-a64-mbus";
+        reg = <0x01c62000 0x1000>,
+              <0x01c63000 0x1000>;
+        reg-names = "mbus", "dram";
+        clocks = <&ccu CLK_MBUS>,
+                 <&ccu CLK_DRAM>,
+                 <&ccu CLK_BUS_DRAM>;
+        clock-names = "mbus", "dram", "bus";
+        interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        dma-ranges = <0x00000000 0x40000000 0xc0000000>;
+        #interconnect-cells = <1>;
+    };
+
 ...
index d79d36a..49841ca 100644 (file)
@@ -36,6 +36,9 @@ properties:
               - toradex,colibri_t20-iris
           - const: toradex,colibri_t20
           - const: nvidia,tegra20
+      - items:
+          - const: asus,tf101
+          - const: nvidia,tegra20
       - items:
           - const: acer,picasso
           - const: nvidia,tegra20
@@ -49,6 +52,18 @@ properties:
               - nvidia,cardhu-a04
           - const: nvidia,cardhu
           - const: nvidia,tegra30
+      - items:
+          - const: asus,tf201
+          - const: nvidia,tegra30
+      - items:
+          - const: asus,tf300t
+          - const: nvidia,tegra30
+      - items:
+          - const: asus,tf300tg
+          - const: nvidia,tegra30
+      - items:
+          - const: asus,tf700t
+          - const: nvidia,tegra30
       - items:
           - const: toradex,apalis_t30-eval
           - const: toradex,apalis_t30
@@ -74,8 +89,12 @@ properties:
       - items:
           - const: ouya,ouya
           - const: nvidia,tegra30
+      - items:
+          - const: pegatron,chagall
+          - const: nvidia,tegra30
       - items:
           - enum:
+              - asus,tf701t
               - nvidia,dalmore
               - nvidia,roth
               - nvidia,tn7
@@ -108,14 +127,17 @@ properties:
               - nvidia,p2571
               - nvidia,p2894-0050-a08
           - const: nvidia,tegra210
-      - items:
-          - enum:
-              - nvidia,p2771-0000
-              - nvidia,p3509-0000+p3636-0001
+      - description: Jetson TX2 Developer Kit
+        items:
+          - const: nvidia,p2771-0000
           - const: nvidia,tegra186
-      - items:
-          - enum:
-              - nvidia,p2972-0000
+      - description: Jetson TX2 NX Developer Kit
+        items:
+          - const: nvidia,p3509-0000+p3636-0001
+          - const: nvidia,tegra186
+      - description: Jetson AGX Xavier Developer Kit
+        items:
+          - const: nvidia,p2972-0000
           - const: nvidia,tegra194
       - description: Jetson Xavier NX
         items:
@@ -134,8 +156,16 @@ properties:
           - const: nvidia,p3509-0000+p3668-0001
           - const: nvidia,tegra194
       - items:
-          - enum:
-              - nvidia,tegra234-vdk
+          - const: nvidia,tegra234-vdk
+          - const: nvidia,tegra234
+      - description: Jetson AGX Orin
+        items:
+          - const: nvidia,p3701-0000
+          - const: nvidia,tegra234
+      - description: Jetson AGX Orin Developer Kit
+        items:
+          - const: nvidia,p3737-0000+p3701-0000
+          - const: nvidia,p3701-0000
           - const: nvidia,tegra234
 
 additionalProperties: true
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt
deleted file mode 100644 (file)
index 576462f..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-NVIDIA Tegra Power Management Controller (PMC)
-
-Required properties:
-- compatible: Should contain one of the following:
-  - "nvidia,tegra186-pmc": for Tegra186
-  - "nvidia,tegra194-pmc": for Tegra194
-  - "nvidia,tegra234-pmc": for Tegra234
-- reg: Must contain an (offset, length) pair of the register set for each
-  entry in reg-names.
-- reg-names: Must include the following entries:
-  - "pmc"
-  - "wake"
-  - "aotag"
-  - "scratch"
-  - "misc" (Only for Tegra194 and later)
-
-Optional properties:
-- nvidia,invert-interrupt: If present, inverts the PMU interrupt signal.
-- interrupt-controller: Identifies the node as an interrupt controller.
-- #interrupt-cells: Specifies the number of cells needed to encode an
-  interrupt source. The value must be 2.
-
-Example:
-
-SoC DTSI:
-
-       pmc@c3600000 {
-               compatible = "nvidia,tegra186-pmc";
-               reg = <0 0x0c360000 0 0x10000>,
-                     <0 0x0c370000 0 0x10000>,
-                     <0 0x0c380000 0 0x10000>,
-                     <0 0x0c390000 0 0x10000>;
-               reg-names = "pmc", "wake", "aotag", "scratch";
-       };
-
-Board DTS:
-
-       pmc@c360000 {
-               nvidia,invert-interrupt;
-       };
-
-== Pad Control ==
-
-On Tegra SoCs a pad is a set of pins which are configured as a group.
-The pin grouping is a fixed attribute of the hardware. The PMC can be
-used to set pad power state and signaling voltage. A pad can be either
-in active or power down mode. The support for power state and signaling
-voltage configuration varies depending on the pad in question. 3.3 V and
-1.8 V signaling voltages are supported on pins where software
-controllable signaling voltage switching is available.
-
-Pad configurations are described with pin configuration nodes which
-are placed under the pmc node and they are referred to by the pinctrl
-client properties. For more information see
-Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt.
-
-The following pads are present on Tegra186:
-csia           csib            dsi             mipi-bias
-pex-clk-bias   pex-clk3        pex-clk2        pex-clk1
-usb0           usb1            usb2            usb-bias
-uart           audio           hsic            dbg
-hdmi-dp0       hdmi-dp1        pex-cntrl       sdmmc2-hv
-sdmmc4         cam             dsib            dsic
-dsid           csic            csid            csie
-dsif           spi             ufs             dmic-hv
-edp            sdmmc1-hv       sdmmc3-hv       conn
-audio-hv       ao-hv
-
-Required pin configuration properties:
-  - pins: A list of strings, each of which contains the name of a pad
-         to be configured.
-
-Optional pin configuration properties:
-  - low-power-enable: Configure the pad into power down mode
-  - low-power-disable: Configure the pad into active mode
-  - power-source: Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
-    TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages.
-    The values are defined in
-    include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h.
-
-Note: The power state can be configured on all of the above pads except
-      for ao-hv. Following pads have software configurable signaling
-      voltages: sdmmc2-hv, dmic-hv, sdmmc1-hv, sdmmc3-hv, audio-hv,
-      ao-hv.
-
-Pad configuration state example:
-       pmc: pmc@7000e400 {
-               compatible = "nvidia,tegra186-pmc";
-               reg = <0 0x0c360000 0 0x10000>,
-                     <0 0x0c370000 0 0x10000>,
-                     <0 0x0c380000 0 0x10000>,
-                     <0 0x0c390000 0 0x10000>;
-               reg-names = "pmc", "wake", "aotag", "scratch";
-
-               ...
-
-               sdmmc1_3v3: sdmmc1-3v3 {
-                       pins = "sdmmc1-hv";
-                       power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
-               };
-
-               sdmmc1_1v8: sdmmc1-1v8 {
-                       pins = "sdmmc1-hv";
-                       power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
-               };
-
-               hdmi_off: hdmi-off {
-                       pins = "hdmi";
-                       low-power-enable;
-               }
-
-               hdmi_on: hdmi-on {
-                       pins = "hdmi";
-                       low-power-disable;
-               }
-       };
-
-Pinctrl client example:
-       sdmmc1: sdhci@3400000 {
-               ...
-               pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
-               pinctrl-0 = <&sdmmc1_3v3>;
-               pinctrl-1 = <&sdmmc1_1v8>;
-       };
-
-       ...
-
-       sor0: sor@15540000 {
-               ...
-               pinctrl-0 = <&hdmi_off>;
-               pinctrl-1 = <&hdmi_on>;
-               pinctrl-names = "hdmi-on", "hdmi-off";
-       };
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.yaml b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.yaml
new file mode 100644 (file)
index 0000000..0faa403
--- /dev/null
@@ -0,0 +1,198 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/tegra/nvidia,tegra186-pmc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra Power Management Controller (PMC)
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+properties:
+  compatible:
+    enum:
+      - nvidia,tegra186-pmc
+      - nvidia,tegra194-pmc
+      - nvidia,tegra234-pmc
+
+  reg:
+    minItems: 4
+    maxItems: 5
+
+  reg-names:
+    minItems: 4
+    items:
+      - const: pmc
+      - const: wake
+      - const: aotag
+      - const: scratch
+      - const: misc
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    description: Specifies the number of cells needed to encode an
+      interrupt source. The value must be 2.
+    const: 2
+
+  nvidia,invert-interrupt:
+    description: If present, inverts the PMU interrupt signal.
+    $ref: /schemas/types.yaml#/definitions/flag
+
+if:
+  properties:
+    compatible:
+      contains:
+        const: nvidia,tegra186-pmc
+then:
+  properties:
+    reg:
+      maxItems: 4
+
+    reg-names:
+      maxItems: 4
+else:
+  properties:
+    reg:
+      minItems: 5
+
+    reg-names:
+      minItems: 5
+
+patternProperties:
+  "^[a-z0-9]+-[a-z0-9]+$":
+    if:
+      type: object
+    then:
+      description: |
+        These are pad configuration nodes. On Tegra SoCs a pad is a set of
+        pins which are configured as a group. The pin grouping is a fixed
+        attribute of the hardware. The PMC can be used to set pad power
+        state and signaling voltage. A pad can be either in active or
+        power down mode. The support for power state and signaling voltage
+        configuration varies depending on the pad in question. 3.3 V and
+        1.8 V signaling voltages are supported on pins where software
+        controllable signaling voltage switching is available.
+
+        Pad configurations are described with pin configuration nodes
+        which are placed under the pmc node and they are referred to by
+        the pinctrl client properties. For more information see
+
+          Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
+
+        The following pads are present on Tegra186:
+
+          csia, csib, dsi, mipi-bias, pex-clk-bias, pex-clk3, pex-clk2,
+          pex-clk1, usb0, usb1, usb2, usb-bias, uart, audio, hsic, dbg,
+          hdmi-dp0, hdmi-dp1, pex-cntrl, sdmmc2-hv, sdmmc4, cam, dsib,
+          dsic, dsid, csic, csid, csie, dsif, spi, ufs, dmic-hv, edp,
+          sdmmc1-hv, sdmmc3-hv, conn, audio-hv, ao-hv
+
+        The following pads are present on Tegra194:
+
+          csia, csib, mipi-bias, pex-clk-bias, pex-clk3, pex-clk2,
+          pex-clk1, eqos, pex-clk-2-bias, pex-clk-2, dap3, dap5, uart,
+          pwr-ctl, soc-gpio53, audio, gp-pwm2, gp-pwm3, soc-gpio12,
+          soc-gpio13, soc-gpio10, uart4, uart5, dbg, hdmi-dp3, hdmi-dp2,
+          hdmi-dp0, hdmi-dp1, pex-cntrl, pex-ctl2, pex-l0-rst,
+          pex-l1-rst, sdmmc4, pex-l5-rst, cam, csic, csid, csie, csif,
+          spi, ufs, csig, csih, edp, sdmmc1-hv, sdmmc3-hv, conn,
+          audio-hv, ao-hv
+
+      properties:
+        pins:
+          $ref: /schemas/types.yaml#/definitions/string
+          description: Must contain the name of the pad(s) to be
+            configured.
+
+        low-power-enable:
+          description: Configure the pad into power down mode.
+          $ref: /schemas/types.yaml#/definitions/flag
+
+        low-power-disable:
+          description: Configure the pad into active mode.
+          $ref: /schemas/types.yaml#/definitions/flag
+
+        power-source:
+          $ref: /schemas/types.yaml#/definitions/uint32
+          description: |
+            Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
+            TEGRA_IO_PAD_VOLTAGE_3V3 to select between signalling
+            voltages.
+
+            The values are defined in
+
+              include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h
+
+            The power state can be configured on all of the above pads
+            except for ao-hv. Following pads have software configurable
+            signaling voltages: sdmmc2-hv, dmic-hv, sdmmc1-hv, sdmmc3-hv,
+            audio-hv, ao-hv.
+
+        phandle: true
+
+      required:
+        - pins
+
+      additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - reg-names
+
+additionalProperties: false
+
+dependencies:
+  interrupt-controller: ['#interrupt-cells']
+  "#interrupt-cells":
+    required:
+      - interrupt-controller
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra186-clock.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
+    #include <dt-bindings/memory/tegra186-mc.h>
+    #include <dt-bindings/reset/tegra186-reset.h>
+
+    pmc@c3600000 {
+        compatible = "nvidia,tegra186-pmc";
+        reg = <0x0c360000 0x10000>,
+              <0x0c370000 0x10000>,
+              <0x0c380000 0x10000>,
+              <0x0c390000 0x10000>;
+        reg-names = "pmc", "wake", "aotag", "scratch";
+        nvidia,invert-interrupt;
+
+        sdmmc1_3v3: sdmmc1-3v3 {
+            pins = "sdmmc1-hv";
+            power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
+        };
+
+        sdmmc1_1v8: sdmmc1-1v8 {
+            pins = "sdmmc1-hv";
+            power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
+        };
+    };
+
+    sdmmc1: mmc@3400000 {
+        compatible = "nvidia,tegra186-sdhci";
+        reg = <0x03400000 0x10000>;
+        interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
+                 <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>;
+        clock-names = "sdhci", "tmclk";
+        resets = <&bpmp TEGRA186_RESET_SDMMC1>;
+        reset-names = "sdhci";
+        interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRA &emc>,
+                        <&mc TEGRA186_MEMORY_CLIENT_SDMMCWA &emc>;
+        interconnect-names = "dma-mem", "write";
+        iommus = <&smmu TEGRA186_SID_SDMMC1>;
+        pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
+        pinctrl-0 = <&sdmmc1_3v3>;
+        pinctrl-1 = <&sdmmc1_1v8>;
+    };
index cf32723..b03c10f 100644 (file)
@@ -53,6 +53,12 @@ properties:
               - ti,am642-sk
           - const: ti,am642
 
+      - description: K3 J721s2 SoC
+        items:
+          - enum:
+              - ti,j721s2-evm
+          - const: ti,j721s2
+
 additionalProperties: true
 
 ...
diff --git a/Documentation/devicetree/bindings/bus/fsl,spba-bus.yaml b/Documentation/devicetree/bindings/bus/fsl,spba-bus.yaml
new file mode 100644 (file)
index 0000000..d42dbb0
--- /dev/null
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bus/fsl,spba-bus.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Shared Peripherals Bus Interface
+
+maintainers:
+  - Shawn Guo <shawnguo@kernel.org>
+
+description: |
+  A simple bus enabling access to shared peripherals.
+
+  The "spba-bus" follows the "simple-bus" set of properties, as
+  specified in the Devicetree Specification.  It is an extension of
+  "simple-bus" because the SDMA controller uses this compatible flag to
+  determine which peripherals are available to it and the range over which
+  the SDMA can access.  There are no special clocks for the bus, because
+  the SDMA controller itself has its interrupt and clock assignments.
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: fsl,spba-bus
+  required:
+    - compatible
+
+properties:
+  $nodename:
+    pattern: "^spba-bus(@[0-9a-f]+)?$"
+
+  compatible:
+    items:
+      - const: fsl,spba-bus
+      - const: simple-bus
+
+  '#address-cells':
+    enum: [ 1, 2 ]
+
+  '#size-cells':
+    enum: [ 1, 2 ]
+
+  reg:
+    maxItems: 1
+
+  ranges: true
+
+required:
+  - compatible
+  - '#address-cells'
+  - '#size-cells'
+  - reg
+  - ranges
+
+additionalProperties:
+  type: object
+
+examples:
+  - |
+    spba-bus@30000000 {
+        compatible = "fsl,spba-bus", "simple-bus";
+        #address-cells = <1>;
+        #size-cells = <1>;
+        reg = <0x30000000 0x100000>;
+        ranges;
+    };
index 1b1d1c5..e7f5020 100644 (file)
@@ -48,6 +48,11 @@ Optional properties:
                        devices, the presence of this property indicates that
                        the weim bus should operate in Burst Clock Mode.
 
+ - fsl,continuous-burst-clk    Make Burst Clock to output continuous clock.
+                       Without this option Burst Clock will output clock
+                       only when necessary. This takes effect only if
+                       "fsl,burst-clk-enable" is set.
+
 Timing property for child nodes. It is mandatory, not optional.
 
  - fsl,weim-cs-timing: The timing array, contains timing values for the
index 459d2a5..f832abb 100644 (file)
@@ -42,6 +42,36 @@ properties:
   "#reset-cells":
     const: 1
 
+patternProperties:
+  "^(sclk)|(pll-[cem])$":
+    type: object
+    properties:
+      compatible:
+        enum:
+          - nvidia,tegra20-sclk
+          - nvidia,tegra30-sclk
+          - nvidia,tegra30-pllc
+          - nvidia,tegra30-plle
+          - nvidia,tegra30-pllm
+
+      operating-points-v2: true
+
+      clocks:
+        items:
+          - description: node's clock
+
+      power-domains:
+        maxItems: 1
+        description: phandle to the core SoC power domain
+
+    required:
+      - compatible
+      - operating-points-v2
+      - clocks
+      - power-domains
+
+    additionalProperties: false
+
 required:
   - compatible
   - reg
@@ -59,6 +89,13 @@ examples:
         reg = <0x60006000 0x1000>;
         #clock-cells = <1>;
         #reset-cells = <1>;
+
+        sclk {
+            compatible = "nvidia,tegra20-sclk";
+            operating-points-v2 = <&opp_table>;
+            clocks = <&tegra_car TEGRA20_CLK_SCLK>;
+            power-domains = <&domain>;
+        };
     };
 
     usb-controller@c5004000 {
diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc-sdx65.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc-sdx65.yaml
new file mode 100644 (file)
index 0000000..16c4cdc
--- /dev/null
@@ -0,0 +1,80 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,gcc-sdx65.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Global Clock & Reset Controller Binding for SDX65
+
+maintainers:
+  - Vamsi krishna Lanka <quic_vamslank@quicinc.com>
+
+description: |
+  Qualcomm global clock control module which supports the clocks, resets and
+  power domains on SDX65
+
+  See also:
+  - dt-bindings/clock/qcom,gcc-sdx65.h
+
+properties:
+  compatible:
+    const: qcom,gcc-sdx65
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Board active XO source
+      - description: Sleep clock source
+      - description: PCIE Pipe clock source
+      - description: USB3 phy wrapper pipe clock source
+      - description: PLL test clock source (Optional clock)
+    minItems: 5
+
+  clock-names:
+    items:
+      - const: bi_tcxo
+      - const: bi_tcxo_ao
+      - const: sleep_clk
+      - const: pcie_pipe_clk
+      - const: usb3_phy_wrapper_gcc_usb30_pipe_clk
+      - const: core_bi_pll_test_se # Optional clock
+    minItems: 5
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  '#power-domain-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+  - '#reset-cells'
+  - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    clock-controller@100000 {
+      compatible = "qcom,gcc-sdx65";
+      reg = <0x100000 0x1f7400>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>,
+               <&pcie_pipe_clk>, <&usb3_phy_wrapper_gcc_usb30_pipe_clk>, <&pll_test_clk>;
+      clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk",
+                    "pcie_pipe_clk", "usb3_phy_wrapper_gcc_usb30_pipe_clk", "core_bi_pll_test_se";
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+...
diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc-sm8450.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc-sm8450.yaml
new file mode 100644 (file)
index 0000000..58d98a7
--- /dev/null
@@ -0,0 +1,85 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,gcc-sm8450.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Global Clock & Reset Controller Binding for SM8450
+
+maintainers:
+  - Vinod Koul <vkoul@kernel.org>
+
+description: |
+  Qualcomm global clock control module which supports the clocks, resets and
+  power domains on SM8450
+
+  See also:
+  - dt-bindings/clock/qcom,gcc-sm8450.h
+
+properties:
+  compatible:
+    const: qcom,gcc-sm8450
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Sleep clock source
+      - description: PCIE 0 Pipe clock source (Optional clock)
+      - description: PCIE 1 Pipe clock source (Optional clock)
+      - description: PCIE 1 Phy Auxillary clock source (Optional clock)
+      - description: UFS Phy Rx symbol 0 clock source (Optional clock)
+      - description: UFS Phy Rx symbol 1 clock source (Optional clock)
+      - description: UFS Phy Tx symbol 0 clock source (Optional clock)
+      - description: USB3 Phy wrapper pipe clock source (Optional clock)
+    minItems: 2
+
+  clock-names:
+    items:
+      - const: bi_tcxo
+      - const: sleep_clk
+      - const: pcie_0_pipe_clk # Optional clock
+      - const: pcie_1_pipe_clk # Optional clock
+      - const: pcie_1_phy_aux_clk # Optional clock
+      - const: ufs_phy_rx_symbol_0_clk # Optional clock
+      - const: ufs_phy_rx_symbol_1_clk # Optional clock
+      - const: ufs_phy_tx_symbol_0_clk # Optional clock
+      - const: usb3_phy_wrapper_gcc_usb30_pipe_clk # Optional clock
+    minItems: 2
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  '#power-domain-cells':
+    const: 1
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+  - '#reset-cells'
+  - '#power-domain-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    clock-controller@100000 {
+      compatible = "qcom,gcc-sm8450";
+      reg = <0x00100000 0x001f4200>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>;
+      clock-names = "bi_tcxo", "sleep_clk";
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+
+...
index 0429fb7..dedc99e 100644 (file)
@@ -44,6 +44,16 @@ properties:
       - const: ahb
       - const: mod
 
+  dmas:
+    items:
+      - description: RX DMA Channel
+      - description: TX DMA Channel
+
+  dma-names:
+    items:
+      - const: rx
+      - const: tx
+
   resets:
     maxItems: 1
 
index 8a6d3e1..e61999c 100644 (file)
@@ -19,6 +19,19 @@ Required properties:
   See ../reset/reset.txt for details.
 - reset-names: Must include the following entries:
   - host1x
+  - mc
+
+Optional properties:
+- operating-points-v2: See ../bindings/opp/opp.txt for details.
+  - power-domains: Phandle to HEG or core power domain.
+
+For each opp entry in 'operating-points-v2' table of host1x and its modules:
+- opp-supported-hw: One bitfield indicating:
+       On Tegra20: SoC process ID mask
+       On Tegra30+: SoC speedo ID mask
+
+       A bitwise AND is performed against the value and if any bit
+       matches, the OPP gets enabled.
 
 Each host1x client module having to perform DMA through the Memory Controller
 should have the interconnect endpoints set to the Memory Client and External
@@ -45,6 +58,8 @@ of the following host1x client modules:
   - interconnect-names: Must include name of the interconnect path for each
     interconnect entry. Consult TRM documentation for information about
     available memory clients, see MEMORY CONTROLLER section.
+  - operating-points-v2: See ../bindings/opp/opp.txt for details.
+  - power-domains: Phandle to MPE power domain.
 
 - vi: video input
 
@@ -128,6 +143,8 @@ of the following host1x client modules:
   - interconnect-names: Must include name of the interconnect path for each
     interconnect entry. Consult TRM documentation for information about
     available memory clients, see MEMORY CONTROLLER section.
+  - operating-points-v2: See ../bindings/opp/opp.txt for details.
+  - power-domains: Phandle to VENC power domain.
 
 - epp: encoder pre-processor
 
@@ -147,6 +164,8 @@ of the following host1x client modules:
   - interconnect-names: Must include name of the interconnect path for each
     interconnect entry. Consult TRM documentation for information about
     available memory clients, see MEMORY CONTROLLER section.
+  - operating-points-v2: See ../bindings/opp/opp.txt for details.
+  - power-domains: Phandle to HEG or core power domain.
 
 - isp: image signal processor
 
@@ -166,6 +185,7 @@ of the following host1x client modules:
   - interconnect-names: Must include name of the interconnect path for each
     interconnect entry. Consult TRM documentation for information about
     available memory clients, see MEMORY CONTROLLER section.
+  - power-domains: Phandle to VENC or core power domain.
 
 - gr2d: 2D graphics engine
 
@@ -179,12 +199,15 @@ of the following host1x client modules:
     See ../reset/reset.txt for details.
   - reset-names: Must include the following entries:
     - 2d
+    - mc
 
   Optional properties:
   - interconnects: Must contain entry for the GR2D memory clients.
   - interconnect-names: Must include name of the interconnect path for each
     interconnect entry. Consult TRM documentation for information about
     available memory clients, see MEMORY CONTROLLER section.
+  - operating-points-v2: See ../bindings/opp/opp.txt for details.
+  - power-domains: Phandle to HEG or core power domain.
 
 - gr3d: 3D graphics engine
 
@@ -203,12 +226,16 @@ of the following host1x client modules:
   - reset-names: Must include the following entries:
     - 3d
     - 3d2 (Only required on SoCs with two 3D clocks)
+    - mc
+    - mc2 (Only required on SoCs with two 3D clocks)
 
   Optional properties:
   - interconnects: Must contain entry for the GR3D memory clients.
   - interconnect-names: Must include name of the interconnect path for each
     interconnect entry. Consult TRM documentation for information about
     available memory clients, see MEMORY CONTROLLER section.
+  - operating-points-v2: See ../bindings/opp/opp.txt for details.
+  - power-domains: Phandles to 3D or core power domain.
 
 - dc: display controller
 
@@ -241,6 +268,8 @@ of the following host1x client modules:
   - interconnect-names: Must include name of the interconnect path for each
     interconnect entry. Consult TRM documentation for information about
     available memory clients, see MEMORY CONTROLLER section.
+  - operating-points-v2: See ../bindings/opp/opp.txt for details.
+  - power-domains: Phandle to core power domain.
 
 - hdmi: High Definition Multimedia Interface
 
@@ -267,6 +296,7 @@ of the following host1x client modules:
   - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection
   - nvidia,edid: supplies a binary EDID blob
   - nvidia,panel: phandle of a display panel
+  - operating-points-v2: See ../bindings/opp/opp.txt for details.
 
 - tvo: TV encoder output
 
@@ -277,6 +307,10 @@ of the following host1x client modules:
   - clocks: Must contain one entry, for the module clock.
     See ../clocks/clock-bindings.txt for details.
 
+  Optional properties:
+  - operating-points-v2: See ../bindings/opp/opp.txt for details.
+  - power-domains: Phandle to core power domain.
+
 - dsi: display serial interface
 
   Required properties:
@@ -305,6 +339,7 @@ of the following host1x client modules:
   - nvidia,panel: phandle of a display panel
   - nvidia,ganged-mode: contains a phandle to a second DSI controller to gang
     up with in order to support up to 8 data lanes
+  - operating-points-v2: See ../bindings/opp/opp.txt for details.
 
 - sor: serial output resource
 
@@ -408,6 +443,8 @@ Example:
                clocks = <&tegra_car TEGRA20_CLK_HOST1X>;
                resets = <&tegra_car 28>;
                reset-names = "host1x";
+               operating-points-v2 = <&dvfs_opp_table>;
+               power-domains = <&domain>;
 
                #address-cells = <1>;
                #size-cells = <1>;
@@ -421,6 +458,8 @@ Example:
                        clocks = <&tegra_car TEGRA20_CLK_MPE>;
                        resets = <&tegra_car 60>;
                        reset-names = "mpe";
+                       operating-points-v2 = <&dvfs_opp_table>;
+                       power-domains = <&domain>;
                };
 
                vi@54080000 {
@@ -429,6 +468,7 @@ Example:
                        interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
                        assigned-clocks = <&tegra_car TEGRA210_CLK_VI>;
                        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
+                       operating-points-v2 = <&dvfs_opp_table>;
 
                        clocks = <&tegra_car TEGRA210_CLK_VI>;
                        power-domains = <&pd_venc>;
@@ -510,6 +550,8 @@ Example:
                        clocks = <&tegra_car TEGRA20_CLK_EPP>;
                        resets = <&tegra_car 19>;
                        reset-names = "epp";
+                       operating-points-v2 = <&dvfs_opp_table>;
+                       power-domains = <&domain>;
                };
 
                isp {
@@ -528,6 +570,8 @@ Example:
                        clocks = <&tegra_car TEGRA20_CLK_GR2D>;
                        resets = <&tegra_car 21>;
                        reset-names = "2d";
+                       operating-points-v2 = <&dvfs_opp_table>;
+                       power-domains = <&domain>;
                };
 
                gr3d {
@@ -536,6 +580,8 @@ Example:
                        clocks = <&tegra_car TEGRA20_CLK_GR3D>;
                        resets = <&tegra_car 24>;
                        reset-names = "3d";
+                       operating-points-v2 = <&dvfs_opp_table>;
+                       power-domains = <&domain>;
                };
 
                dc@54200000 {
@@ -547,6 +593,8 @@ Example:
                        clock-names = "dc", "parent";
                        resets = <&tegra_car 27>;
                        reset-names = "dc";
+                       operating-points-v2 = <&dvfs_opp_table>;
+                       power-domains = <&domain>;
 
                        interconnects = <&mc TEGRA20_MC_DISPLAY0A &emc>,
                                        <&mc TEGRA20_MC_DISPLAY0B &emc>,
@@ -571,6 +619,8 @@ Example:
                        clock-names = "dc", "parent";
                        resets = <&tegra_car 26>;
                        reset-names = "dc";
+                       operating-points-v2 = <&dvfs_opp_table>;
+                       power-domains = <&domain>;
 
                        interconnects = <&mc TEGRA20_MC_DISPLAY0AB &emc>,
                                        <&mc TEGRA20_MC_DISPLAY0BB &emc>,
@@ -596,6 +646,7 @@ Example:
                        resets = <&tegra_car 51>;
                        reset-names = "hdmi";
                        status = "disabled";
+                       operating-points-v2 = <&dvfs_opp_table>;
                };
 
                tvo {
@@ -604,6 +655,7 @@ Example:
                        interrupts = <0 76 0x04>;
                        clocks = <&tegra_car TEGRA20_CLK_TVO>;
                        status = "disabled";
+                       operating-points-v2 = <&dvfs_opp_table>;
                };
 
                dsi {
@@ -615,6 +667,7 @@ Example:
                        resets = <&tegra_car 48>;
                        reset-names = "dsi";
                        status = "disabled";
+                       operating-points-v2 = <&dvfs_opp_table>;
                };
        };
 
diff --git a/Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.txt b/Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.txt
deleted file mode 100644 (file)
index e44a13b..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-NVIDIA Tegra Boot and Power Management Processor (BPMP)
-
-The BPMP is a specific processor in Tegra chip, which is designed for
-booting process handling and offloading the power management, clock
-management, and reset control tasks from the CPU. The binding document
-defines the resources that would be used by the BPMP firmware driver,
-which can create the interprocessor communication (IPC) between the CPU
-and BPMP.
-
-Required properties:
-- compatible
-    Array of strings
-    One of:
-    - "nvidia,tegra186-bpmp"
-- mboxes : The phandle of mailbox controller and the mailbox specifier.
-- shmem : List of the phandle of the TX and RX shared memory area that
-         the IPC between CPU and BPMP is based on.
-- #clock-cells : Should be 1.
-- #power-domain-cells : Should be 1.
-- #reset-cells : Should be 1.
-
-This node is a mailbox consumer. See the following files for details of
-the mailbox subsystem, and the specifiers implemented by the relevant
-provider(s):
-
-- .../mailbox/mailbox.txt
-- .../mailbox/nvidia,tegra186-hsp.txt
-
-This node is a clock, power domain, and reset provider. See the following
-files for general documentation of those features, and the specifiers
-implemented by this node:
-
-- .../clock/clock-bindings.txt
-- <dt-bindings/clock/tegra186-clock.h>
-- ../power/power-domain.yaml
-- <dt-bindings/power/tegra186-powergate.h>
-- .../reset/reset.txt
-- <dt-bindings/reset/tegra186-reset.h>
-
-The BPMP implements some services which must be represented by separate nodes.
-For example, it can provide access to certain I2C controllers, and the I2C
-bindings represent each I2C controller as a device tree node. Such nodes should
-be nested directly inside the main BPMP node.
-
-Software can determine whether a child node of the BPMP node represents a device
-by checking for a compatible property. Any node with a compatible property
-represents a device that can be instantiated. Nodes without a compatible
-property may be used to provide configuration information regarding the BPMP
-itself, although no such configuration nodes are currently defined by this
-binding.
-
-The BPMP firmware defines no single global name-/numbering-space for such
-services. Put another way, the numbering scheme for I2C buses is distinct from
-the numbering scheme for any other service the BPMP may provide (e.g. a future
-hypothetical SPI bus service). As such, child device nodes will have no reg
-property, and the BPMP node will have no #address-cells or #size-cells property.
-
-The shared memory bindings for BPMP
------------------------------------
-
-The shared memory area for the IPC TX and RX between CPU and BPMP are
-predefined and work on top of sysram, which is an SRAM inside the chip.
-
-See ".../sram/sram.txt" for the bindings.
-
-Example:
-
-hsp_top0: hsp@3c00000 {
-       ...
-       #mbox-cells = <2>;
-};
-
-sysram@30000000 {
-       compatible = "nvidia,tegra186-sysram", "mmio-sram";
-       reg = <0x0 0x30000000 0x0 0x50000>;
-       #address-cells = <2>;
-       #size-cells = <2>;
-       ranges = <0 0x0 0x0 0x30000000 0x0 0x50000>;
-
-       cpu_bpmp_tx: shmem@4e000 {
-               compatible = "nvidia,tegra186-bpmp-shmem";
-               reg = <0x0 0x4e000 0x0 0x1000>;
-               label = "cpu-bpmp-tx";
-               pool;
-       };
-
-       cpu_bpmp_rx: shmem@4f000 {
-               compatible = "nvidia,tegra186-bpmp-shmem";
-               reg = <0x0 0x4f000 0x0 0x1000>;
-               label = "cpu-bpmp-rx";
-               pool;
-       };
-};
-
-bpmp {
-       compatible = "nvidia,tegra186-bpmp";
-       mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB TEGRA_HSP_DB_MASTER_BPMP>;
-       shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
-       #clock-cells = <1>;
-       #power-domain-cells = <1>;
-       #reset-cells = <1>;
-
-       i2c {
-               compatible = "...";
-               ...
-       };
-};
diff --git a/Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.yaml b/Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.yaml
new file mode 100644 (file)
index 0000000..833c07f
--- /dev/null
@@ -0,0 +1,186 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/firmware/nvidia,tegra186-bpmp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra Boot and Power Management Processor (BPMP)
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: |
+  The BPMP is a specific processor in Tegra chip, which is designed for
+  booting process handling and offloading the power management, clock
+  management, and reset control tasks from the CPU. The binding document
+  defines the resources that would be used by the BPMP firmware driver,
+  which can create the interprocessor communication (IPC) between the
+  CPU and BPMP.
+
+  This node is a mailbox consumer. See the following files for details
+  of the mailbox subsystem, and the specifiers implemented by the
+  relevant provider(s):
+
+    - .../mailbox/mailbox.txt
+    - .../mailbox/nvidia,tegra186-hsp.yaml
+
+  This node is a clock, power domain, and reset provider. See the
+  following files for general documentation of those features, and the
+  specifiers implemented by this node:
+
+    - .../clock/clock-bindings.txt
+    - <dt-bindings/clock/tegra186-clock.h>
+    - ../power/power-domain.yaml
+    - <dt-bindings/power/tegra186-powergate.h>
+    - .../reset/reset.txt
+    - <dt-bindings/reset/tegra186-reset.h>
+
+  The BPMP implements some services which must be represented by
+  separate nodes. For example, it can provide access to certain I2C
+  controllers, and the I2C bindings represent each I2C controller as a
+  device tree node. Such nodes should be nested directly inside the main
+  BPMP node.
+
+  Software can determine whether a child node of the BPMP node
+  represents a device by checking for a compatible property. Any node
+  with a compatible property represents a device that can be
+  instantiated. Nodes without a compatible property may be used to
+  provide configuration information regarding the BPMP itself, although
+  no such configuration nodes are currently defined by this binding.
+
+  The BPMP firmware defines no single global name-/numbering-space for
+  such services. Put another way, the numbering scheme for I2C buses is
+  distinct from the numbering scheme for any other service the BPMP may
+  provide (e.g. a future hypothetical SPI bus service). As such, child
+  device nodes will have no reg property, and the BPMP node will have no
+  "#address-cells" or "#size-cells" property.
+
+  The shared memory area for the IPC TX and RX between CPU and BPMP are
+  predefined and work on top of sysram, which is an SRAM inside the
+  chip. See ".../sram/sram.yaml" for the bindings.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - nvidia,tegra194-bpmp
+              - nvidia,tegra234-bpmp
+          - const: nvidia,tegra186-bpmp
+      - const: nvidia,tegra186-bpmp
+
+  mboxes:
+    description: A phandle and channel specifier for the mailbox used to
+      communicate with the BPMP.
+    maxItems: 1
+
+  shmem:
+    description: List of the phandle to the TX and RX shared memory area
+      that the IPC between CPU and BPMP is based on.
+    minItems: 2
+    maxItems: 2
+
+  "#clock-cells":
+    const: 1
+
+  "#power-domain-cells":
+    const: 1
+
+  "#reset-cells":
+    const: 1
+
+  interconnects:
+    items:
+      - description: memory read client
+      - description: memory write client
+      - description: DMA read client
+      - description: DMA write client
+
+  interconnect-names:
+    items:
+      - const: read
+      - const: write
+      - const: dma-mem # dma-read
+      - const: dma-write
+
+  iommus:
+    maxItems: 1
+
+  i2c:
+    type: object
+
+  thermal:
+    type: object
+
+additionalProperties: false
+
+required:
+  - compatible
+  - mboxes
+  - shmem
+  - "#clock-cells"
+  - "#power-domain-cells"
+  - "#reset-cells"
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/mailbox/tegra186-hsp.h>
+    #include <dt-bindings/memory/tegra186-mc.h>
+
+    hsp_top0: hsp@3c00000 {
+        compatible = "nvidia,tegra186-hsp";
+        reg = <0x03c00000 0xa0000>;
+        interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "doorbell";
+        #mbox-cells = <2>;
+    };
+
+    sram@30000000 {
+        compatible = "nvidia,tegra186-sysram", "mmio-sram";
+        reg = <0x30000000 0x50000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges = <0x0 0x30000000 0x50000>;
+
+        cpu_bpmp_tx: sram@4e000 {
+            reg = <0x4e000 0x1000>;
+            label = "cpu-bpmp-tx";
+            pool;
+        };
+
+        cpu_bpmp_rx: sram@4f000 {
+            reg = <0x4f000 0x1000>;
+            label = "cpu-bpmp-rx";
+            pool;
+        };
+    };
+
+    bpmp {
+        compatible = "nvidia,tegra186-bpmp";
+        interconnects = <&mc TEGRA186_MEMORY_CLIENT_BPMPR &emc>,
+                        <&mc TEGRA186_MEMORY_CLIENT_BPMPW &emc>,
+                        <&mc TEGRA186_MEMORY_CLIENT_BPMPDMAR &emc>,
+                        <&mc TEGRA186_MEMORY_CLIENT_BPMPDMAW &emc>;
+        interconnect-names = "read", "write", "dma-mem", "dma-write";
+        iommus = <&smmu TEGRA186_SID_BPMP>;
+        mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB
+                            TEGRA_HSP_DB_MASTER_BPMP>;
+        shmem = <&cpu_bpmp_tx>, <&cpu_bpmp_rx>;
+        #clock-cells = <1>;
+        #power-domain-cells = <1>;
+        #reset-cells = <1>;
+
+        i2c {
+            compatible = "nvidia,tegra186-bpmp-i2c";
+            nvidia,bpmp-bus-id = <5>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+        };
+
+        thermal {
+            compatible = "nvidia,tegra186-bpmp-thermal";
+            #thermal-sensor-cells = <1>;
+        };
+    };
diff --git a/Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.txt b/Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.txt
deleted file mode 100644 (file)
index b109911..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-NVIDIA Tegra20/Tegra30/Tegr114/Tegra124 fuse block.
-
-Required properties:
-- compatible : For Tegra20, must contain "nvidia,tegra20-efuse".  For Tegra30,
-  must contain "nvidia,tegra30-efuse".  For Tegra114, must contain
-  "nvidia,tegra114-efuse".  For Tegra124, must contain "nvidia,tegra124-efuse".
-  For Tegra132 must contain "nvidia,tegra132-efuse", "nvidia,tegra124-efuse".
-  For Tegra210 must contain "nvidia,tegra210-efuse". For Tegra186 must contain
-  "nvidia,tegra186-efuse". For Tegra194 must contain "nvidia,tegra194-efuse".
-  For Tegra234 must contain "nvidia,tegra234-efuse".
-  Details:
-  nvidia,tegra20-efuse: Tegra20 requires using APB DMA to read the fuse data
-       due to a hardware bug. Tegra20 also lacks certain information which is
-       available in later generations such as fab code, lot code, wafer id,..
-  nvidia,tegra30-efuse, nvidia,tegra114-efuse and nvidia,tegra124-efuse:
-       The differences between these SoCs are the size of the efuse array,
-       the location of the spare (OEM programmable) bits and the location of
-       the speedo data.
-- reg: Should contain 1 entry: the entry gives the physical address and length
-       of the fuse registers.
-- clocks: Must contain an entry for each entry in clock-names.
-  See ../clocks/clock-bindings.txt for details.
-- clock-names: Must include the following entries:
-  - fuse
-- resets: Must contain an entry for each entry in reset-names.
-  See ../reset/reset.txt for details.
-- reset-names: Must include the following entries:
- - fuse
-
-Example:
-
-       fuse@7000f800 {
-               compatible = "nvidia,tegra20-efuse";
-               reg = <0x7000f800 0x400>,
-                     <0x70000000 0x400>;
-               clocks = <&tegra_car TEGRA20_CLK_FUSE>;
-               clock-names = "fuse";
-               resets = <&tegra_car 39>;
-               reset-names = "fuse";
-       };
-
-
diff --git a/Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.yaml b/Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.yaml
new file mode 100644 (file)
index 0000000..4819012
--- /dev/null
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fuse/nvidia,tegra20-fuse.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra FUSE block
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - nvidia,tegra20-efuse
+          - nvidia,tegra30-efuse
+          - nvidia,tegra114-efuse
+          - nvidia,tegra124-efuse
+          - nvidia,tegra210-efuse
+          - nvidia,tegra186-efuse
+          - nvidia,tegra194-efuse
+          - nvidia,tegra234-efuse
+
+      - items:
+          - const: nvidia,tegra132-efuse
+          - const: nvidia,tegra124-efuse
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: fuse
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: fuse
+
+  operating-points-v2:
+    $ref: "/schemas/types.yaml#/definitions/phandle"
+
+  power-domains:
+    items:
+      - description: phandle to the core power domain
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - nvidia,tegra20-efuse
+          - nvidia,tegra30-efuse
+          - nvidia,tegra114-efuse
+          - nvidia,tegra124-efuse
+          - nvidia,tegra132-efuse
+          - nvidia,tegra210-efuse
+then:
+  required:
+    - resets
+    - reset-names
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra20-car.h>
+
+    fuse@7000f800 {
+        compatible = "nvidia,tegra20-efuse";
+        reg = <0x7000f800 0x400>;
+        clocks = <&tegra_car TEGRA20_CLK_FUSE>;
+        clock-names = "fuse";
+        resets = <&tegra_car 39>;
+        reset-names = "fuse";
+    };
diff --git a/Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra210-nvenc.yaml b/Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra210-nvenc.yaml
new file mode 100644 (file)
index 0000000..e63ae1a
--- /dev/null
@@ -0,0 +1,135 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/gpu/host1x/nvidia,tegra210-nvenc.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Device tree binding for NVIDIA Tegra NVENC
+
+description: |
+  NVENC is the hardware video encoder present on NVIDIA Tegra210
+  and newer chips. It is located on the Host1x bus and typically
+  programmed through Host1x channels.
+
+maintainers:
+  - Thierry Reding <treding@gmail.com>
+  - Mikko Perttunen <mperttunen@nvidia.com>
+
+properties:
+  $nodename:
+    pattern: "^nvenc@[0-9a-f]*$"
+
+  compatible:
+    enum:
+      - nvidia,tegra210-nvenc
+      - nvidia,tegra186-nvenc
+      - nvidia,tegra194-nvenc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: nvenc
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: nvenc
+
+  power-domains:
+    maxItems: 1
+
+  iommus:
+    maxItems: 1
+
+  dma-coherent: true
+
+  interconnects:
+    minItems: 2
+    maxItems: 3
+
+  interconnect-names:
+    minItems: 2
+    maxItems: 3
+
+  nvidia,host1x-class:
+    description: |
+      Host1x class of the engine, used to specify the targeted engine
+      when programming the engine through Host1x channels or when
+      configuring engine-specific behavior in Host1x.
+    default: 0x21
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - power-domains
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          enum:
+            - nvidia,tegra210-nvenc
+            - nvidia,tegra186-nvenc
+    then:
+      properties:
+        interconnects:
+          items:
+            - description: DMA read memory client
+            - description: DMA write memory client
+        interconnect-names:
+          items:
+            - const: dma-mem
+            - const: write
+  - if:
+      properties:
+        compatible:
+          enum:
+            - nvidia,tegra194-nvenc
+    then:
+      properties:
+        interconnects:
+          items:
+            - description: DMA read memory client
+            - description: DMA read 2 memory client
+            - description: DMA write memory client
+        interconnect-names:
+          items:
+            - const: dma-mem
+            - const: read-1
+            - const: write
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra186-clock.h>
+    #include <dt-bindings/memory/tegra186-mc.h>
+    #include <dt-bindings/power/tegra186-powergate.h>
+    #include <dt-bindings/reset/tegra186-reset.h>
+
+    nvenc@154c0000 {
+            compatible = "nvidia,tegra186-nvenc";
+            reg = <0x154c0000 0x40000>;
+            clocks = <&bpmp TEGRA186_CLK_NVENC>;
+            clock-names = "nvenc";
+            resets = <&bpmp TEGRA186_RESET_NVENC>;
+            reset-names = "nvenc";
+
+            power-domains = <&bpmp TEGRA186_POWER_DOMAIN_MPE>;
+            interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVENCSRD &emc>,
+                            <&mc TEGRA186_MEMORY_CLIENT_NVENCSWR &emc>;
+            interconnect-names = "dma-mem", "write";
+            iommus = <&smmu TEGRA186_SID_NVENC>;
+    };
diff --git a/Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra210-nvjpg.yaml b/Documentation/devicetree/bindings/gpu/host1x/nvidia,tegra210-nvjpg.yaml
new file mode 100644 (file)
index 0000000..8647404
--- /dev/null
@@ -0,0 +1,94 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/gpu/host1x/nvidia,tegra210-nvjpg.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Device tree binding for NVIDIA Tegra NVJPG
+
+description: |
+  NVJPG is the hardware JPEG decoder and encoder present on NVIDIA Tegra210
+  and newer chips. It is located on the Host1x bus and typically programmed
+  through Host1x channels.
+
+maintainers:
+  - Thierry Reding <treding@gmail.com>
+  - Mikko Perttunen <mperttunen@nvidia.com>
+
+properties:
+  $nodename:
+    pattern: "^nvjpg@[0-9a-f]*$"
+
+  compatible:
+    enum:
+      - nvidia,tegra210-nvjpg
+      - nvidia,tegra186-nvjpg
+      - nvidia,tegra194-nvjpg
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: nvjpg
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: nvjpg
+
+  power-domains:
+    maxItems: 1
+
+  iommus:
+    maxItems: 1
+
+  dma-coherent: true
+
+  interconnects:
+    items:
+      - description: DMA read memory client
+      - description: DMA write memory client
+
+  interconnect-names:
+    items:
+      - const: dma-mem
+      - const: write
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - power-domains
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/tegra186-clock.h>
+    #include <dt-bindings/memory/tegra186-mc.h>
+    #include <dt-bindings/power/tegra186-powergate.h>
+    #include <dt-bindings/reset/tegra186-reset.h>
+
+    nvjpg@15380000 {
+            compatible = "nvidia,tegra186-nvjpg";
+            reg = <0x15380000 0x40000>;
+            clocks = <&bpmp TEGRA186_CLK_NVJPG>;
+            clock-names = "nvjpg";
+            resets = <&bpmp TEGRA186_RESET_NVJPG>;
+            reset-names = "nvjpg";
+
+            power-domains = <&bpmp TEGRA186_POWER_DOMAIN_NVJPG>;
+            interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVJPGSRD &emc>,
+                            <&mc TEGRA186_MEMORY_CLIENT_NVJPGSWR &emc>;
+            interconnect-names = "dma-mem", "write";
+            iommus = <&smmu TEGRA186_SID_NVJPG>;
+    };
index 82b9531..4ac61fe 100644 (file)
@@ -21,7 +21,9 @@ allOf:
 properties:
   compatible:
     items:
-      - const: apple,t8103-i2c
+      - enum:
+          - apple,t8103-i2c
+          - apple,t6000-i2c
       - const: apple,i2c
 
   reg:
@@ -40,6 +42,9 @@ properties:
       used. This frequency is generated by dividing the reference clock.
       Allowed values are between ref_clk/(16*4) and ref_clk/(16*255).
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index cf6c091..9735902 100644 (file)
@@ -65,6 +65,9 @@ properties:
       Specifies base physical address and size of the AIC registers.
     maxItems: 1
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - '#interrupt-cells'
index 94aa9e9..82ad669 100644 (file)
@@ -41,6 +41,9 @@ properties:
       Has to be one. The single cell describes the stream id emitted by
       a master to the IOMMU.
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index c9902fd..25f86da 100644 (file)
@@ -11,6 +11,7 @@ Required properties:
        "aspeed,ast2500-ibt-bmc"
        "aspeed,ast2600-ibt-bmc"
 - reg: physical address and size of the registers
+- clocks: clock for the device
 
 Optional properties:
 
@@ -23,4 +24,5 @@ Example:
                compatible = "aspeed,ast2400-ibt-bmc";
                reg = <0x1e789140 0x18>;
                interrupts = <8>;
+               clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
        };
index 2c1704b..c4255f4 100644 (file)
@@ -56,6 +56,9 @@ properties:
   "#mbox-cells":
     const: 0
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
diff --git a/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.txt
deleted file mode 100644 (file)
index ff3eafc..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-NVIDIA Tegra Hardware Synchronization Primitives (HSP)
-
-The HSP modules are used for the processors to share resources and communicate
-together. It provides a set of hardware synchronization primitives for
-interprocessor communication. So the interprocessor communication (IPC)
-protocols can use hardware synchronization primitives, when operating between
-two processors not in an SMP relationship.
-
-The features that HSP supported are shared mailboxes, shared semaphores,
-arbitrated semaphores and doorbells.
-
-Required properties:
-- name : Should be hsp
-- compatible
-    Array of strings.
-    one of:
-    - "nvidia,tegra186-hsp"
-    - "nvidia,tegra194-hsp", "nvidia,tegra186-hsp"
-- reg : Offset and length of the register set for the device.
-- interrupt-names
-    Array of strings.
-    Contains a list of names for the interrupts described by the interrupt
-    property. May contain the following entries, in any order:
-    - "doorbell"
-    - "sharedN", where 'N' is a number from zero up to the number of
-      external interrupts supported by the HSP instance minus one.
-    Users of this binding MUST look up entries in the interrupt property
-    by name, using this interrupt-names property to do so.
-- interrupts
-    Array of interrupt specifiers.
-    Must contain one entry per entry in the interrupt-names property,
-    in a matching order.
-- #mbox-cells : Should be 2.
-
-The mbox specifier of the "mboxes" property in the client node should contain
-two cells. The first cell determines the HSP type and the second cell is used
-to identify the mailbox that the client is going to use.
-
-For doorbells, the second cell specifies the index of the doorbell to use.
-
-For shared mailboxes, the second cell is composed of two fields:
-- bits 31..24:
-    A bit mask of flags that further specify how the shared mailbox will be
-    used. Valid flags are:
-    - bit 31:
-        Defines the direction of the mailbox. If set, the mailbox will be used
-        as a producer (i.e. used to send data). If cleared, the mailbox is the
-        consumer of data sent by a producer.
-
-- bits 23.. 0:
-    The index of the shared mailbox to use. The number of available mailboxes
-    may vary by instance of the HSP block and SoC generation.
-
-The following file contains definitions that can be used to construct mailbox
-specifiers:
-
-    <dt-bindings/mailbox/tegra186-hsp.h>
-
-Example:
-
-hsp_top0: hsp@3c00000 {
-       compatible = "nvidia,tegra186-hsp";
-       reg = <0x0 0x03c00000 0x0 0xa0000>;
-       interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
-       interrupt-names = "doorbell";
-       #mbox-cells = <2>;
-};
-
-client {
-       ...
-       mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB TEGRA_HSP_DB_MASTER_XXX>;
-};
diff --git a/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.yaml b/Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.yaml
new file mode 100644 (file)
index 0000000..9f7a729
--- /dev/null
@@ -0,0 +1,114 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mailbox/nvidia,tegra186-hsp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra Hardware Synchronization Primitives (HSP)
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: |
+  The HSP modules are used for the processors to share resources and
+  communicate together. It provides a set of hardware synchronization
+  primitives for interprocessor communication. So the interprocessor
+  communication (IPC) protocols can use hardware synchronization
+  primitives, when operating between two processors not in an SMP
+  relationship.
+
+  The features that HSP supported are shared mailboxes, shared
+  semaphores, arbitrated semaphores and doorbells.
+
+  The mbox specifier of the "mboxes" property in the client node should
+  contain two cells. The first cell determines the HSP type and the
+  second cell is used to identify the mailbox that the client is going
+  to use.
+
+  For doorbells, the second cell specifies the index of the doorbell to
+  use.
+
+  For shared mailboxes, the second cell is composed of two fields:
+    - bits 31..24:
+        A bit mask of flags that further specify how the shared mailbox
+        will be used. Valid flags are:
+          - bit 31:
+              Defines the direction of the mailbox. If set, the mailbox
+              will be used as a producer (i.e. used to send data). If
+              cleared, the mailbox is the consumer of data sent by a
+              producer.
+
+    - bits 23..0:
+        The index of the shared mailbox to use. The number of available
+        mailboxes may vary by instance of the HSP block and SoC
+        generation.
+
+    The following file contains definitions that can be used to
+    construct mailbox specifiers:
+
+        <dt-bindings/mailbox/tegra186-hsp.h>
+
+properties:
+  $nodename:
+    pattern: "^hsp@[0-9a-f]+$"
+
+  compatible:
+    oneOf:
+      - const: nvidia,tegra186-hsp
+      - const: nvidia,tegra194-hsp
+      - items:
+          - const: nvidia,tegra234-hsp
+          - const: nvidia,tegra194-hsp
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    maxItems: 9
+
+  interrupt-names:
+    oneOf:
+      # shared interrupts are optional
+      - items:
+          - const: doorbell
+
+      - items:
+          - const: doorbell
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+
+      - items:
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+          - pattern: "^shared[0-7]$"
+
+  "#mbox-cells":
+    const: 2
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/mailbox/tegra186-hsp.h>
+
+    hsp_top0: hsp@3c00000 {
+        compatible = "nvidia,tegra186-hsp";
+        reg = <0x03c00000 0xa0000>;
+        interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "doorbell";
+        #mbox-cells = <2>;
+    };
+
+    client {
+        mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB TEGRA_HSP_DB_MASTER_CCPLEX>;
+    };
diff --git a/Documentation/devicetree/bindings/media/nvidia,tegra-vde.txt b/Documentation/devicetree/bindings/media/nvidia,tegra-vde.txt
deleted file mode 100644 (file)
index 602169b..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-NVIDIA Tegra Video Decoder Engine
-
-Required properties:
-- compatible : Must contain one of the following values:
-   - "nvidia,tegra20-vde"
-   - "nvidia,tegra30-vde"
-   - "nvidia,tegra114-vde"
-   - "nvidia,tegra124-vde"
-   - "nvidia,tegra132-vde"
-- reg : Must contain an entry for each entry in reg-names.
-- reg-names : Must include the following entries:
-  - sxe
-  - bsev
-  - mbe
-  - ppe
-  - mce
-  - tfe
-  - ppb
-  - vdma
-  - frameid
-- iram : Must contain phandle to the mmio-sram device node that represents
-         IRAM region used by VDE.
-- interrupts : Must contain an entry for each entry in interrupt-names.
-- interrupt-names : Must include the following entries:
-  - sync-token
-  - bsev
-  - sxe
-- clocks : Must include the following entries:
-  - vde
-- resets : Must contain an entry for each entry in reset-names.
-- reset-names : Should include the following entries:
-  - vde
-
-Optional properties:
-- resets : Must contain an entry for each entry in reset-names.
-- reset-names : Must include the following entries:
-  - mc
-- iommus: Must contain phandle to the IOMMU device node.
-
-Example:
-
-video-codec@6001a000 {
-       compatible = "nvidia,tegra20-vde";
-       reg = <0x6001a000 0x1000 /* Syntax Engine */
-              0x6001b000 0x1000 /* Video Bitstream Engine */
-              0x6001c000  0x100 /* Macroblock Engine */
-              0x6001c200  0x100 /* Post-processing Engine */
-              0x6001c400  0x100 /* Motion Compensation Engine */
-              0x6001c600  0x100 /* Transform Engine */
-              0x6001c800  0x100 /* Pixel prediction block */
-              0x6001ca00  0x100 /* Video DMA */
-              0x6001d800  0x300 /* Video frame controls */>;
-       reg-names = "sxe", "bsev", "mbe", "ppe", "mce",
-                   "tfe", "ppb", "vdma", "frameid";
-       iram = <&vde_pool>; /* IRAM region */
-       interrupts = <GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>, /* Sync token interrupt */
-                    <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, /* BSE-V interrupt */
-                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; /* SXE interrupt */
-       interrupt-names = "sync-token", "bsev", "sxe";
-       clocks = <&tegra_car TEGRA20_CLK_VDE>;
-       reset-names = "vde", "mc";
-       resets = <&tegra_car 61>, <&mc TEGRA20_MC_RESET_VDE>;
-       iommus = <&mc TEGRA_SWGROUP_VDE>;
-};
diff --git a/Documentation/devicetree/bindings/media/nvidia,tegra-vde.yaml b/Documentation/devicetree/bindings/media/nvidia,tegra-vde.yaml
new file mode 100644 (file)
index 0000000..4ecdee1
--- /dev/null
@@ -0,0 +1,119 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/nvidia,tegra-vde.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra Video Decoder Engine
+
+maintainers:
+  - Dmitry Osipenko <digetx@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+  - Thierry Reding <thierry.reding@gmail.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - nvidia,tegra132-vde
+              - nvidia,tegra124-vde
+              - nvidia,tegra114-vde
+      - items:
+          - const: nvidia,tegra30-vde
+          - const: nvidia,tegra20-vde
+      - items:
+          - const: nvidia,tegra20-vde
+
+  reg:
+    maxItems: 9
+
+  reg-names:
+    items:
+      - const: sxe
+      - const: bsev
+      - const: mbe
+      - const: ppe
+      - const: mce
+      - const: tfe
+      - const: ppb
+      - const: vdma
+      - const: frameid
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 2
+
+  reset-names:
+    items:
+      - const: vde
+      - const: mc
+
+  interrupts:
+    maxItems: 3
+
+  interrupt-names:
+    items:
+      - const: sync-token
+      - const: bsev
+      - const: sxe
+
+  iommus:
+    maxItems: 1
+
+  iram:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle of the SRAM MMIO node.
+
+  operating-points-v2:
+    description:
+      Should contain freqs and voltages and opp-supported-hw property,
+      which is a bitfield indicating SoC speedo or process ID mask.
+
+  power-domains:
+    maxItems: 1
+    description:
+      Phandle to the SoC core power domain.
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - clocks
+  - resets
+  - reset-names
+  - interrupts
+  - interrupt-names
+
+additionalProperties: false
+
+examples:
+  - |
+    video-codec@6001a000 {
+      compatible = "nvidia,tegra20-vde";
+      reg = <0x6001a000 0x1000>, /* Syntax Engine */
+            <0x6001b000 0x1000>, /* Video Bitstream Engine */
+            <0x6001c000  0x100>, /* Macroblock Engine */
+            <0x6001c200  0x100>, /* Post-processing Engine */
+            <0x6001c400  0x100>, /* Motion Compensation Engine */
+            <0x6001c600  0x100>, /* Transform Engine */
+            <0x6001c800  0x100>, /* Pixel prediction block */
+            <0x6001ca00  0x100>, /* Video DMA */
+            <0x6001d800  0x300>; /* Video frame controls */
+      reg-names = "sxe", "bsev", "mbe", "ppe", "mce",
+                  "tfe", "ppb", "vdma", "frameid";
+      iram = <&iram>; /* IRAM MMIO region */
+      interrupts = <0  9 4>, /* Sync token */
+                   <0 10 4>, /* BSE-V */
+                   <0 12 4>; /* SXE */
+      interrupt-names = "sync-token", "bsev", "sxe";
+      clocks = <&clk 61>;
+      reset-names = "vde", "mc";
+      resets = <&rst 61>, <&mem 13>;
+      iommus = <&mem 15>;
+      operating-points-v2 = <&dvfs_opp_table>;
+      power-domains = <&domain>;
+    };
index 611bda3..13c4c82 100644 (file)
@@ -31,12 +31,15 @@ properties:
       - enum:
           - nvidia,tegra186-mc
           - nvidia,tegra194-mc
+          - nvidia,tegra234-mc
 
   reg:
-    maxItems: 1
+    minItems: 1
+    maxItems: 3
 
   interrupts:
-    maxItems: 1
+    items:
+      - description: MC general interrupt
 
   "#address-cells":
     const: 2
@@ -48,6 +51,9 @@ properties:
 
   dma-ranges: true
 
+  "#interconnect-cells":
+    const: 1
+
 patternProperties:
   "^external-memory-controller@[0-9a-f]+$":
     description:
@@ -63,12 +69,15 @@ patternProperties:
           - enum:
               - nvidia,tegra186-emc
               - nvidia,tegra194-emc
+              - nvidia,tegra234-emc
 
       reg:
-        maxItems: 1
+        minItems: 1
+        maxItems: 2
 
       interrupts:
-        maxItems: 1
+        items:
+          - description: EMC general interrupt
 
       clocks:
         items:
@@ -78,11 +87,83 @@ patternProperties:
         items:
           - const: emc
 
+      "#interconnect-cells":
+        const: 0
+
       nvidia,bpmp:
         $ref: /schemas/types.yaml#/definitions/phandle
         description:
           phandle of the node representing the BPMP
 
+    allOf:
+      - if:
+          properties:
+            compatible:
+              const: nvidia,tegra186-emc
+        then:
+          properties:
+            reg:
+              maxItems: 1
+
+      - if:
+          properties:
+            compatible:
+              const: nvidia,tegra194-emc
+        then:
+          properties:
+            reg:
+              minItems: 2
+
+      - if:
+          properties:
+            compatible:
+              const: nvidia,tegra234-emc
+        then:
+          properties:
+            reg:
+              minItems: 2
+
+    additionalProperties: false
+
+    required:
+      - compatible
+      - reg
+      - interrupts
+      - clocks
+      - clock-names
+      - "#interconnect-cells"
+      - nvidia,bpmp
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          const: nvidia,tegra186-mc
+    then:
+      properties:
+        reg:
+          maxItems: 1
+
+  - if:
+      properties:
+        compatible:
+          const: nvidia,tegra194-mc
+    then:
+      properties:
+        reg:
+          minItems: 3
+
+  - if:
+      properties:
+        compatible:
+          const: nvidia,tegra234-mc
+    then:
+      properties:
+        reg:
+          minItems: 3
+
+additionalProperties: false
+
 required:
   - compatible
   - reg
@@ -90,8 +171,6 @@ required:
   - "#address-cells"
   - "#size-cells"
 
-additionalProperties: false
-
 examples:
   - |
     #include <dt-bindings/clock/tegra186-clock.h>
@@ -124,12 +203,9 @@ examples:
                 clocks = <&bpmp TEGRA186_CLK_EMC>;
                 clock-names = "emc";
 
+                #interconnect-cells = <0>;
+
                 nvidia,bpmp = <&bpmp>;
             };
         };
     };
-
-    bpmp: bpmp {
-        compatible = "nvidia,tegra186-bpmp";
-        #clock-cells = <1>;
-    };
diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra186-misc.txt b/Documentation/devicetree/bindings/misc/nvidia,tegra186-misc.txt
deleted file mode 100644 (file)
index 43d777e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-NVIDIA Tegra186 (and later) MISC register block
-
-The MISC register block found on Tegra186 and later SoCs contains registers
-that can be used to identify a given chip and various strapping options.
-
-Required properties:
-- compatible: Must be:
-  - Tegra186: "nvidia,tegra186-misc"
-  - Tegra194: "nvidia,tegra194-misc"
-  - Tegra234: "nvidia,tegra234-misc"
-- reg: Should contain 2 entries: The first entry gives the physical address
-       and length of the register region which contains revision and debug
-       features. The second entry specifies the physical address and length
-       of the register region indicating the strapping options.
diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra186-misc.yaml b/Documentation/devicetree/bindings/misc/nvidia,tegra186-misc.yaml
new file mode 100644 (file)
index 0000000..cacb845
--- /dev/null
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/misc/nvidia,tegra186-misc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra186 (and later) MISC register block
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: The MISC register block found on Tegra186 and later SoCs contains
+  registers that can be used to identify a given chip and various strapping
+  options.
+
+properties:
+  compatible:
+    enum:
+      - nvidia,tegra186-misc
+      - nvidia,tegra194-misc
+      - nvidia,tegra234-misc
+
+  reg:
+    items:
+      - description: physical address and length of the registers which
+          contain revision and debug features
+      - description: physical address and length of the registers which
+          indicate strapping options
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+examples:
+  - |
+    misc@100000 {
+        compatible = "nvidia,tegra186-misc";
+        reg = <0x00100000 0xf000>,
+              <0x0010f000 0x1000>;
+    };
diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra20-apbmisc.txt b/Documentation/devicetree/bindings/misc/nvidia,tegra20-apbmisc.txt
deleted file mode 100644 (file)
index 83f6a25..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-NVIDIA Tegra APBMISC block
-
-Required properties:
-- compatible: Must be:
-  - Tegra20: "nvidia,tegra20-apbmisc"
-  - Tegra30: "nvidia,tegra30-apbmisc", "nvidia,tegra20-apbmisc"
-  - Tegra114: "nvidia,tegra114-apbmisc", "nvidia,tegra20-apbmisc"
-  - Tegra124: "nvidia,tegra124-apbmisc", "nvidia,tegra20-apbmisc"
-  - Tegra132: "nvidia,tegra124-apbmisc", "nvidia,tegra20-apbmisc"
-  - Tegra210: "nvidia,tegra210-apbmisc", "nvidia,tegra20-apbmisc"
-- reg: Should contain 2 entries: the first entry gives the physical address
-       and length of the registers which contain revision and debug features.
-       The second entry gives the physical address and length of the
-       registers indicating the strapping options.
-
-Optional properties:
-- nvidia,long-ram-code: If present, the RAM code is long (4 bit). If not, short (2 bit).
diff --git a/Documentation/devicetree/bindings/misc/nvidia,tegra20-apbmisc.yaml b/Documentation/devicetree/bindings/misc/nvidia,tegra20-apbmisc.yaml
new file mode 100644 (file)
index 0000000..6f504fa
--- /dev/null
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/misc/nvidia,tegra20-apbmisc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra APBMISC block
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - nvidia,tegra210-apbmisc
+              - nvidia,tegra124-apbmisc
+              - nvidia,tegra114-apbmisc
+              - nvidia,tegra30-apbmisc
+          - const: nvidia,tegra20-apbmisc
+
+      - items:
+          - const: nvidia,tegra20-apbmisc
+
+  reg:
+    items:
+      - description: physical address and length of the registers which
+          contain revision and debug features
+      - description: physical address and length of the registers which
+          indicate strapping options
+
+  nvidia,long-ram-code:
+    description: If present, the RAM code is long (4 bit). If not, short
+      (2 bit).
+    type: boolean
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+examples:
+  - |
+    apbmisc@70000800 {
+        compatible = "nvidia,tegra20-apbmisc";
+        reg = <0x70000800 0x64>, /* Chip revision */
+              <0x70000008 0x04>; /* Strapping options */
+    };
diff --git a/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt b/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt
deleted file mode 100644 (file)
index 96c0b14..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-* NVIDIA Tegra Secure Digital Host Controller
-
-This controller on Tegra family SoCs provides an interface for MMC, SD,
-and SDIO types of memory cards.
-
-This file documents differences between the core properties described
-by mmc.txt and the properties used by the sdhci-tegra driver.
-
-Required properties:
-- compatible : should be one of:
-  - "nvidia,tegra20-sdhci": for Tegra20
-  - "nvidia,tegra30-sdhci": for Tegra30
-  - "nvidia,tegra114-sdhci": for Tegra114
-  - "nvidia,tegra124-sdhci": for Tegra124 and Tegra132
-  - "nvidia,tegra210-sdhci": for Tegra210
-  - "nvidia,tegra186-sdhci": for Tegra186
-  - "nvidia,tegra194-sdhci": for Tegra194
-- clocks: For Tegra210, Tegra186 and Tegra194 must contain two entries.
-         One for the module clock and one for the timeout clock.
-         For all other Tegra devices, must contain a single entry for
-         the module clock. See ../clocks/clock-bindings.txt for details.
-- clock-names: For Tegra210, Tegra186 and Tegra194 must contain the
-              strings 'sdhci' and 'tmclk' to represent the module and
-              the timeout clocks, respectively.
-              For all other Tegra devices must contain the string 'sdhci'
-              to represent the module clock.
-- resets : Must contain an entry for each entry in reset-names.
-  See ../reset/reset.txt for details.
-- reset-names : Must include the following entries:
-  - sdhci
-
-Optional properties:
-- power-gpios : Specify GPIOs for power control
-
-Example:
-
-sdhci@c8000200 {
-       compatible = "nvidia,tegra20-sdhci";
-       reg = <0xc8000200 0x200>;
-       interrupts = <47>;
-       clocks = <&tegra_car 14>;
-       resets = <&tegra_car 14>;
-       reset-names = "sdhci";
-       cd-gpios = <&gpio 69 0>; /* gpio PI5 */
-       wp-gpios = <&gpio 57 0>; /* gpio PH1 */
-       power-gpios = <&gpio 155 0>; /* gpio PT3 */
-       bus-width = <8>;
-};
-
-Optional properties for Tegra210, Tegra186 and Tegra194:
-- pinctrl-names, pinctrl-0, pinctrl-1 : Specify pad voltage
-  configurations. Valid pinctrl-names are "sdmmc-3v3" and "sdmmc-1v8"
-  for controllers supporting multiple voltage levels. The order of names
-  should correspond to the pin configuration states in pinctrl-0 and
-  pinctrl-1.
-- pinctrl-names : "sdmmc-3v3-drv" and "sdmmc-1v8-drv" are applicable for
-  Tegra210 where pad config registers are in the pinmux register domain
-  for pull-up-strength and pull-down-strength values configuration when
-  using pads at 3V3 and 1V8 levels.
-- nvidia,only-1-8-v : The presence of this property indicates that the
-  controller operates at a 1.8 V fixed I/O voltage.
-- nvidia,pad-autocal-pull-up-offset-3v3,
-  nvidia,pad-autocal-pull-down-offset-3v3 : Specify drive strength
-  calibration offsets for 3.3 V signaling modes.
-- nvidia,pad-autocal-pull-up-offset-1v8,
-  nvidia,pad-autocal-pull-down-offset-1v8 : Specify drive strength
-  calibration offsets for 1.8 V signaling modes.
-- nvidia,pad-autocal-pull-up-offset-3v3-timeout,
-  nvidia,pad-autocal-pull-down-offset-3v3-timeout : Specify drive
-  strength used as a fallback in case the automatic calibration times
-  out on a 3.3 V signaling mode.
-- nvidia,pad-autocal-pull-up-offset-1v8-timeout,
-  nvidia,pad-autocal-pull-down-offset-1v8-timeout : Specify drive
-  strength used as a fallback in case the automatic calibration times
-  out on a 1.8 V signaling mode.
-- nvidia,pad-autocal-pull-up-offset-sdr104,
-  nvidia,pad-autocal-pull-down-offset-sdr104 : Specify drive strength
-  calibration offsets for SDR104 mode.
-- nvidia,pad-autocal-pull-up-offset-hs400,
-  nvidia,pad-autocal-pull-down-offset-hs400 : Specify drive strength
-  calibration offsets for HS400 mode.
-- nvidia,default-tap : Specify the default inbound sampling clock
-  trimmer value for non-tunable modes.
-- nvidia,default-trim : Specify the default outbound clock trimmer
-  value.
-- nvidia,dqs-trim : Specify DQS trim value for HS400 timing
-
-  Notes on the pad calibration pull up and pulldown offset values:
-    - The property values are drive codes which are programmed into the
-      PD_OFFSET and PU_OFFSET sections of the
-      SDHCI_TEGRA_AUTO_CAL_CONFIG register.
-    - A higher value corresponds to higher drive strength. Please refer
-      to the reference manual of the SoC for correct values.
-    - The SDR104 and HS400 timing specific values are used in
-      corresponding modes if specified.
-
-  Notes on tap and trim values:
-    - The values are used for compensating trace length differences
-      by adjusting the sampling point.
-    - The values are programmed to the Vendor Clock Control Register.
-      Please refer to the reference manual of the SoC for correct
-      values.
-    - The DQS trim values are only used on controllers which support
-      HS400 timing. Only SDMMC4 on Tegra210 and Tegra 186 supports
-      HS400.
-
-Example:
-sdhci@700b0000 {
-       compatible = "nvidia,tegra124-sdhci";
-       reg = <0x0 0x700b0000 0x0 0x200>;
-       interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
-       clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
-       clock-names = "sdhci";
-       resets = <&tegra_car 14>;
-       reset-names = "sdhci";
-       pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
-       pinctrl-0 = <&sdmmc1_3v3>;
-       pinctrl-1 = <&sdmmc1_1v8>;
-       nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
-       nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
-       nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
-       nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
-       status = "disabled";
-};
-
-sdhci@700b0000 {
-       compatible = "nvidia,tegra210-sdhci";
-       reg = <0x0 0x700b0000 0x0 0x200>;
-       interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
-       clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
-                <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
-       clock-names = "sdhci", "tmclk";
-       resets = <&tegra_car 14>;
-       reset-names = "sdhci";
-       pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
-       pinctrl-0 = <&sdmmc1_3v3>;
-       pinctrl-1 = <&sdmmc1_1v8>;
-       nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
-       nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
-       nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
-       nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
-       status = "disabled";
-};
diff --git a/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.yaml b/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.yaml
new file mode 100644 (file)
index 0000000..ce64b34
--- /dev/null
@@ -0,0 +1,317 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mmc/nvidia,tegra20-sdhci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra Secure Digital Host Controller
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: |
+  This controller on Tegra family SoCs provides an interface for MMC, SD, and
+  SDIO types of memory cards.
+
+  This file documents differences between the core properties described by
+  mmc-controller.yaml and the properties for the Tegra SDHCI controller.
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - nvidia,tegra20-sdhci
+          - nvidia,tegra30-sdhci
+          - nvidia,tegra114-sdhci
+          - nvidia,tegra124-sdhci
+          - nvidia,tegra210-sdhci
+          - nvidia,tegra186-sdhci
+          - nvidia,tegra194-sdhci
+
+      - items:
+          - const: nvidia,tegra132-sdhci
+          - const: nvidia,tegra124-sdhci
+
+      - items:
+          - enum:
+              - nvidia,tegra194-sdhci
+              - nvidia,tegra234-sdhci
+          - const: nvidia,tegra186-sdhci
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  assigned-clocks: true
+  assigned-clock-parents: true
+  assigned-clock-rates: true
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    maxItems: 2
+
+  resets:
+    items:
+      - description: module reset
+
+  reset-names:
+    items:
+      - const: sdhci
+
+  power-gpios:
+    description: specify GPIOs for power control
+    maxItems: 1
+
+  interconnects:
+    items:
+      - description: memory read client
+      - description: memory write client
+
+  interconnect-names:
+    items:
+      - const: dma-mem # read
+      - const: write
+
+  iommus:
+    maxItems: 1
+
+  operating-points-v2:
+    $ref: "/schemas/types.yaml#/definitions/phandle"
+
+  power-domains:
+    items:
+      - description: phandle to the core power domain
+
+  nvidia,default-tap:
+    description: Specify the default inbound sampling clock trimmer value for
+      non-tunable modes.
+
+      The values are used for compensating trace length differences by
+      adjusting the sampling point. The values are programmed to the Vendor
+      Clock Control Register. Please refer to the reference manual of the SoC
+      for correct values.
+
+      The DQS trim values are only used on controllers which support HS400
+      timing. Only SDMMC4 on Tegra210 and Tegra186 supports HS400.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,default-trim:
+    description: Specify the default outbound clock trimmer value.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,dqs-trim:
+    description: Specify DQS trim value for HS400 timing.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-down-offset-1v8:
+    description: Specify drive strength calibration offsets for 1.8 V
+      signaling modes.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-down-offset-1v8-timeout:
+    description: Specify drive strength used as a fallback in case the
+      automatic calibration times out on a 1.8 V signaling mode.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-down-offset-3v3:
+    description: Specify drive strength calibration offsets for 3.3 V
+      signaling modes.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-down-offset-3v3-timeout:
+    description: Specify drive strength used as a fallback in case the
+      automatic calibration times out on a 3.3 V signaling mode.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-down-offset-sdr104:
+    description: Specify drive strength calibration offsets for SDR104 mode.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-down-offset-hs400:
+    description: Specify drive strength calibration offsets for HS400 mode.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-up-offset-1v8:
+    description: Specify drive strength calibration offsets for 1.8 V
+      signaling modes.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-up-offset-1v8-timeout:
+    description: Specify drive strength used as a fallback in case the
+      automatic calibration times out on a 1.8 V signaling mode.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-up-offset-3v3:
+    description: Specify drive strength calibration offsets for 3.3 V
+      signaling modes.
+
+      The property values are drive codes which are programmed into the
+      PD_OFFSET and PU_OFFSET sections of the SDHCI_TEGRA_AUTO_CAL_CONFIG
+      register. A higher value corresponds to higher drive strength. Please
+      refer to the reference manual of the SoC for correct values. The SDR104
+      and HS400 timing specific values are used in corresponding modes if
+      specified.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-up-offset-3v3-timeout:
+    description: Specify drive strength used as a fallback in case the
+      automatic calibration times out on a 3.3 V signaling mode.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-up-offset-sdr104:
+    description: Specify drive strength calibration offsets for SDR104 mode.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,pad-autocal-pull-up-offset-hs400:
+    description: Specify drive strength calibration offsets for HS400 mode.
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+
+  nvidia,only-1-8v:
+    description: The presence of this property indicates that the controller
+      operates at a 1.8 V fixed I/O voltage.
+    $ref: "/schemas/types.yaml#/definitions/flag"
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: "mmc-controller.yaml"
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - nvidia,tegra20-sdhci
+              - nvidia,tegra30-sdhci
+              - nvidia,tegra114-sdhci
+              - nvidia,tegra124-sdhci
+        clocks:
+          items:
+            - description: module clock
+          minItems: 1
+          maxItems: 1
+    else:
+      properties:
+        clocks:
+          items:
+            - description: module clock
+            - description: timeout clock
+          minItems: 2
+          maxItems: 2
+        clock-names:
+          items:
+            - const: sdhci
+            - const: tmclk
+          minItems: 2
+          maxItems: 2
+      required:
+        - clock-names
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: nvidia,tegra210-sdhci
+    then:
+      properties:
+        pinctrl-names:
+          oneOf:
+            - items:
+                - const: sdmmc-3v3
+                  description: pad configuration for 3.3 V
+                - const: sdmmc-1v8
+                  description: pad configuration for 1.8 V
+                - const: sdmmc-3v3-drv
+                  description: pull-up/down configuration for 3.3 V
+                - const: sdmmc-1v8-drv
+                  description: pull-up/down configuration for 1.8 V
+            - items:
+                - const: sdmmc-3v3-drv
+                  description: pull-up/down configuration for 3.3 V
+                - const: sdmmc-1v8-drv
+                  description: pull-up/down configuration for 1.8 V
+            - items:
+                - const: sdmmc-1v8-drv
+                  description: pull-up/down configuration for 1.8 V
+      required:
+        - clock-names
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - nvidia,tegra186-sdhci
+              - nvidia,tegra194-sdhci
+    then:
+      properties:
+        pinctrl-names:
+          items:
+            - const: sdmmc-3v3
+              description: pad configuration for 3.3 V
+            - const: sdmmc-1v8
+              description: pad configuration for 1.8 V
+      required:
+        - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    mmc@c8000200 {
+        compatible = "nvidia,tegra20-sdhci";
+        reg = <0xc8000200 0x200>;
+        interrupts = <47>;
+        clocks = <&tegra_car 14>;
+        resets = <&tegra_car 14>;
+        reset-names = "sdhci";
+        cd-gpios = <&gpio 69 0>; /* gpio PI5 */
+        wp-gpios = <&gpio 57 0>; /* gpio PH1 */
+        power-gpios = <&gpio 155 0>; /* gpio PT3 */
+        bus-width = <8>;
+    };
+
+  - |
+    #include <dt-bindings/clock/tegra210-car.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    mmc@700b0000 {
+        compatible = "nvidia,tegra210-sdhci";
+        reg = <0x700b0000 0x200>;
+        interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&tegra_car TEGRA210_CLK_SDMMC1>,
+                 <&tegra_car TEGRA210_CLK_SDMMC_LEGACY>;
+        clock-names = "sdhci", "tmclk";
+        resets = <&tegra_car 14>;
+        reset-names = "sdhci";
+        pinctrl-names = "sdmmc-3v3", "sdmmc-1v8",
+                        "sdmmc-3v3-drv", "sdmmc-1v8-drv";
+        pinctrl-0 = <&sdmmc1_3v3>;
+        pinctrl-1 = <&sdmmc1_1v8>;
+        pinctrl-2 = <&sdmmc1_3v3_drv>;
+        pinctrl-3 = <&sdmmc1_1v8_drv>;
+        nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
+        nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
+        nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
+        nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
+        nvidia,default-tap = <0x2>;
+        nvidia,default-trim = <0x4>;
+        assigned-clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
+                          <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>,
+                          <&tegra_car TEGRA210_CLK_PLL_C4>;
+        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
+        assigned-clock-rates = <200000000>, <1000000000>, <1000000000>;
+    };
index 9f1e709..9ce6e06 100644 (file)
@@ -113,31 +113,51 @@ allOf:
         clocks:
           items:
             - description: IMCLK, SDHI channel main clock1.
+            - description: CLK_HS, SDHI channel High speed clock which operates
+                           4 times that of SDHI channel main clock1.
             - description: IMCLK2, SDHI channel main clock2. When this clock is
                            turned off, external SD card detection cannot be
                            detected.
-            - description: CLK_HS, SDHI channel High speed clock which operates
-                           4 times that of SDHI channel main clock1.
             - description: ACLK, SDHI channel bus clock.
         clock-names:
           items:
-            - const: imclk
-            - const: imclk2
-            - const: clk_hs
+            - const: core
+            - const: clkh
+            - const: cd
             - const: aclk
       required:
         - clock-names
         - resets
     else:
-      properties:
-        clocks:
-          minItems: 1
-          maxItems: 2
-        clock-names:
-          minItems: 1
-          items:
-            - const: core
-            - const: cd
+      if:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - renesas,rcar-gen2-sdhi
+                - renesas,rcar-gen3-sdhi
+      then:
+        properties:
+          clocks:
+            minItems: 1
+            maxItems: 3
+          clock-names:
+            minItems: 1
+            uniqueItems: true
+            items:
+              - const: core
+              - enum: [ clkh, cd ]
+              - const: cd
+      else:
+        properties:
+          clocks:
+            minItems: 1
+            maxItems: 2
+          clock-names:
+            minItems: 1
+            items:
+              - const: core
+              - const: cd
 
   - if:
       properties:
index ef1d424..7f01e15 100644 (file)
@@ -28,19 +28,17 @@ description: |
   distributed over the root ports as the OS sees fit by programming
   the PCIe controller's port registers.
 
-allOf:
-  - $ref: /schemas/pci/pci-bus.yaml#
-  - $ref: /schemas/interrupt-controller/msi-controller.yaml#
-
 properties:
   compatible:
     items:
-      - const: apple,t8103-pcie
+      - enum:
+          - apple,t8103-pcie
+          - apple,t6000-pcie
       - const: apple,pcie
 
   reg:
     minItems: 3
-    maxItems: 5
+    maxItems: 6
 
   reg-names:
     minItems: 3
@@ -50,6 +48,7 @@ properties:
       - const: port0
       - const: port1
       - const: port2
+      - const: port3
 
   ranges:
     minItems: 2
@@ -59,7 +58,7 @@ properties:
     description:
       Interrupt specifiers, one for each root port.
     minItems: 1
-    maxItems: 3
+    maxItems: 4
 
   msi-parent: true
 
@@ -81,6 +80,21 @@ required:
 
 unevaluatedProperties: false
 
+allOf:
+  - $ref: /schemas/pci/pci-bus.yaml#
+  - $ref: /schemas/interrupt-controller/msi-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: apple,t8103-pcie
+    then:
+      properties:
+        reg:
+          maxItems: 5
+        interrupts:
+          maxItems: 3
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/apple-aic.h>
index 07b00de..572923d 100644 (file)
@@ -17,7 +17,9 @@ description: |
 properties:
   compatible:
     items:
-      - const: apple,t8103-pinctrl
+      - enum:
+          - apple,t8103-pinctrl
+          - apple,t6000-pinctrl
       - const: apple,pinctrl
 
   reg:
@@ -50,6 +52,9 @@ properties:
   '#interrupt-cells':
     const: 2
 
+  power-domains:
+    maxItems: 1
+
 patternProperties:
   '-pins$':
     type: object
diff --git a/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml b/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml
new file mode 100644 (file)
index 0000000..19a1949
--- /dev/null
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/apple,pmgr-pwrstate.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple SoC PMGR Power States
+
+maintainers:
+  - Hector Martin <marcan@marcan.st>
+
+allOf:
+  - $ref: "power-domain.yaml#"
+
+description: |
+  Apple SoCs include PMGR blocks responsible for power management,
+  which can control various clocks, resets, power states, and
+  performance features. This binding describes the device power
+  state registers, which control power states and resets.
+
+  Each instance of a power controller within the PMGR syscon node
+  represents a generic power domain provider, as documented in
+  Documentation/devicetree/bindings/power/power-domain.yaml.
+  The provider controls a single SoC block. The power hierarchy is
+  represented via power-domains relationships between these nodes.
+
+  See Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml
+  for the top-level PMGR node documentation.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - apple,t8103-pmgr-pwrstate
+          - apple,t6000-pmgr-pwrstate
+      - const: apple,pmgr-pwrstate
+
+  reg:
+    maxItems: 1
+
+  "#power-domain-cells":
+    const: 0
+
+  "#reset-cells":
+    const: 0
+
+  power-domains:
+    description:
+      Reference to parent power domains. A domain may have multiple parents,
+      and all will be powered up when it is powered.
+    minItems: 1
+    maxItems: 8 # Arbitrary, should be enough
+
+  label:
+    description:
+      Specifies the name of the SoC domain being controlled. This is used to
+      name the power/reset domains.
+
+  apple,always-on:
+    description:
+      Forces this power domain to always be powered up.
+    type: boolean
+
+  apple,min-state:
+    description:
+      Specifies the minimum power state for auto-PM.
+      0 = power gated, 4 = clock gated, 15 = on.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 15
+
+required:
+  - compatible
+  - reg
+  - "#power-domain-cells"
+  - "#reset-cells"
+  - label
+
+additionalProperties: false
index 99e8042..62a49ca 100644 (file)
@@ -41,6 +41,7 @@ properties:
       - renesas,r8a77990-sysc # R-Car E3
       - renesas,r8a77995-sysc # R-Car D3
       - renesas,r8a779a0-sysc # R-Car V3U
+      - renesas,r8a779f0-sysc # R-Car S4-8
 
   reg:
     maxItems: 1
index 620cd05..bbe313b 100644 (file)
@@ -48,6 +48,7 @@ properties:
       - renesas,r8a77990-rst      # R-Car E3
       - renesas,r8a77995-rst      # R-Car D3
       - renesas,r8a779a0-rst      # R-Car V3U
+      - renesas,r8a779f0-rst      # R-Car S4-8
 
   reg:
     maxItems: 1
diff --git a/Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.txt b/Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.txt
deleted file mode 100644 (file)
index b7d98ed..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-NVIDIA Tegra20 real-time clock
-
-The Tegra RTC maintains seconds and milliseconds counters, and five alarm
-registers. The alarms and other interrupts may wake the system from low-power
-state.
-
-Required properties:
-
-- compatible : For Tegra20, must contain "nvidia,tegra20-rtc".  Otherwise,
-  must contain '"nvidia,<chip>-rtc", "nvidia,tegra20-rtc"', where <chip>
-  can be tegra30, tegra114, tegra124, or tegra132.
-- reg : Specifies base physical address and size of the registers.
-- interrupts : A single interrupt specifier.
-- clocks : Must contain one entry, for the module clock.
-  See ../clocks/clock-bindings.txt for details.
-
-Example:
-
-timer {
-       compatible = "nvidia,tegra20-rtc";
-       reg = <0x7000e000 0x100>;
-       interrupts = <0 2 0x04>;
-       clocks = <&tegra_car 4>;
-};
diff --git a/Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.yaml b/Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.yaml
new file mode 100644 (file)
index 0000000..17d6280
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/nvidia,tegra20-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra real-time clock
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: |
+  The Tegra RTC maintains seconds and milliseconds counters, and five
+  alarm registers. The alarms and other interrupts may wake the system
+  from low-power state.
+
+properties:
+  compatible:
+    oneOf:
+      - const: nvidia,tegra20-rtc
+      - items:
+          - enum:
+              - nvidia,tegra30-rtc
+              - nvidia,tegra114-rtc
+              - nvidia,tegra124-rtc
+              - nvidia,tegra210-rtc
+              - nvidia,tegra186-rtc
+              - nvidia,tegra194-rtc
+              - nvidia,tegra234-rtc
+          - const: nvidia,tegra20-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: rtc
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+examples:
+  - |
+    timer@7000e000 {
+        compatible = "nvidia,tegra20-rtc";
+        reg = <0x7000e000 0x100>;
+        interrupts = <0 2 0x04>;
+        clocks = <&tegra_car 4>;
+    };
index fa76744..3bab2f2 100644 (file)
@@ -113,9 +113,10 @@ properties:
               - nvidia,tegra30-uart
               - nvidia,tegra114-uart
               - nvidia,tegra124-uart
+              - nvidia,tegra210-uart
               - nvidia,tegra186-uart
               - nvidia,tegra194-uart
-              - nvidia,tegra210-uart
+              - nvidia,tegra234-uart
           - const: nvidia,tegra20-uart
 
   reg:
diff --git a/Documentation/devicetree/bindings/serial/nvidia,tegra194-tcu.txt b/Documentation/devicetree/bindings/serial/nvidia,tegra194-tcu.txt
deleted file mode 100644 (file)
index 085a859..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-NVIDIA Tegra Combined UART (TCU)
-
-The TCU is a system for sharing a hardware UART instance among multiple
-systems within the Tegra SoC. It is implemented through a mailbox-
-based protocol where each "virtual UART" has a pair of mailboxes, one
-for transmitting and one for receiving, that is used to communicate
-with the hardware implementing the TCU.
-
-Required properties:
-- name : Should be tcu
-- compatible
-    Array of strings
-    One of:
-    - "nvidia,tegra194-tcu"
-- mbox-names:
-    "rx" - Mailbox for receiving data from hardware UART
-    "tx" - Mailbox for transmitting data to hardware UART
-- mboxes: Mailboxes corresponding to the mbox-names.
-
-This node is a mailbox consumer. See the following files for details of
-the mailbox subsystem, and the specifiers implemented by the relevant
-provider(s):
-
-- .../mailbox/mailbox.txt
-- .../mailbox/nvidia,tegra186-hsp.txt
-
-Example bindings:
------------------
-
-tcu: tcu {
-       compatible = "nvidia,tegra194-tcu";
-       mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_SM 0>,
-                <&hsp_aon TEGRA_HSP_MBOX_TYPE_SM 1>;
-       mbox-names = "rx", "tx";
-};
diff --git a/Documentation/devicetree/bindings/serial/nvidia,tegra194-tcu.yaml b/Documentation/devicetree/bindings/serial/nvidia,tegra194-tcu.yaml
new file mode 100644 (file)
index 0000000..e2d111b
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serial/nvidia,tegra194-tcu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra Combined UART (TCU)
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jonathan Hunter <jonathanh@nvidia.com>
+
+description:
+  The TCU is a system for sharing a hardware UART instance among multiple
+  systems within the Tegra SoC. It is implemented through a mailbox-
+  based protocol where each "virtual UART" has a pair of mailboxes, one
+  for transmitting and one for receiving, that is used to communicate
+  with the hardware implementing the TCU.
+
+properties:
+  $nodename:
+    pattern: "^serial(@.*)?$"
+
+  compatible:
+    oneOf:
+      - const: nvidia,tegra194-tcu
+      - items:
+          - enum:
+              - nvidia,tegra234-tcu
+          - const: nvidia,tegra194-tcu
+
+  mbox-names:
+    items:
+      - const: rx
+      - const: tx
+
+  mboxes:
+    description: |
+      List of phandles to mailbox channels used for receiving and
+      transmitting data from and to the hardware UART.
+    items:
+      - description: mailbox for receiving data from hardware UART
+      - description: mailbox for transmitting data to hardware UART
+
+required:
+  - compatible
+  - mbox-names
+  - mboxes
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/mailbox/tegra186-hsp.h>
+
+    tcu: serial {
+        compatible = "nvidia,tegra194-tcu";
+        mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_SM 0>,
+                 <&hsp_aon TEGRA_HSP_MBOX_TYPE_SM 1>;
+        mbox-names = "rx", "tx";
+    };
diff --git a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.txt b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.txt
deleted file mode 100644 (file)
index f331316..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Broadcom VCHIQ firmware services
-
-Required properties:
-
-- compatible:  Should be "brcm,bcm2835-vchiq" on BCM2835, otherwise
-               "brcm,bcm2836-vchiq".
-- reg:         Physical base address and length of the doorbell register pair
-- interrupts:  The interrupt number
-                 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
-
-Example:
-
-mailbox@7e00b840 {
-       compatible = "brcm,bcm2835-vchiq";
-       reg = <0x7e00b840 0xf>;
-       interrupts = <0 2>;
-};
diff --git a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.yaml b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.yaml
new file mode 100644 (file)
index 0000000..e04439b
--- /dev/null
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/bcm/brcm,bcm2835-vchiq.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom VCHIQ firmware services
+
+maintainers:
+  - Nicolas Saenz Julienne <nsaenz@kernel.org>
+
+description:
+  The VCHIQ communication channel can be provided by BCM283x and Capri SoCs,
+  to communicate with the VPU-side OS services.
+
+properties:
+  compatible:
+    oneOf:
+      - description: BCM2835 based boards
+        items:
+          - enum:
+              - brcm,bcm2835-vchiq
+
+      - description: BCM2836/BCM2837 based boards
+        items:
+          - enum:
+              - brcm,bcm2836-vchiq
+          - const: brcm,bcm2835-vchiq
+
+  reg:
+    description: Physical base address and length of the doorbell register pair
+    minItems: 1
+
+  interrupts:
+    description: Interrupt number of the doorbell interrupt
+    minItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    mailbox@7e00b840 {
+      compatible = "brcm,bcm2835-vchiq";
+      reg = <0x7e00b840 0xf>;
+      interrupts = <0 2>;
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mn-disp-blk-ctrl.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mn-disp-blk-ctrl.yaml
new file mode 100644 (file)
index 0000000..fbeaac3
--- /dev/null
@@ -0,0 +1,97 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/imx/fsl,imx8mn-disp-blk-ctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX8MN DISP blk-ctrl
+
+maintainers:
+  - Lucas Stach <l.stach@pengutronix.de>
+
+description:
+  The i.MX8MN DISP blk-ctrl is a top-level peripheral providing access to
+  the NoC and ensuring proper power sequencing of the display and MIPI CSI
+  peripherals located in the DISP domain of the SoC.
+
+properties:
+  compatible:
+    items:
+      - const: fsl,imx8mn-disp-blk-ctrl
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  '#power-domain-cells':
+    const: 1
+
+  power-domains:
+    minItems: 5
+    maxItems: 5
+
+  power-domain-names:
+    items:
+      - const: bus
+      - const: isi
+      - const: lcdif
+      - const: mipi-dsi
+      - const: mipi-csi
+
+  clocks:
+    minItems: 11
+    maxItems: 11
+
+  clock-names:
+    items:
+      - const: disp_axi
+      - const: disp_apb
+      - const: disp_axi_root
+      - const: disp_apb_root
+      - const: lcdif-axi
+      - const: lcdif-apb
+      - const: lcdif-pix
+      - const: dsi-pclk
+      - const: dsi-ref
+      - const: csi-aclk
+      - const: csi-pclk
+
+required:
+  - compatible
+  - reg
+  - power-domains
+  - power-domain-names
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx8mn-clock.h>
+    #include <dt-bindings/power/imx8mn-power.h>
+
+    disp_blk_ctl: blk_ctrl@32e28000 {
+      compatible = "fsl,imx8mn-disp-blk-ctrl", "syscon";
+      reg = <0x32e28000 0x100>;
+      power-domains = <&pgc_dispmix>, <&pgc_dispmix>,
+                      <&pgc_dispmix>, <&pgc_mipi>,
+                      <&pgc_mipi>;
+      power-domain-names = "bus", "isi", "lcdif", "mipi-dsi",
+                           "mipi-csi";
+      clocks = <&clk IMX8MN_CLK_DISP_AXI>,
+               <&clk IMX8MN_CLK_DISP_APB>,
+               <&clk IMX8MN_CLK_DISP_AXI_ROOT>,
+               <&clk IMX8MN_CLK_DISP_APB_ROOT>,
+               <&clk IMX8MN_CLK_DISP_AXI_ROOT>,
+               <&clk IMX8MN_CLK_DISP_APB_ROOT>,
+               <&clk IMX8MN_CLK_DISP_PIXEL_ROOT>,
+               <&clk IMX8MN_CLK_DSI_CORE>,
+               <&clk IMX8MN_CLK_DSI_PHY_REF>,
+               <&clk IMX8MN_CLK_CSI1_PHY_REF>,
+               <&clk IMX8MN_CLK_CAMERA_PIXEL_ROOT>;
+       clock-names = "disp_axi", "disp_apb", "disp_axi_root", "disp_apb_root",
+                     "lcdif-axi", "lcdif-apb", "lcdif-pix", "dsi-pclk",
+                     "dsi-ref", "csi-aclk", "csi-pclk";
+       #power-domain-cells = <1>;
+    };
index 0af4821..273f2d9 100644 (file)
@@ -152,8 +152,8 @@ examples:
             interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
             #address-cells = <1>;
             #size-cells = <0>;
-            clocks = <&cmu_peri 32>, <&cmu_peri 31>;
-            clock-names = "hsi2c_pclk", "hsi2c";
+            clocks = <&cmu_peri 31>, <&cmu_peri 32>;
+            clock-names = "hsi2c", "hsi2c_pclk";
             status = "disabled";
         };
     };
index d4e418b..668a9a4 100644 (file)
@@ -31,6 +31,9 @@ properties:
         - amlogic,meson-gxbb-sram
         - arm,juno-sram-ns
         - atmel,sama5d2-securam
+        - nvidia,tegra186-sysram
+        - nvidia,tegra194-sysram
+        - nvidia,tegra234-sysram
         - qcom,rpm-msg-ram
         - rockchip,rk3288-pmu-sram
 
diff --git a/Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.txt b/Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.txt
deleted file mode 100644 (file)
index fc87f6a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-NVIDIA Tegra186 BPMP thermal sensor
-
-In Tegra186, the BPMP (Boot and Power Management Processor) implements an
-interface that is used to read system temperatures, including CPU cluster
-and GPU temperatures. This binding describes the thermal sensor that is
-exposed by BPMP.
-
-The BPMP thermal node must be located directly inside the main BPMP node. See
-../firmware/nvidia,tegra186-bpmp.txt for details of the BPMP binding.
-
-This node represents a thermal sensor. See Documentation/devicetree/bindings/thermal/thermal-sensor.yaml for details of the
-core thermal binding.
-
-Required properties:
-- compatible:
-    Array of strings.
-    One of:
-    - "nvidia,tegra186-bpmp-thermal"
-    - "nvidia,tegra194-bpmp-thermal"
-- #thermal-sensor-cells: Cell for sensor index.
-    Single-cell integer.
-    Must be <1>.
-
-Example:
-
-bpmp {
-       ...
-
-       bpmp_thermal: thermal {
-               compatible = "nvidia,tegra186-bpmp-thermal";
-               #thermal-sensor-cells = <1>;
-       };
-};
diff --git a/Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.yaml b/Documentation/devicetree/bindings/thermal/nvidia,tegra186-bpmp-thermal.yaml
new file mode 100644 (file)
index 0000000..c91fd07
--- /dev/null
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/thermal/nvidia,tegra186-bpmp-thermal.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra186 (and later) BPMP thermal sensor
+
+maintainers:
+  - Thierry Reding <thierry.reding@gmail.com>
+  - Jon Hunter <jonathanh@nvidia.com>
+
+description: |
+  In Tegra186, the BPMP (Boot and Power Management Processor) implements
+  an interface that is used to read system temperatures, including CPU
+  cluster and GPU temperatures. This binding describes the thermal
+  sensor that is exposed by BPMP.
+
+  The BPMP thermal node must be located directly inside the main BPMP
+  node. See ../firmware/nvidia,tegra186-bpmp.yaml for details of the
+  BPMP binding.
+
+  This node represents a thermal sensor. See
+
+    Documentation/devicetree/bindings/thermal/thermal-sensor.yaml
+
+  for details of the core thermal binding.
+
+properties:
+  compatible:
+    enum:
+      - nvidia,tegra186-bpmp-thermal
+      - nvidia,tegra194-bpmp-thermal
+
+  '#thermal-sensor-cells':
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Number of cells needed in the phandle specifier to
+      identify a given sensor. Must be 1 and the single cell specifies
+      the sensor index.
+    const: 1
+
+additionalProperties: false
index 8428415..a39c76b 100644 (file)
@@ -59,6 +59,19 @@ properties:
       - const: fs_src
       - const: hs_src
 
+  interconnects:
+    items:
+      - description: memory read client
+      - description: memory write client
+
+  interconnect-names:
+    items:
+      - const: dma-mem # read
+      - const: write
+
+  iommus:
+    maxItems: 1
+
   power-domains:
     items:
       - description: XUSBB(device) power-domain
index 66d6432..eb8ab0d 100644 (file)
@@ -187,6 +187,8 @@ patternProperties:
     description: Shanghai Broadmobi Communication Technology Co.,Ltd.
   "^brcm,.*":
     description: Broadcom Corporation
+  "^bsh,.*":
+    description: BSH Hausgeraete GmbH
   "^buffalo,.*":
     description: Buffalo, Inc.
   "^bur,.*":
@@ -593,6 +595,8 @@ patternProperties:
     description: JetHome (IP Sokolov P.A.)
   "^jianda,.*":
     description: Jiandangjing Technology Co., Ltd.
+  "^joz,.*":
+    description: JOZ BV
   "^kam,.*":
     description: Kamstrup A/S
   "^karo,.*":
@@ -1318,6 +1322,8 @@ patternProperties:
     description: Wiligear, Ltd.
   "^winbond,.*":
     description: Winbond Electronics corp.
+  "^winlink,.*":
+    description: WinLink Co., Ltd
   "^winstar,.*":
     description: Winstar Display Corp.
   "^wits,.*":
@@ -1350,6 +1356,8 @@ patternProperties:
     description: Shenzhen Xunlong Software CO.,Limited
   "^xylon,.*":
     description: Xylon
+  "^yadro,.*":
+    description: YADRO
   "^yamaha,.*":
     description: Yamaha Corporation
   "^yes-optoelectronics,.*":
diff --git a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
new file mode 100644 (file)
index 0000000..e58c56a
--- /dev/null
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/apple,wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple SoC Watchdog
+
+allOf:
+  - $ref: "watchdog.yaml#"
+
+maintainers:
+  - Sven Peter <sven@svenpeter.dev>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - apple,t8103-wdt
+          - apple,t6000-wdt
+      - const: apple,wdt
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/apple-aic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    wdt: watchdog@50000000 {
+        compatible = "apple,t8103-wdt", "apple,wdt";
+        reg = <0x50000000 0x4000>;
+        clocks = <&clk>;
+        interrupts = <AIC_IRQ 123 IRQ_TYPE_LEVEL_HIGH>;
+    };
+
+...
index ebd992e..ebfe8ef 100644 (file)
@@ -1745,17 +1745,21 @@ B:      https://github.com/AsahiLinux/linux/issues
 C:     irc://irc.oftc.net/asahi-dev
 T:     git https://github.com/AsahiLinux/linux.git
 F:     Documentation/devicetree/bindings/arm/apple.yaml
+F:     Documentation/devicetree/bindings/arm/apple/*
 F:     Documentation/devicetree/bindings/i2c/apple,i2c.yaml
 F:     Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
 F:     Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
 F:     Documentation/devicetree/bindings/pci/apple,pcie.yaml
 F:     Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
+F:     Documentation/devicetree/bindings/power/apple*
+F:     Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
 F:     arch/arm64/boot/dts/apple/
 F:     drivers/i2c/busses/i2c-pasemi-core.c
 F:     drivers/i2c/busses/i2c-pasemi-platform.c
 F:     drivers/irqchip/irq-apple-aic.c
 F:     drivers/mailbox/apple-mailbox.c
 F:     drivers/pinctrl/pinctrl-apple-gpio.c
+F:     drivers/soc/apple/*
 F:     include/dt-bindings/interrupt-controller/apple-aic.h
 F:     include/dt-bindings/pinctrl/apple.h
 F:     include/linux/apple-mailbox.h
index 0de64f2..235ad55 100644 (file)
@@ -61,6 +61,7 @@ dtb-$(CONFIG_SOC_SAM_V7) += \
        at91-sama5d2_icp.dtb \
        at91-sama5d2_ptc_ek.dtb \
        at91-sama5d2_xplained.dtb \
+       at91-sama5d3_ksz9477_evb.dtb \
        at91-sama5d3_xplained.dtb \
        at91-dvk_som60.dtb \
        at91-gatwick.dtb \
@@ -263,12 +264,14 @@ dtb-$(CONFIG_ARCH_IXP4XX) += \
        intel-ixp46x-ixdp465.dtb \
        intel-ixp42x-adi-coyote.dtb \
        intel-ixp42x-ixdpg425.dtb \
+       intel-ixp42x-goramo-multilink.dtb \
        intel-ixp42x-iomega-nas100d.dtb \
        intel-ixp42x-dlink-dsm-g600.dtb \
        intel-ixp42x-gateworks-gw2348.dtb \
        intel-ixp43x-gateworks-gw2358.dtb \
        intel-ixp42x-netgear-wg302v2.dtb \
-       intel-ixp42x-arcom-vulcan.dtb
+       intel-ixp42x-arcom-vulcan.dtb \
+       intel-ixp42x-gateway-7001.dtb
 dtb-$(CONFIG_ARCH_KEYSTONE) += \
        keystone-k2hk-evm.dtb \
        keystone-k2l-evm.dtb \
@@ -483,6 +486,8 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-icore-rqs.dtb \
        imx6dl-lanmcu.dtb \
        imx6dl-mamoj.dtb \
+       imx6dl-mba6a.dtb \
+       imx6dl-mba6b.dtb \
        imx6dl-nit6xlite.dtb \
        imx6dl-nitrogen6x.dtb \
        imx6dl-phytec-mira-rdk-nand.dtb \
@@ -584,6 +589,8 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6q-kp-tpc.dtb \
        imx6q-logicpd.dtb \
        imx6q-marsboard.dtb \
+       imx6q-mba6a.dtb \
+       imx6q-mba6b.dtb \
        imx6q-mccmon6.dtb \
        imx6q-nitrogen6x.dtb \
        imx6q-nitrogen6_max.dtb \
@@ -628,7 +635,9 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6q-wandboard.dtb \
        imx6q-wandboard-revb1.dtb \
        imx6q-wandboard-revd1.dtb \
+       imx6q-yapp4-crux.dtb \
        imx6q-zii-rdu2.dtb \
+       imx6qp-mba6b.dtb \
        imx6qp-nitrogen6_max.dtb \
        imx6qp-nitrogen6_som2.dtb \
        imx6qp-phytec-mira-rdk-nand.dtb \
@@ -641,6 +650,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6qp-tx6qp-8137-mb7.dtb \
        imx6qp-vicutp.dtb \
        imx6qp-wandboard-revd1.dtb \
+       imx6qp-yapp4-crux-plus.dtb \
        imx6qp-zii-rdu2.dtb \
        imx6s-dhcom-drc02.dtb
 dtb-$(CONFIG_SOC_IMX6SL) += \
@@ -688,12 +698,14 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
        imx6ull-colibri-emmc-eval-v3.dtb \
        imx6ull-colibri-eval-v3.dtb \
        imx6ull-colibri-wifi-eval-v3.dtb \
+       imx6ull-jozacp.dtb \
        imx6ull-myir-mys-6ulx-eval.dtb \
        imx6ull-opos6uldev.dtb \
        imx6ull-phytec-segin-ff-rdk-nand.dtb \
        imx6ull-phytec-segin-ff-rdk-emmc.dtb \
        imx6ull-phytec-segin-lc-rdk-nand.dtb \
-       imx6ulz-14x14-evk.dtb
+       imx6ulz-14x14-evk.dtb \
+       imx6ulz-bsh-smm-m2.dtb
 dtb-$(CONFIG_SOC_IMX7D) += \
        imx7d-cl-som-imx7.dtb \
        imx7d-colibri-aster.dtb \
@@ -954,6 +966,7 @@ dtb-$(CONFIG_ARCH_OXNAS) += \
        ox810se-wd-mbwe.dtb \
        ox820-cloudengines-pogoplug-series-3.dtb
 dtb-$(CONFIG_ARCH_QCOM) += \
+       qcom-apq8016-sbc.dtb \
        qcom-apq8026-lg-lenok.dtb \
        qcom-apq8060-dragonboard.dtb \
        qcom-apq8064-cm-qs600.dtb \
@@ -986,7 +999,8 @@ dtb-$(CONFIG_ARCH_QCOM) += \
        qcom-mdm9615-wp8548-mangoh-green.dtb \
        qcom-sdx55-mtp.dtb \
        qcom-sdx55-t55.dtb \
-       qcom-sdx55-telit-fn980-tlb.dtb
+       qcom-sdx55-telit-fn980-tlb.dtb \
+       qcom-sdx65-mtp.dtb
 dtb-$(CONFIG_ARCH_RDA) += \
        rda8810pl-orangepi-2g-iot.dtb \
        rda8810pl-orangepi-i96.dtb
@@ -1140,6 +1154,7 @@ dtb-$(CONFIG_ARCH_STM32) += \
        stm32mp157a-microgea-stm32mp1-microdev2.0.dtb \
        stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dtb \
        stm32mp157a-icore-stm32mp1-ctouch2.dtb \
+       stm32mp157a-icore-stm32mp1-ctouch2-of10.dtb \
        stm32mp157a-icore-stm32mp1-edimm2.2.dtb \
        stm32mp157a-stinger96.dtb \
        stm32mp157c-dhcom-pdk2.dtb \
@@ -1304,6 +1319,7 @@ dtb-$(CONFIG_MACH_SUNIV) += \
        suniv-f1c100s-licheepi-nano.dtb
 dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
        tegra20-acer-a500-picasso.dtb \
+       tegra20-asus-tf101.dtb \
        tegra20-harmony.dtb \
        tegra20-colibri-eval-v3.dtb \
        tegra20-colibri-iris.dtb \
@@ -1320,12 +1336,18 @@ dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += \
        tegra30-asus-nexus7-grouper-PM269.dtb \
        tegra30-asus-nexus7-grouper-E1565.dtb \
        tegra30-asus-nexus7-tilapia-E1565.dtb \
+       tegra30-asus-tf201.dtb \
+       tegra30-asus-tf300t.dtb \
+       tegra30-asus-tf300tg.dtb \
+       tegra30-asus-tf700t.dtb \
        tegra30-beaver.dtb \
        tegra30-cardhu-a02.dtb \
        tegra30-cardhu-a04.dtb \
        tegra30-colibri-eval-v3.dtb \
-       tegra30-ouya.dtb
+       tegra30-ouya.dtb \
+       tegra30-pegatron-chagall.dtb
 dtb-$(CONFIG_ARCH_TEGRA_114_SOC) += \
+       tegra114-asus-tf701t.dtb \
        tegra114-dalmore.dtb \
        tegra114-roth.dtb \
        tegra114-tn7.dtb
@@ -1334,6 +1356,7 @@ dtb-$(CONFIG_ARCH_TEGRA_124_SOC) += \
        tegra124-apalis-v1.2-eval.dtb \
        tegra124-jetson-tk1.dtb \
        tegra124-nyan-big.dtb \
+       tegra124-nyan-big-fhd.dtb \
        tegra124-nyan-blaze.dtb \
        tegra124-venice2.dtb
 dtb-$(CONFIG_ARCH_U8500) += \
@@ -1457,6 +1480,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
        mt2701-evb.dtb \
        mt6580-evbp1.dtb \
        mt6589-aquaris5.dtb \
+       mt6589-fairphone-fp1.dtb \
        mt6592-evb.dtb \
        mt7623a-rfb-emmc.dtb \
        mt7623a-rfb-nand.dtb \
@@ -1482,6 +1506,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
        aspeed-bmc-arm-stardragon4800-rep2.dtb \
        aspeed-bmc-asrock-e3c246d4i.dtb \
        aspeed-bmc-bytedance-g220a.dtb \
+       aspeed-bmc-facebook-bletchley.dtb \
        aspeed-bmc-facebook-cloudripper.dtb \
        aspeed-bmc-facebook-cmm.dtb \
        aspeed-bmc-facebook-elbert.dtb \
@@ -1519,4 +1544,8 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
        aspeed-bmc-quanta-q71l.dtb \
        aspeed-bmc-supermicro-x11spi.dtb \
        aspeed-bmc-inventec-transformers.dtb \
-       aspeed-bmc-tyan-s7106.dtb
+       aspeed-bmc-tyan-s7106.dtb \
+       aspeed-bmc-tyan-s8036.dtb \
+       aspeed-bmc-vegman-n110.dtb \
+       aspeed-bmc-vegman-rx20.dtb \
+       aspeed-bmc-vegman-sx20.dtb
index 0ccdc7c..56ae509 100644 (file)
 &rtc {
        clocks = <&clk_32768_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
        clock-names = "ext-clk", "int-clk";
+       system-power-controller;
 };
 
 &pruss_tm {
index 10494c4..a7a8c61 100644 (file)
        non-removable;
 };
 
-&rtc {
-       system-power-controller;
-};
-
 / {
        memory@80000000 {
                device_type = "memory";
index c6bb325..147c00d 100644 (file)
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ax8975@c {
-                               compatible = "ak,ak8975";
+                               compatible = "asahi-kasei,ak8975";
                                reg = <0x0c>;
                        };
                };
index e5ce89c..5835c0c 100644 (file)
 &pruss_tm {
        status = "okay";
 };
+
+&rtc {
+       system-power-controller;
+};
index 605b2a4..b2846cd 100644 (file)
@@ -84,7 +84,7 @@
                        #address-cells = <1>;
                        #size-cells = <0>;
                        ax8975@c {
-                               compatible = "ak,ak8975";
+                               compatible = "asahi-kasei,ak8975";
                                reg = <0x0c>;
                        };
                };
index 5ce8e68..3e33547 100644 (file)
        tsc {
                ti,wires = <4>;
                ti,x-plate-resistance = <200>;
-               ti,coordiante-readouts = <5>;
+               ti,coordinate-readouts = <5>;
                ti,wire-config = <0x00 0x11 0x22 0x33>;
        };
 
index c2e4896..4416ddb 100644 (file)
        };
 };
 
+&magadc {
+       status = "okay";
+
+       adc {
+               ti,adc-channels = <0 1 2 3 4 5 6 7>;
+       };
+};
+
 &ecap0 {
        status = "okay";
        pinctrl-names = "default";
index ba58e6b..8f2268c 100644 (file)
                };
 
                target-module@4c000 {                   /* 0x4834c000, ap 114 72.0 */
-                       compatible = "ti,sysc";
-                       status = "disabled";
+                       compatible = "ti,sysc-omap4", "ti,sysc";
+                       reg = <0x4c000 0x4>,
+                             <0x4c010 0x4>;
+                       reg-names = "rev", "sysc";
+                       ti,sysc-sidle = <SYSC_IDLE_FORCE>,
+                                       <SYSC_IDLE_NO>,
+                                       <SYSC_IDLE_SMART>;
+                       clocks = <&l3s_clkctrl AM4_L3S_ADC1_CLKCTRL 0>;
+                       clock-names = "fck";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x0 0x4c000 0x2000>;
+
+                       magadc: magadc@0 {
+                               compatible = "ti,am4372-magadc";
+                               reg = <0x0 0x2000>;
+                               interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&adc_mag_fck>;
+                               clock-names = "fck";
+                               dmas = <&edma 54 0>, <&edma 55 0>;
+                               dma-names = "fifo0", "fifo1";
+                               status = "disabled";
+
+                               mag {
+                                       compatible = "ti,am4372-mag";
+                               };
+
+                               adc {
+                                       #io-channel-cells = <1>;
+                                       compatible ="ti,am4372-adc";
+                               };
+                       };
                };
 
                target-module@80000 {                   /* 0x48380000, ap 123 42.0 */
index 314fc59..66e892f 100644 (file)
                reg = <0x422c>;
        };
 
+       adc_mag_fck: adc_mag_fck@424c {
+               #clock-cells = <0>;
+               compatible = "ti,mux-clock";
+               clocks = <&sys_clkin_ck>, <&dpll_per_m2_ck>;
+               reg = <0x424c>;
+       };
+
        l3_gclk: l3_gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
index 9b1a24c..df3c8d1 100644 (file)
                        };
 
                        uart0: serial@12000 {
-                               compatible = "marvell,armada-38x-uart";
+                               compatible = "marvell,armada-38x-uart", "ns16550a";
                                reg = <0x12000 0x100>;
                                reg-shift = <2>;
                                interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
                        uart1: serial@12100 {
-                               compatible = "marvell,armada-38x-uart";
+                               compatible = "marvell,armada-38x-uart", "ns16550a";
                                reg = <0x12100 0x100>;
                                reg-shift = <2>;
                                interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
index 3515d55..4c3c3f1 100644 (file)
@@ -7,6 +7,50 @@
        model = "Ampere Mt. Jade BMC";
        compatible = "ampere,mtjade-bmc", "aspeed,ast2500";
 
+       aliases {
+               /*
+                *  i2c bus 50-57 assigned to NVMe slot 0-7
+                */
+               i2c50 = &nvmeslot_0;
+               i2c51 = &nvmeslot_1;
+               i2c52 = &nvmeslot_2;
+               i2c53 = &nvmeslot_3;
+               i2c54 = &nvmeslot_4;
+               i2c55 = &nvmeslot_5;
+               i2c56 = &nvmeslot_6;
+               i2c57 = &nvmeslot_7;
+
+               /*
+                *  i2c bus 60-67 assigned to NVMe slot 8-15
+                */
+               i2c60 = &nvmeslot_8;
+               i2c61 = &nvmeslot_9;
+               i2c62 = &nvmeslot_10;
+               i2c63 = &nvmeslot_11;
+               i2c64 = &nvmeslot_12;
+               i2c65 = &nvmeslot_13;
+               i2c66 = &nvmeslot_14;
+               i2c67 = &nvmeslot_15;
+
+               /*
+                *  i2c bus 70-77 assigned to NVMe slot 16-23
+                */
+               i2c70 = &nvmeslot_16;
+               i2c71 = &nvmeslot_17;
+               i2c72 = &nvmeslot_18;
+               i2c73 = &nvmeslot_19;
+               i2c74 = &nvmeslot_20;
+               i2c75 = &nvmeslot_21;
+               i2c76 = &nvmeslot_22;
+               i2c77 = &nvmeslot_23;
+
+               /*
+                *  i2c bus 80-81 assigned to NVMe M2 slot 0-1
+                */
+               i2c80 = &nvme_m2_0;
+               i2c81 = &nvme_m2_1;
+       };
+
        chosen {
                stdout-path = &uart5;
                bootargs = "console=ttyS4,115200 earlycon";
                m25p,fast-read;
                label = "pnor";
                /* spi-max-frequency = <100000000>; */
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       uefi@400000 {
+                               reg = <0x400000 0x1C00000>;
+                               label = "pnor-uefi";
+                       };
+               };
        };
 };
 
 
 &i2c5 {
        status = "okay";
+       i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x70>;
+               i2c-mux-idle-disconnect;
+
+               nvmeslot_0_7: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x3>;
+               };
+       };
+
+       i2c-mux@71 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x71>;
+               i2c-mux-idle-disconnect;
+
+               nvmeslot_8_15: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x4>;
+               };
+
+               nvmeslot_16_23: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x3>;
+               };
+
+       };
+
+       i2c-mux@72 {
+               compatible = "nxp,pca9545";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x72>;
+               i2c-mux-idle-disconnect;
+
+               nvme_m2_0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0>;
+               };
+
+               nvme_m2_1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x1>;
+               };
+       };
+};
+
+&nvmeslot_0_7 {
+       status = "okay";
+
+       i2c-mux@75 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x75>;
+               i2c-mux-idle-disconnect;
+
+               nvmeslot_0: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0>;
+               };
+               nvmeslot_1: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x1>;
+               };
+               nvmeslot_2: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x2>;
+               };
+               nvmeslot_3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x3>;
+               };
+               nvmeslot_4: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x4>;
+               };
+               nvmeslot_5: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x5>;
+               };
+               nvmeslot_6: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x6>;
+               };
+               nvmeslot_7: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x7>;
+               };
+
+       };
+};
+
+&nvmeslot_8_15 {
+       status = "okay";
+
+       i2c-mux@75 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x75>;
+               i2c-mux-idle-disconnect;
+
+               nvmeslot_8: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0>;
+               };
+               nvmeslot_9: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x1>;
+               };
+               nvmeslot_10: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x2>;
+               };
+               nvmeslot_11: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x3>;
+               };
+               nvmeslot_12: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x4>;
+               };
+               nvmeslot_13: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x5>;
+               };
+               nvmeslot_14: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x6>;
+               };
+               nvmeslot_15: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x7>;
+               };
+       };
+};
+
+&nvmeslot_16_23 {
+       status = "okay";
+
+       i2c-mux@75 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x75>;
+               i2c-mux-idle-disconnect;
+
+               nvmeslot_16: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0>;
+               };
+               nvmeslot_17: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x1>;
+               };
+               nvmeslot_18: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x2>;
+               };
+               nvmeslot_19: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x3>;
+               };
+               nvmeslot_20: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x4>;
+               };
+               nvmeslot_21: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x5>;
+               };
+               nvmeslot_22: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x6>;
+               };
+               nvmeslot_23: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x7>;
+               };
+       };
 };
 
 &i2c6 {
index 01dace8..0d1fb5c 100644 (file)
                spi-max-frequency = <50000000>;
 #include "openbmc-flash-layout-64.dtsi"
        };
+       flash@1 {
+               status = "okay";
+               label = "alt-bmc";
+               m25p,fast-read;
+               spi-max-frequency = <50000000>;
+#include "openbmc-flash-layout-64-alt.dtsi"
+       };
 };
 
 &spi1 {
        status = "okay";
 };
 
+&wdt2 {
+       status = "okay";
+       aspeed,alt-boot;
+};
+
 &gpio {
        status = "okay";
        gpio-line-names =
diff --git a/arch/arm/boot/dts/aspeed-bmc-facebook-bletchley.dts b/arch/arm/boot/dts/aspeed-bmc-facebook-bletchley.dts
new file mode 100644 (file)
index 0000000..f973ea8
--- /dev/null
@@ -0,0 +1,756 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (c) 2021 Facebook Inc.
+/dts-v1/;
+
+#include "aspeed-g6.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/usb/pd.h>
+
+/ {
+       model = "Facebook Bletchley BMC";
+       compatible = "facebook,bletchley-bmc", "aspeed,ast2600";
+
+       aliases {
+               serial4 = &uart5;
+       };
+
+       chosen {
+               bootargs = "console=ttyS4,57600n8";
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
+                       <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
+                       <&adc1 0>, <&adc1 1>, <&adc1 2>, <&adc1 3>,
+                       <&adc1 4>, <&adc1 5>, <&adc1 6>, <&adc1 7>;
+       };
+
+       spi_gpio: spi-gpio {
+               compatible = "spi-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               gpio-sck = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
+               gpio-mosi = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
+               gpio-miso = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
+               num-chipselects = <1>;
+               cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
+
+               tpmdev@0 {
+                       compatible = "tcg,tpm_tis-spi";
+                       spi-max-frequency = <33000000>;
+                       reg = <0>;
+               };
+       };
+
+       switchphy: ethernet-phy@0 {
+               // Fixed link
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               sys_log_id {
+                       retain-state-shutdown;
+                       default-state = "keep";
+                       gpios = <&front_leds 0 GPIO_ACTIVE_HIGH>;
+               };
+               fan0_blue {
+                       retain-state-shutdown;
+                       default-state = "on";
+                       gpios = <&fan_ioexp 8 GPIO_ACTIVE_HIGH>;
+               };
+               fan1_blue {
+                       retain-state-shutdown;
+                       default-state = "on";
+                       gpios = <&fan_ioexp 9 GPIO_ACTIVE_HIGH>;
+               };
+               fan2_blue {
+                       retain-state-shutdown;
+                       default-state = "on";
+                       gpios = <&fan_ioexp 10 GPIO_ACTIVE_HIGH>;
+               };
+               fan3_blue {
+                       retain-state-shutdown;
+                       default-state = "on";
+                       gpios = <&fan_ioexp 11 GPIO_ACTIVE_HIGH>;
+               };
+               fan0_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&fan_ioexp 12 GPIO_ACTIVE_HIGH>;
+               };
+               fan1_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&fan_ioexp 13 GPIO_ACTIVE_HIGH>;
+               };
+               fan2_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&fan_ioexp 14 GPIO_ACTIVE_HIGH>;
+               };
+               fan3_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&fan_ioexp 15 GPIO_ACTIVE_HIGH>;
+               };
+               sled0_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled0_leds 0 GPIO_ACTIVE_LOW>;
+               };
+               sled0_blue {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled0_leds 1 GPIO_ACTIVE_LOW>;
+               };
+               sled1_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled1_leds 0 GPIO_ACTIVE_LOW>;
+               };
+               sled1_blue {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled1_leds 1 GPIO_ACTIVE_LOW>;
+               };
+               sled2_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled2_leds 0 GPIO_ACTIVE_LOW>;
+               };
+               sled2_blue {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled2_leds 1 GPIO_ACTIVE_LOW>;
+               };
+               sled3_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled3_leds 0 GPIO_ACTIVE_LOW>;
+               };
+               sled3_blue {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled3_leds 1 GPIO_ACTIVE_LOW>;
+               };
+               sled4_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled4_leds 0 GPIO_ACTIVE_LOW>;
+               };
+               sled4_blue {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled4_leds 1 GPIO_ACTIVE_LOW>;
+               };
+               sled5_amber {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled5_leds 0 GPIO_ACTIVE_LOW>;
+               };
+               sled5_blue {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&sled5_leds 1 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&mac2 {
+       status = "okay";
+       phy-mode = "rgmii";
+       phy-handle = <&switchphy>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rgmii3_default>;
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
+
+&rtc {
+       status = "okay";
+};
+
+&fmc {
+       status = "okay";
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "bmc";
+               spi-max-frequency = <50000000>;
+#include "openbmc-flash-layout-128.dtsi"
+       };
+};
+
+&spi2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi2_default>;
+
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "pnor";
+               spi-max-frequency = <100000000>;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+       /* TODO: Add ADC INA230 */
+
+       mp5023@40 {
+               compatible = "mps,mp5023";
+               reg = <0x40>;
+       };
+
+       tmp421@4f {
+               compatible = "ti,tmp421";
+               reg = <0x4f>;
+       };
+
+       sled0_ioexp: pca9539@76 {
+               compatible = "nxp,pca9539";
+               reg = <0x76>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "SLED0_MS_DETECT1","SLED0_VBUS_BMC_EN","SLED0_INA230_ALERT","SLED0_P12V_STBY_ALERT",
+               "SLED0_SSD_ALERT","SLED0_MS_DETECT0","SLED0_RST_CCG5","SLED0_FUSB302_INT",
+               "SLED0_MD_STBY_RESET","SLED0_MD_IOEXP_EN_FAULT","SLED0_MD_DIR","SLED0_MD_DECAY",
+               "SLED0_MD_MODE1","SLED0_MD_MODE2","SLED0_MD_MODE3","power-host0";
+       };
+
+       sled0_leds: pca9552@67 {
+               compatible = "nxp,pca9552";
+               reg = <0x67>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "led-sled0-amber","led-sled0-blue","SLED0_RST_IOEXP","",
+               "","","","",
+               "","","","",
+               "","","","";
+       };
+
+       sled0_fusb302: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       try-power-role = "sink";
+                       data-role = "dual";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                       PDO_VAR(3000, 12000, 3000)
+                                       PDO_PPS_APDO(3000, 11000, 3000)>;
+                       op-sink-microwatt = <10000000>;
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+       /* TODO: Add ADC INA230 */
+
+       mp5023@40 {
+               compatible = "mps,mp5023";
+               reg = <0x40>;
+       };
+
+       tmp421@4f {
+               compatible = "ti,tmp421";
+               reg = <0x4f>;
+       };
+
+       sled1_ioexp: pca9539@76 {
+               compatible = "nxp,pca9539";
+               reg = <0x76>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "SLED1_MS_DETECT1","SLED1_VBUS_BMC_EN","SLED1_INA230_ALERT","SLED1_P12V_STBY_ALERT",
+               "SLED1_SSD_ALERT","SLED1_MS_DETECT0","SLED1_RST_CCG5","SLED1_FUSB302_INT",
+               "SLED1_MD_STBY_RESET","SLED1_MD_IOEXP_EN_FAULT","SLED1_MD_DIR","SLED1_MD_DECAY",
+               "SLED1_MD_MODE1","SLED1_MD_MODE2","SLED1_MD_MODE3","power-host1";
+       };
+
+       sled1_leds: pca9552@67 {
+               compatible = "nxp,pca9552";
+               reg = <0x67>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "led-sled1-amber","led-sled1-blue","SLED1_RST_IOEXP","",
+               "","","","",
+               "","","","",
+               "","","","";
+       };
+
+       sled1_fusb302: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       try-power-role = "sink";
+                       data-role = "dual";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                       PDO_VAR(3000, 12000, 3000)
+                                       PDO_PPS_APDO(3000, 11000, 3000)>;
+                       op-sink-microwatt = <10000000>;
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+       /* TODO: Add ADC INA230 */
+
+       mp5023@40 {
+               compatible = "mps,mp5023";
+               reg = <0x40>;
+       };
+
+       tmp421@4f {
+               compatible = "ti,tmp421";
+               reg = <0x4f>;
+       };
+
+       sled2_ioexp: pca9539@76 {
+               compatible = "nxp,pca9539";
+               reg = <0x76>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "SLED2_MS_DETECT1","SLED2_VBUS_BMC_EN","SLED2_INA230_ALERT","SLED2_P12V_STBY_ALERT",
+               "SLED2_SSD_ALERT","SLED2_MS_DETECT0","SLED2_RST_CCG5","SLED2_FUSB302_INT",
+               "SLED2_MD_STBY_RESET","SLED2_MD_IOEXP_EN_FAULT","SLED2_MD_DIR","SLED2_MD_DECAY",
+               "SLED2_MD_MODE1","SLED2_MD_MODE2","SLED2_MD_MODE3","power-host2";
+       };
+
+       sled2_leds: pca9552@67 {
+               compatible = "nxp,pca9552";
+               reg = <0x67>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "led-sled2-amber","led-sled2-blue","SLED2_RST_IOEXP","",
+               "","","","",
+               "","","","",
+               "","","","";
+       };
+
+       sled2_fusb302: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       try-power-role = "sink";
+                       data-role = "dual";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                       PDO_VAR(3000, 12000, 3000)
+                                       PDO_PPS_APDO(3000, 11000, 3000)>;
+                       op-sink-microwatt = <10000000>;
+               };
+       };
+};
+
+&i2c3 {
+       status = "okay";
+       /* TODO: Add ADC INA230 */
+
+       mp5023@40 {
+               compatible = "mps,mp5023";
+               reg = <0x40>;
+       };
+
+       tmp421@4f {
+               compatible = "ti,tmp421";
+               reg = <0x4f>;
+       };
+
+       sled3_ioexp: pca9539@76 {
+               compatible = "nxp,pca9539";
+               reg = <0x76>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "SLED3_MS_DETECT1","SLED3_VBUS_BMC_EN","SLED3_INA230_ALERT","SLED3_P12V_STBY_ALERT",
+               "SLED3_SSD_ALERT","SLED3_MS_DETECT0","SLED3_RST_CCG5","SLED3_FUSB302_INT",
+               "SLED3_MD_STBY_RESET","SLED3_MD_IOEXP_EN_FAULT","SLED3_MD_DIR","SLED3_MD_DECAY",
+               "SLED3_MD_MODE1","SLED3_MD_MODE2","SLED3_MD_MODE3","power-host3";
+       };
+
+       sled3_leds: pca9552@67 {
+               compatible = "nxp,pca9552";
+               reg = <0x67>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "led-sled3-amber","led-sled3-blue","SLED3_RST_IOEXP","",
+               "","","","",
+               "","","","",
+               "","","","";
+       };
+
+       sled3_fusb302: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       try-power-role = "sink";
+                       data-role = "dual";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                       PDO_VAR(3000, 12000, 3000)
+                                       PDO_PPS_APDO(3000, 11000, 3000)>;
+                       op-sink-microwatt = <10000000>;
+               };
+       };
+};
+
+&i2c4 {
+       status = "okay";
+       /* TODO: Add ADC INA230 */
+
+       mp5023@40 {
+               compatible = "mps,mp5023";
+               reg = <0x40>;
+       };
+
+       tmp421@4f {
+               compatible = "ti,tmp421";
+               reg = <0x4f>;
+       };
+
+       sled4_ioexp: pca9539@76 {
+               compatible = "nxp,pca9539";
+               reg = <0x76>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "SLED4_MS_DETECT1","SLED4_VBUS_BMC_EN","SLED4_INA230_ALERT","SLED4_P12V_STBY_ALERT",
+               "SLED4_SSD_ALERT","SLED4_MS_DETECT0","SLED4_RST_CCG5","SLED4_FUSB302_INT",
+               "SLED4_MD_STBY_RESET","SLED4_MD_IOEXP_EN_FAULT","SLED4_MD_DIR","SLED4_MD_DECAY",
+               "SLED4_MD_MODE1","SLED4_MD_MODE2","SLED4_MD_MODE3","power-host4";
+       };
+
+       sled4_leds: pca9552@67 {
+               compatible = "nxp,pca9552";
+               reg = <0x67>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "led-sled4-amber","led-sled4-blue","SLED4_RST_IOEXP","",
+               "","","","",
+               "","","","",
+               "","","","";
+       };
+
+       sled4_fusb302: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       try-power-role = "sink";
+                       data-role = "dual";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                       PDO_VAR(3000, 12000, 3000)
+                                       PDO_PPS_APDO(3000, 11000, 3000)>;
+                       op-sink-microwatt = <10000000>;
+               };
+       };
+};
+
+&i2c5 {
+       status = "okay";
+       /* TODO: Add ADC INA230 */
+
+       mp5023@40 {
+               compatible = "mps,mp5023";
+               reg = <0x40>;
+       };
+
+       tmp421@4f {
+               compatible = "ti,tmp421";
+               reg = <0x4f>;
+       };
+
+       sled5_ioexp: pca9539@76 {
+               compatible = "nxp,pca9539";
+               reg = <0x76>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "SLED5_MS_DETECT1","SLED5_VBUS_BMC_EN","SLED5_INA230_ALERT","SLED5_P12V_STBY_ALERT",
+               "SLED5_SSD_ALERT","SLED5_MS_DETECT0","SLED5_RST_CCG5","SLED5_FUSB302_INT",
+               "SLED5_MD_STBY_RESET","SLED5_MD_IOEXP_EN_FAULT","SLED5_MD_DIR","SLED5_MD_DECAY",
+               "SLED5_MD_MODE1","SLED5_MD_MODE2","SLED5_MD_MODE3","power-host5";
+       };
+
+       sled5_leds: pca9552@67 {
+               compatible = "nxp,pca9552";
+               reg = <0x67>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "led-sled5-amber","led-sled5-blue","SLED5_RST_IOEXP","",
+               "","","","",
+               "","","","",
+               "","","","";
+       };
+
+       sled5_fusb302: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       try-power-role = "sink";
+                       data-role = "dual";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                       PDO_VAR(3000, 12000, 3000)
+                                       PDO_PPS_APDO(3000, 11000, 3000)>;
+                       op-sink-microwatt = <10000000>;
+               };
+       };
+};
+
+&i2c6 {
+       status = "okay";
+
+       eeprom@56 {
+               compatible = "atmel,24c64";
+               reg = <0x56>;
+       };
+
+       rtc@51 {
+               compatible = "nxp,pcf85263";
+               reg = <0x51>;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       eeprom@54 {
+               compatible = "atmel,24c64";
+               reg = <0x54>;
+       };
+};
+
+&i2c9 {
+       status = "okay";
+
+       tmp421@4f {
+               compatible = "ti,tmp421";
+               reg = <0x4f>;
+       };
+};
+
+&i2c10 {
+       status = "okay";
+
+       tmp421@4f {
+               compatible = "ti,tmp421";
+               reg = <0x4f>;
+       };
+
+       hdc1080@40 {
+               compatible = "ti,hdc1080";
+               reg = <0x40>;
+       };
+
+       front_leds: pca9552@67 {
+               compatible = "nxp,pca9552";
+               reg = <0x67>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "led-fault-identify","power-p5v-stby-good",
+               "power-p1v0-dvdd-good","power-p1v0-avdd-good",
+               "","","","",
+               "","","","",
+               "","","","";
+       };
+};
+
+&i2c12 {
+       status = "okay";
+
+       adm1278@11 {
+               compatible = "adi,adm1278";
+               reg = <0x11>;
+       };
+
+       tmp421@4c {
+               compatible = "ti,tmp421";
+               reg = <0x4c>;
+       };
+
+       tmp421@4d {
+               compatible = "ti,tmp421";
+               reg = <0x4d>;
+       };
+
+       fan_ioexp: pca9552@67 {
+               compatible = "nxp,pca9552";
+               reg = <0x67>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio-line-names =
+               "presence-fan0","presence-fan1",
+               "presence-fan2","presence-fan3",
+               "power-fan0-good","power-fan1-good",
+               "power-fan2-good","power-fan3-good",
+               "","","","",
+               "","","","";
+       };
+};
+
+&i2c13 {
+       multi-master;
+       aspeed,hw-timeout-ms = <1000>;
+       status = "okay";
+};
+
+&gpio0 {
+       gpio-line-names =
+       /*A0-A7*/       "","","","","","","","",
+       /*B0-B7*/       "","","SEL_SPI2_MUX","SPI2_MUX1",
+                       "SPI2_MUX2","SPI2_MUX3","","",
+       /*C0-C7*/       "","","","","","","","",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "","","","","","","","",
+       /*F0-F7*/       "","","","","","","","",
+       /*G0-G7*/       "","SWITCH_FRU_MUX","","","","","","",
+       /*H0-H7*/       "presence-riser1","presence-riser2",
+                       "presence-sled0","presence-sled1",
+                       "presence-sled2","presence-sled3",
+                       "presence-sled4","presence-sled5",
+       /*I0-I7*/       "REV_ID0","","REV_ID1","REV_ID2",
+                       "","","","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "ALERT_SLED0","ALERT_SLED1",
+                       "ALERT_SLED2","ALERT_SLED3",
+                       "ALERT_SLED4","ALERT_SLED5",
+                       "P12V_AUX_ALERT1","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","",
+                       "","BOARD_ID0","BOARD_ID1","BOARD_ID2",
+       /*P0-P7*/       "","","","","","","","",
+       /*Q0-Q7*/       "","","","","","","","",
+       /*R0-R7*/       "","","","","","","","",
+       /*S0-S7*/       "","","","BAT_DETECT",
+                       "BMC_BT_WP0","BMC_BT_WP1","","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","RST_BMC_MVL","","",
+                       "USB2_SEL0_A","USB2_SEL1_A",
+                       "USB2_SEL0_B","USB2_SEL1_B",
+       /*W0-W7*/       "RST_FRONT_IOEXP","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "","","BSM_FLASH_LATCH","","","","","",
+       /*Z0-Z7*/       "","","","","","","","";
+};
+
+&adc0 {
+       vref = <1800>;
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
+               &pinctrl_adc2_default &pinctrl_adc3_default
+               &pinctrl_adc4_default &pinctrl_adc5_default
+               &pinctrl_adc6_default &pinctrl_adc7_default>;
+};
+
+&adc1 {
+       vref = <2500>;
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default
+               &pinctrl_adc10_default &pinctrl_adc11_default
+               &pinctrl_adc12_default &pinctrl_adc13_default
+               &pinctrl_adc14_default &pinctrl_adc15_default>;
+};
index f42e2d7..22c06ff 100644 (file)
        /*L0-L7*/       "","","","","","","","",
        /*M0-M7*/       "","","","","","","","",
        /*N0-N7*/       "","","","","","","","",
-       /*O0-O7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","usb-power","","","","",
        /*P0-P7*/       "","","","","led-pcieslot-power","","","",
        /*Q0-Q7*/       "","","regulator-standby-faulted","","","","","",
        /*R0-R7*/       "bmc-tpm-reset","power-chassis-control","power-chassis-good","","","I2C_FLASH_MICRO_N","","",
        /*X0-X7*/       "","","","","","","","",
        /*Y0-Y7*/       "","","","","","","","",
        /*Z0-Z7*/   "","","","","","","","";
+
+       usb_power {
+               gpio-hog;
+               gpios = <ASPEED_GPIO(O, 3) GPIO_ACTIVE_LOW>;
+               output-high;
+       };
 };
 
 &i2c0 {
 
 &i2c12 {
        status = "okay";
+
+       tpm@2e {
+               compatible = "nuvoton,npct75x", "tcg,tpm-tis-i2c";
+               reg = <0x2e>;
+       };
 };
 
 &i2c13 {
        };
 };
 
+&ehci0 {
+       status = "okay";
+};
+
 &ehci1 {
        status = "okay";
 };
index 866f32c..c479742 100644 (file)
                output-high;
                line-name = "I2C3_MUX_OE_N";
        };
+
+       usb_power {
+               gpio-hog;
+               gpios = <ASPEED_GPIO(O, 3) GPIO_ACTIVE_LOW>;
+               output-high;
+       };
 };
 
 &emmc_controller {
 &i2c12 {
        status = "okay";
 
+       tpm@2e {
+               compatible = "nuvoton,npct75x";
+               reg = <0x2e>;
+       };
+
        eeprom@50 {
                compatible = "atmel,24c64";
                reg = <0x50>;
index 68f332e..aff27c1 100644 (file)
@@ -3,6 +3,7 @@
 
 #include "aspeed-g5.dtsi"
 #include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 
 / {
        model = "Tyan S7106 BMC";
        status = "okay";
 };
 
+&uart_routing {
+       status = "okay";
+};
+
 &vuart {
        status = "okay";
+
+       /* We enable the VUART here, but leave it in a state that does
+        * not interfere with the SuperIO. The goal is to have both the
+        * VUART and the SuperIO available and decide at runtime whether
+        * the VUART should actually be used. For that reason, configure
+        * an "invalid" IO address and an IRQ that is not used by the
+        * BMC.
+        */
+
+       aspeed,lpc-io-reg = <0xffff>;
+       aspeed,lpc-interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
 };
 
 &lpc_ctrl {
        nct7802@28 {
                compatible = "nuvoton,nct7802";
                reg = <0x28>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@0 { /* LTD */
+                       reg = <0>;
+               };
+
+               channel@1 { /* RTD1 */
+                       reg = <1>;
+                       sensor-type = "temperature";
+                       temperature-mode = "thermistor";
+               };
+
+               channel@2 { /* RTD2 */
+                       reg = <2>;
+                       sensor-type = "temperature";
+                       temperature-mode = "thermistor";
+               };
+
+               channel@3 { /* RTD3 */
+                       reg = <3>;
+                       sensor-type = "temperature";
+               };
        };
 
        /* Also connected to:
diff --git a/arch/arm/boot/dts/aspeed-bmc-tyan-s8036.dts b/arch/arm/boot/dts/aspeed-bmc-tyan-s8036.dts
new file mode 100644 (file)
index 0000000..708ee78
--- /dev/null
@@ -0,0 +1,470 @@
+// SPDX-License-Identifier: GPL-2.0+
+/dts-v1/;
+
+#include "aspeed-g5.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       model = "Tyan S8036 BMC";
+       compatible = "tyan,s8036-bmc", "aspeed,ast2500";
+
+       chosen {
+               stdout-path = &uart5;
+               bootargs = "console=ttyS4,115200 earlycon";
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               p2a_memory: region@987f0000 {
+                       no-map;
+                       reg = <0x987f0000 0x00010000>; /* 64KB */
+               };
+
+               vga_memory: framebuffer@9f000000 {
+                       no-map;
+                       reg = <0x9f000000 0x01000000>; /* 16M */
+               };
+
+               gfx_memory: framebuffer {
+                       size = <0x01000000>; /* 16M */
+                       alignment = <0x01000000>;
+                       compatible = "shared-dma-pool";
+                       reusable;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               identify {
+                       gpios = <&gpio ASPEED_GPIO(A, 2) GPIO_ACTIVE_LOW>;
+               };
+
+               heartbeat {
+                       gpios = <&gpio ASPEED_GPIO(E, 7) GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
+                       <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
+                       <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
+                       <&adc 12>, <&adc 13>, <&adc 14>;
+       };
+
+       iio-hwmon-battery {
+               compatible = "iio-hwmon";
+               io-channels = <&adc 15>;
+       };
+};
+
+&fmc {
+       status = "okay";
+       flash@0 {
+               label = "bmc";
+               status = "okay";
+               m25p,fast-read;
+#include "openbmc-flash-layout.dtsi"
+       };
+};
+
+&spi1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi1_default>;
+
+       flash@0 {
+               status = "okay";
+               label = "pnor";
+               m25p,fast-read;
+       };
+};
+
+&uart1 {
+       /* Rear RS-232 connector */
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_txd1_default
+                       &pinctrl_rxd1_default>;
+};
+
+&uart2 {
+       /* RS-232 connector on header */
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_txd2_default
+                       &pinctrl_rxd2_default>;
+};
+
+&uart3 {
+       /* Alternative to vuart to internally connect (route) to uart1
+        * when vuart cannot be used due to BIOS limitations.
+        */
+       status = "okay";
+};
+
+&uart4 {
+       /* Alternative to vuart to internally connect (route) to the
+        * external port usually used by uart1 when vuart cannot be
+        * used due to BIOS limitations.
+        */
+       status = "okay";
+};
+
+&uart5 {
+       /* BMC "debug" (console) UART; connected to RS-232 connector
+        * on header; selectable via jumpers as alternative to uart2
+        */
+       status = "okay";
+};
+
+&uart_routing {
+       status = "okay";
+};
+
+&vuart {
+       status = "okay";
+
+       /* We enable the VUART here, but leave it in a state that does
+        * not interfere with the SuperIO. The goal is to have both the
+        * VUART and the SuperIO available and decide at runtime whether
+        * the VUART should actually be used. For that reason, configure
+        * an "invalid" IO address and an IRQ that is not used by the
+        * BMC.
+        */
+       aspeed,lpc-io-reg = <0xffff>;
+       aspeed,lpc-interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&lpc_ctrl {
+       status = "okay";
+};
+
+&p2a {
+       status = "okay";
+       memory-region = <&p2a_memory>;
+};
+
+&lpc_snoop {
+       status = "okay";
+       snoop-ports = <0x80>;
+};
+
+&adc {
+       status = "okay";
+};
+
+&vhub {
+       status = "okay";
+};
+
+&pwm_tacho {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm0_default
+                       &pinctrl_pwm1_default
+                       &pinctrl_pwm3_default
+                       &pinctrl_pwm4_default>;
+
+       /* CPU fan */
+       fan@0 {
+               reg = <0x00>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x00>;
+       };
+
+       /* PWM group for chassis fans #1, #2, #3 and #4 */
+       fan@2 {
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x02>;
+       };
+
+       fan@3 {
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x03>;
+       };
+
+       fan@4 {
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x04>;
+       };
+
+       fan@5 {
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x05>;
+       };
+
+       /* PWM group for chassis fans #5 and #6  */
+       fan@6 {
+               reg = <0x04>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x06>;
+       };
+
+       fan@7 {
+               reg = <0x04>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x07>;
+       };
+};
+
+&i2c0 {
+       /* Directly connected to Sideband-Temperature Sensor Interface (APML) */
+       status = "okay";
+};
+
+&i2c1 {
+       /* Directly connected to IPMB HDR. */
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+
+       /* BMC EEPROM, incl. mainboard FRU */
+       eeprom@50 {
+               compatible = "atmel,24c256";
+               reg = <0x50>;
+       };
+       /* Also connected to:
+        * - BCM5720
+        * - FPGA
+        * - FAN HDR
+        * - FPIO HDR
+        */
+};
+
+&i2c3 {
+       status = "okay";
+
+       /* PSU1 FRU @ 0xA0 */
+       eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+       };
+
+       /* PSU2 FRU @ 0xA2 */
+       eeprom@51 {
+               compatible = "atmel,24c02";
+               reg = <0x51>;
+       };
+
+       /* PSU1 @ 0xB0 */
+       power-supply@58 {
+               compatible = "pmbus";
+               reg = <0x58>;
+       };
+
+       /* PSU2 @ 0xB2 */
+       power-supply@59 {
+               compatible = "pmbus";
+               reg = <0x59>;
+       };
+
+};
+
+&i2c4 {
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+       /* Hardware monitor with temperature sensors */
+       nct7802@28 {
+               compatible = "nuvoton,nct7802";
+               reg = <0x28>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@0 { /* LTD */
+                       reg = <0>;
+                       status = "okay";
+               };
+
+               channel@1 { /* RTD1 */
+                       reg = <1>;
+                       status = "okay";
+                       sensor-type = "temperature";
+                       temperature-mode = "thermistor";
+               };
+
+               channel@2 { /* RTD2 */
+                       reg = <2>;
+                       status = "okay";
+                       sensor-type = "temperature";
+                       temperature-mode = "thermistor";
+               };
+
+               channel@3 { /* RTD3 */
+                       reg = <3>;
+                       status = "okay";
+                       sensor-type = "temperature";
+               };
+       };
+
+       /* Also connected to:
+        * - PCA9544
+        * - CLK BUFF
+        * - OCP FRU
+        */
+};
+
+&i2c6 {
+       status = "okay";
+       /* Connected to:
+        * - PCA9548 @0xE0
+        * - PCA9548 @0xE2
+        * - PCA9544 @0xE4
+        */
+};
+
+&i2c7 {
+       status = "okay";
+
+       /* Connected to:
+        * - PCH SMBUS #4
+        */
+};
+
+&i2c8 {
+       status = "okay";
+
+       /* Not connected */
+};
+
+&mac0 {
+       status = "okay";
+       use-ncsi;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii1_default>;
+};
+
+&mac1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
+};
+
+&ibt {
+       status = "okay";
+};
+
+&kcs1 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca8>;
+};
+
+&kcs3 {
+       status = "okay";
+       aspeed,lpc-io-reg = <0xca2>;
+};
+
+/* Enable BMC VGA output to show an early (pre-BIOS) boot screen */
+&gfx {
+       status = "okay";
+       memory-region = <&gfx_memory>;
+};
+
+/* We're following the GPIO naming as defined at
+ * https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md.
+ *
+ * Notes on led-identify and id-button:
+ * - A physical button is connected to id-button which
+ *   triggers the clock on a D flip-flop. The /Q output of the
+ *   flip-flop drives its D input.
+ * - The flip-flop's Q output drives led-identify which is
+ *   connected to LEDs.
+ * - With that, every button press toggles the LED between on and off.
+ *
+ * Notes on power-, reset- and nmi- button and control:
+ * - The -button signals can be used to monitor physical buttons.
+ * - The -control signals can be used to actuate the specific
+ *   operation.
+ * - In hardware, the -button signals are connected to the -control
+ *   signals through drivers with the -control signals being
+ *   protected through diodes.
+ */
+&gpio {
+       status = "okay";
+       gpio-line-names =
+       /*A0*/          "",
+       /*A1*/          "",
+       /*A2*/          "led-identify", /* in/out: BMC_CHASSIS_ID_LED_L */
+       /*A3*/          "",
+       /*A4*/          "",
+       /*A5*/          "",
+       /*A6*/          "",
+       /*A7*/          "",
+       /*B0-B7*/       "","","","","","","","",
+       /*C0-C7*/       "","","","","","","","",
+       /*D0*/          "",
+       /*D1*/          "",
+       /*D2*/          "power-chassis-good", /* in: PWR_GOOD_LED -- Check if this is Z3?*/
+       /*D3*/          "platform-reset", /* in: RESET_LED_L */
+       /*D4*/          "",
+       /*D5*/          "",
+       /*D6*/          "",
+       /*D7*/          "",
+       /*E0*/          "power-button", /* in: BMC_SYS_MON_PWR_BTN_L */
+       /*E1*/          "power-chassis-control", /* out: BMC_ASSERT_PWR_BTN */
+       /*E2*/          "reset-button", /* in: BMC_SYS_MOS_RST_BTN_L*/
+       /*E3*/          "reset-control", /* out: BMC_ASSERT_RST_BTN */
+       /*E4*/          "nmi-button", /* in: BMC_SYS_MON_NMI_BTN_L */
+       /*E5*/          "nmi-control", /* out: BMC_ASSERT_NMI_BTN */
+       /*E6*/          "TSI_RESERT",
+       /*E7*/          "led-heartbeat", /* out: BMC_GPIOE7 */
+       /*F0*/          "",
+       /*F1*/          "clear-cmos-control", /* out: BMC_ASSERT_CLR_CMOS_L */
+       /*F2*/          "",
+       /*F3*/          "",
+       /*F4*/          "led-fault", /* out: BMC_HWM_FAULT_LED_L */
+       /*F5*/          "BMC_SYS_FAULT_LED_L",
+       /*F6*/          "BMC_ASSERT_BIOS_WP_L",
+       /*F7*/          "",
+       /*G0-G7*/       "","","","","","","","",
+       /*H0-H7*/       "","","","","","","","",
+       /*I0-I7*/       "","","","","","","","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "","","","","","","","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","","","","","",
+       /*P0-P7*/       "","","","","","","","",
+       /*Q0*/          "",
+       /*Q1*/          "",
+       /*Q2*/          "",
+       /*Q3*/          "",
+       /*Q4*/          "",
+       /*Q5*/          "",
+       /*Q6*/          "id-button", /* in: BMC_CHASSIS_ID_BTN_L */
+       /*Q7*/          "",
+       /*R0-R7*/       "","","","","","","","",
+       /*S0-S7*/       "","","","","","","","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","","","","","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "","","","","","","","",
+       /*Z0-Z2*/       "","","",
+       /*Z3*/          "post-complete", /* BMC_SYS_MON_PWROK */
+       /*Z4-Z7*/       "","","","",
+       /*AA0*/         "",
+       /*AA1*/         "",
+       /*AA2*/         "",
+       /*AA3*/         "",
+       /*AA4*/         "",
+       /*AA5*/         "",
+       /*AA6*/         "",
+       /*AA7*/         "BMC_ASSERT_BMC_READY",
+       /*AB0*/         "BMC_SPD_SEL",
+       /*AB1-AB7*/     "","","","","","","";
+};
diff --git a/arch/arm/boot/dts/aspeed-bmc-vegman-n110.dts b/arch/arm/boot/dts/aspeed-bmc-vegman-n110.dts
new file mode 100644 (file)
index 0000000..2431926
--- /dev/null
@@ -0,0 +1,149 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (C) 2021 YADRO
+/dts-v1/;
+
+#include "aspeed-bmc-vegman.dtsi"
+
+/ {
+       model = "YADRO VEGMAN N110 BMC";
+       compatible = "yadro,vegman-n110-bmc", "aspeed,ast2500";
+};
+
+&gpio {
+       status = "okay";
+       gpio-line-names =
+       /*A0-A7*/       "CHASSIS_INTRUSION","CASE_OPEN_FAULT_RST","","","SPEAKER_BMC","FM_FORCE_BMC_UPDATE","","",
+       /*B0-B7*/       "","","","","","","","",
+       /*C0-C7*/       "","","","","","","","",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "RESET_BUTTON","RESET_OUT","POWER_BUTTON","POWER_OUT","","","","",
+       /*F0-F7*/       "NMI_OUT","PCIE_NIC_ALERT","","","SKT0_FAULT_LED","","RST_RGMII_PHYRST_DNP","",
+       /*G0-G7*/       "CPU_ERR2","CPU_CATERR","PCH_BMC_THERMTRIP","","IRQ_NMI_EVENT","","","",
+       /*H0-H7*/       "PWRGD_P3V3_RISER1","PWRGD_P3V3_RISER2","PWRGD_P3V3_RISER3","","MIO_BIOS_SEL","_SPI_FLASH_HOLD","_SPI_FLASH_WP","FM_240VA_STATUS",
+       /*I0-I7*/       "","","","","","","","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "","","","","","","","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","","","","","_SPI2_BMC_CS_SEL",
+       /*P0-P7*/       "","","","","","","","",
+       /*Q0-Q7*/       "","","","","","","","",
+       /*R0-R7*/       "_SPI_RMM4_LITE_CS","","","","","","","",
+       /*S0-S7*/       "_SPI2_BMC_CS1","","","IRQ_SML0_ALERT_MUX","FP_LED_STATUS_GREEN","FP_LED_STATUS_AMBER","FP_ID_LED","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","","","","","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "SIO_S3","SIO_S5","","SIO_ONCONTROL","","","","",
+       /*Z0-Z7*/       "FM_BMC_PWR_BTN","SIO_POWER_GOOD","FM_BMC_PWRBTN_OUT","FM_BMC_PCH_SCI_LPC","","","","",
+       /*AA0-AA7*/     "","IRQ_SML1_PMBUS_ALERT","FM_PVCCIN_CPU0_PWR_IN_ALERT","FM_PVCCIN_CPU1_PWR_IN_ALERT","BMC_SYS_PWR_FAULT","BMC_SYS_PWR_OK","SMI","POST_COMPLETE",
+       /*AB0-AB7*/     "FM_CPU_BMCINIT","NMI_BUTTON","ID_BUTTON","PS_PWROK","","","","",
+       /*AC0-AC7*/     "","","","","","","","";
+};
+
+&sgpio {
+       ngpios = <80>;
+       bus-frequency = <2000000>;
+       status = "okay";
+       /* SGPIO lines. even: input, odd: output */
+       gpio-line-names =
+       /*A0-A7*/       "CPU1_PRESENCE","","CPU1_THERMTRIP","","CPU1_VRHOT","","CPU1_FIVR_FAULT","","CPU1_MEM_ABCD_VRHOT","","CPU1_MEM_EFGH_VRHOT","","","","","",
+       /*B0-B7*/       "CPU1_MISMATCH","","CPU1_MEM_THERM_EVENT","","CPU2_PRESENCE","","CPU2_THERMTRIP","","CPU2_VRHOT","","CPU2_FIVR_FAULT","","CPU2_MEM_ABCD_VRHOT","","CPU2_MEM_EFGH_VRHOT","",
+       /*C0-C7*/       "","","","","CPU2_MISMATCH","","CPU2_MEM_THERM_EVENT","","","","","","","","","",
+       /*D0-D7*/       "","","","","","","","","","","","","","","","",
+       /*E0-E7*/       "","","","","","","","","","","","","","","","",
+       /*F0-F7*/       "SGPIO_PLD_MINOR_REV_BIT0","","SGPIO_PLD_MINOR_REV_BIT1","","SGPIO_PLD_MINOR_REV_BIT2","","SGPIO_PLD_MINOR_REV_BIT3","","SGPIO_PLD_MAJOR_REV_BIT0","","SGPIO_PLD_MAJOR_REV_BIT1","","SGPIO_PLD_MAJOR_REV_BIT2","","SGPIO_PLD_MAJOR_REV_BIT3","",
+       /*G0-G7*/       "MAIN_PLD_MINOR_REV_BIT0","","MAIN_PLD_MINOR_REV_BIT1","","MAIN_PLD_MINOR_REV_BIT2","","MAIN_PLD_MINOR_REV_BIT3","","MAIN_PLD_MAJOR_REV_BIT0","","MAIN_PLD_MAJOR_REV_BIT1","","MAIN_PLD_MAJOR_REV_BIT2","","MAIN_PLD_MAJOR_REV_BIT3","",
+       /*H0-H7*/       "","","","","","","","","","","","","","","","",
+       /*I0-I7*/       "","","","","","","","","","","","","","","","",
+       /*J0-J7*/       "","","","","","","","","","","","","","","","";
+};
+
+&i2c11 {
+       /* SMB_BMC_MGMT_LVC3 */
+       gpio@21 {
+               compatible = "nxp,pcal9535";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*IO0.0-0.7*/   "", "", "", "", "", "", "PE_PCH_SCR_CLKREQ", "",
+               /*IO1.0-1.7*/   "", "PE_PCH_MEZ_PRSNT", "PE_PCH_MEZ_PRSNT_", "NIC_4_PE_PRSNT", "NIC_3_PE_PRSNT", "NIC_2_PE_PRSNT", "NIC_1_PE_PRSNT", "";
+       };
+       gpio@27 {
+               compatible = "nxp,pca9698";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*IO0.0-0.7*/   "PWRGD_PS_PWROK", "PWRGD_DSW_PWROK", "PWRGD_P5V_AUX", "PWRGD_P3V3_AUX", "PWRGD_P5V", "PWRGD_P3V3", "PWRGD_P1V8_PCH_AUX", "PWRGD_PCH_PVNN_AUX",
+               /*IO1.0-1.7*/   "PWRGD_P1V05_PCH_AUX", "PWRGD_PCH_AUX_VRS", "PWRGD_PVCCIN_CPU0", "PWRGD_PVCCSA_CPU0", "PWRGD_PVCCIO_CPU0", "PWRGD_PVMCP_CPU0", "PWRGD_P1V0_CPU0", "PWRGD_PVDDQ_ABC_CPU0",
+               /*IO2.0-2.7*/   "PWRGD_PVPP_ABC_CPU0", "PWRGD_PVTT_ABC_CPU0", "PWRGD_PVDDQ_DEF_CPU0", "PWRGD_PVPP_DEF_CPU0", "PWRGD_PVTT_DEF_CPU0", "", "", "",
+               /*IO3.0-3.7*/   "", "", "", "", "", "", "", "",
+               /*IO4.0-4.7*/   "", "", "", "", "", "", "", "";
+       };
+};
+
+&i2c13 {
+       /* SMB_PCIE2_STBY_LVC3 */
+       mux-expa@73 {
+               compatible = "nxp,pca9545";
+               reg = <0x73>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+       };
+       mux-sata@71 {
+               compatible = "nxp,pca9543";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+       };
+};
+
+&i2c2 {
+       /* SMB_PCIE_STBY_LVC3 */
+       mux-expb@71 {
+               compatible = "nxp,pca9545";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+       };
+};
+
+&pwm_tacho {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default
+                        &pinctrl_pwm2_default &pinctrl_pwm3_default
+                        &pinctrl_pwm4_default &pinctrl_pwm5_default>;
+
+       fan@0 {
+               reg = <0x00>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x00 0x06>;
+       };
+       fan@1 {
+               reg = <0x01>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x01 0x08>;
+       };
+       fan@2 {
+               reg = <0x02>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x02 0x09>;
+       };
+       fan@3 {
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x03 0x0A>;
+       };
+       fan@4 {
+               reg = <0x04>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x04 0x0B>;
+       };
+       fan@5 {
+               reg = <0x05>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x05>;
+       };
+};
diff --git a/arch/arm/boot/dts/aspeed-bmc-vegman-rx20.dts b/arch/arm/boot/dts/aspeed-bmc-vegman-rx20.dts
new file mode 100644 (file)
index 0000000..ebbb68b
--- /dev/null
@@ -0,0 +1,255 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (C) 2021 YADRO
+/dts-v1/;
+
+#include "aspeed-bmc-vegman.dtsi"
+
+/ {
+       model = "YADRO VEGMAN Rx20 BMC";
+       compatible = "yadro,vegman-rx20-bmc", "aspeed,ast2500";
+
+       leds {
+               compatible = "gpio-leds";
+
+               temp_alarm {
+                       label = "temp:red:status";
+                       default-state = "off";
+                       gpios = <&gpio ASPEED_GPIO(E, 4) GPIO_ACTIVE_LOW>;
+               };
+
+               temp_ok {
+                       label = "temp:green:status";
+                       default-state = "off";
+                       gpios = <&gpio ASPEED_GPIO(E, 5) GPIO_ACTIVE_LOW>;
+               };
+
+               psu_fault {
+                       label = "psu:red:status";
+                       default-state = "off";
+                       gpios = <&gpio ASPEED_GPIO(E, 6) GPIO_ACTIVE_LOW>;
+               };
+
+               psu_ok {
+                       label = "psu:green:status";
+                       default-state = "off";
+                       gpios = <&gpio ASPEED_GPIO(E, 7) GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&gpio {
+       status = "okay";
+       gpio-line-names =
+       /*A0-A7*/       "CASE_OPEN_DNP","CASE_OPEN_FAULT_RST_DNP","BEZEL_ON_PWR_P3V3","PWM_PWRGD_EXP_EN","SPEAKER_BMC","FM_FORCE_BMC_UPDATE","","",
+       /*B0-B7*/       "","","","","","","","",
+       /*C0-C7*/       "","","","","","","","",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "RESET_BUTTON","RESET_OUT","POWER_BUTTON","POWER_OUT","LED_TEMP_STATUS_R","LED_TEMP_STATUS_G","LED_PWR_STATUS_R","LED_PWR_STATUS_G",
+       /*F0-F7*/       "NMI_OUT","CPU1_DISABLE_COD","","","SKT0_FAULT_LED_DNP","SKT1_FAULT_LED_DNP","RST_RGMII_PHYRST_DNP","",
+       /*G0-G7*/       "CPU_ERR2","CPU_CATERR","PCH_BMC_THERMTRIP","SPI_BMC_BOOT_HD","IRQ_NMI_EVENT","SPI_BMC_BOOT_WP","SPI_BMC_BOOT_WP1","",
+       /*H0-H7*/       "PWRGD_P3V3_RISER1","PWRGD_P3V3_RISER2","PWRGD_P3V3_RISER3","","MIO_BIOS_SEL","_SPI_FLASH_HOLD","_SPI_FLASH_WP","FM_240VA_STATUS",
+       /*I0-I7*/       "","","","","","","","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "SEL_FLASH_SOFT","STATUS_SEL_BMC","","","BMC_WDT_P","ID_BUTTON","PS_PWROK","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","","","","","",
+       /*P0-P7*/       "","","","","","","SPI_BIOS_ACTIVE_FLASH_SEL","STATUS_SEL_BIOS",
+       /*Q0-Q7*/       "","","","","","","","",
+       /*R0-R7*/       "_SPI_BMC_BOOT_CS1","","","","","","","",
+       /*S0-S7*/       "_SPI2_BMC_CS1","RSR_A_SMBEXP_RST_INT","RSR_B_SMBEXP_RST_INT","IRQ_SML0_ALERT_MUX","FP_LED_STATUS_GREEN","FP_LED_STATUS_AMBER","FP_ID_LED","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","","","","","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "SIO_S3","SIO_S5","","SIO_ONCONTROL","","","","",
+       /*Z0-Z7*/       "FM_BMC_PWR_BTN","SIO_POWER_GOOD","FM_BMC_PWRBTN_OUT","FM_BMC_PCH_SCI_LPC","","","","",
+       /*AA0-AA7*/     "CPU_CLK_MUX_SEL","IRQ_SML1_PMBUS_ALERT","FM_PVCCIN_CPU0_PWR_IN_ALERT","FM_PVCCIN_CPU1_PWR_IN_ALERT","BMC_SYS_PWR_FAULT","BMC_SYS_PWR_OK","SMI","POST_COMPLETE",
+       /*AB0-AB7*/     "FM_CPU_BMCINIT","NMI_BUTTON","BMC_WDT_RST1","BMC_WDT_RST2","","","","",
+       /*AC0-AC7*/     "","","","","","","","";
+};
+
+&sgpio {
+       ngpios = <80>;
+       bus-frequency = <2000000>;
+       status = "okay";
+       /* SGPIO lines. even: input, odd: output */
+       gpio-line-names =
+       /*A0-A7*/       "CPU1_PRESENCE","","CPU1_THERMTRIP","","CPU1_VRHOT","","CPU1_FIVR_FAULT","","CPU1_MEM_ABCD_VRHOT","","CPU1_MEM_EFGH_VRHOT","","","","","",
+       /*B0-B7*/       "CPU1_MISMATCH","","CPU1_MEM_THERM_EVENT","","CPU2_PRESENCE","","CPU2_THERMTRIP","","CPU2_VRHOT","","CPU2_FIVR_FAULT","","CPU2_MEM_ABCD_VRHOT","","CPU2_MEM_EFGH_VRHOT","",
+       /*C0-C7*/       "","","","","CPU2_MISMATCH","","CPU2_MEM_THERM_EVENT","","","","","","","","","",
+       /*D0-D7*/       "","","","","","","","","","","","","","","","",
+       /*E0-E7*/       "","","","","","","","","","","","","","","","",
+       /*F0-F7*/       "SGPIO_PLD_MINOR_REV_BIT0","","SGPIO_PLD_MINOR_REV_BIT1","","SGPIO_PLD_MINOR_REV_BIT2","","SGPIO_PLD_MINOR_REV_BIT3","","SGPIO_PLD_MAJOR_REV_BIT0","","SGPIO_PLD_MAJOR_REV_BIT1","","SGPIO_PLD_MAJOR_REV_BIT2","","SGPIO_PLD_MAJOR_REV_BIT3","",
+       /*G0-G7*/       "MAIN_PLD_MINOR_REV_BIT0","","MAIN_PLD_MINOR_REV_BIT1","","MAIN_PLD_MINOR_REV_BIT2","","MAIN_PLD_MINOR_REV_BIT3","","MAIN_PLD_MAJOR_REV_BIT0","","MAIN_PLD_MAJOR_REV_BIT1","","MAIN_PLD_MAJOR_REV_BIT2","","MAIN_PLD_MAJOR_REV_BIT3","",
+       /*H0-H7*/       "","","","","","","","","","","","","","","","",
+       /*I0-I7*/       "","","","","","","","","","","","","","","","",
+       /*J0-J7*/       "","","","","","","","","","","","","","","","";
+};
+
+&i2c11 {
+       /* SMB_BMC_MGMT_LVC3 */
+       gpio@21 {
+               compatible = "nxp,pcal9535";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*IO0.0-0.7*/   "ETH3_CLK_REQ", "ETH2_CLK_REQ", "RSR_A_PCIE_X16_2_PRSNT", "RSR_B_PCIE_X16_2_PRSNT", "", "RSR_B_PCIE_X8_3_PRSNT", "RSR_B_PCIE_X8_4_PRSNT", "RSR_B_PCIE_X16_PRSNT_N",
+               /*IO1.0-1.7*/   "RSR_B_PCIE_X8_2_PRSNT", "RSR_B_PCIE_X8_1_PRSNT", "NIC_1_PE_BUF_PRSNT", "RSR_A_PCIE_X16_PRSNT", "RSR_A_PCIE_X8_3_PRSNT", "RSR_A_PCIE_X8_2_PRSNT", "RSR_A_PCIE_X8_1_PRSNT_N", "";
+       };
+       gpio@23 {
+               compatible = "nxp,pcal9535";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*IO0.0-0.7*/   "FM_LINK_WIDTH_ID0", "FM_LINK_WIDTH_ID0", "FM_LINK_WIDTH_ID0", "FM_LINK_WIDTH_ID0", "FM_LINK_WIDTH_ID0", "", "", "",
+               /*IO1.0-1.7*/   "", "", "", "", "", "", "", "";
+       };
+       gpio@27 {
+               compatible = "nxp,pca9698";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*IO0.0-0.7*/   "PWRGD_PS_PWROK", "PWRGD_DSW_PWROK", "PWRGD_P5V_AUX", "PWRGD_P3V3_AUX", "PWRGD_P5V", "PWRGD_P3V3", "PWRGD_P1V8_PCH_AUX", "PWRGD_PCH_PVNN_AUX",
+               /*IO1.0-1.7*/   "PWRGD_P1V05_PCH_AUX", "PWRGD_PCH_AUX_VRS", "PWRGD_PVCCIN_CPU0", "PWRGD_PVCCSA_CPU0", "PWRGD_PVCCIO_CPU0", "PWRGD_PVMCP_CPU0", "PWRGD_P1V0_CPU0", "PWRGD_PVDDQ_ABC_CPU0",
+               /*IO2.0-2.7*/   "PWRGD_PVPP_ABC_CPU0", "PWRGD_PVTT_ABC_CPU0", "PWRGD_PVDDQ_DEF_CPU0", "PWRGD_PVPP_DEF_CPU0", "PWRGD_PVTT_DEF_CPU0", "PWRGD_PVCCIN_CPU1", "PWRGD_PVCCSA_CPU1", "PWRGD_PVCCIO_CPU1",
+               /*IO3.0-3.7*/   "PWRGD_PVMCP_CPU1", "PWRGD_P1V0_CPU1", "PWRGD_PVDDQ_GHJ_CPU1", "PWRGD_PVPP_GHJ_CPU1", "PWRGD_PVTT_GHJ_CPU1", "PWRGD_PVDDQ_KLM_CPU1", "PWRGD_PVPP_KLM_CPU1", "PWRGD_PVTT_KLM_CPU1",
+               /*IO4.0-4.7*/   "PCH_PWR_RESET_N", "FM_BOARD_SKU_ID0", "FM_BOARD_SKU_ID1", "FM_BOARD_SKU_ID2", "FM_BOARD_SKU_ID3", "FM_BOARD_SKU_ID4", "FM_BOARD_REV_ID0", "FM_BOARD_REV_ID1";
+       };
+       gpio@39 {
+               compatible = "nxp,pca9554";
+               reg = <0x39>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*IO0.0-0.7*/   "FAN_FAULT_0", "FAN_FAULT_1", "FAN_FAULT_2", "FAN_FAULT_3", "FAN_FAULT_4", "FAN_FAULT_5", "FAN_FAULT_6", "";
+       };
+};
+
+&i2c13 {
+       /* SMB_PCIE2_STBY_LVC3 */
+       mux-expa@70 {
+               compatible = "nxp,pca9548";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+                       rsra-mux@72 {
+                               compatible = "nxp,pca9548";
+                               reg = <0x72>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               i2c@7 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <7>;
+                                       at24@50 {
+                                               compatible = "atmel,24c64";
+                                               reg = <0x50>;
+                                               pagesize = <32>;
+                                               size = <8192>;
+                                               address-width = <16>;
+                                       };
+                               };
+                       };
+               };
+       };
+       mux-sata@71 {
+               compatible = "nxp,pca9543";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+       };
+};
+
+&i2c2 {
+       /* SMB_PCIE_STBY_LVC3 */
+       mux-expb@71 {
+               compatible = "nxp,pca9548";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+                       rsrb-mux@72 {
+                               compatible = "nxp,pca9548";
+                               reg = <0x72>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               i2c@7 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <7>;
+                                       at24@50 {
+                                               compatible = "atmel,24c64";
+                                               reg = <0x50>;
+                                               pagesize = <32>;
+                                               size = <8192>;
+                                               address-width = <16>;
+                                       };
+                               };
+                       };
+                       at24@50 {
+                               compatible = "atmel,24c64";
+                               reg = <0x50>;
+                               pagesize = <32>;
+                               size = <8192>;
+                               address-width = <16>;
+                       };
+               };
+       };
+};
+
+&pwm_tacho {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default
+                        &pinctrl_pwm2_default &pinctrl_pwm3_default
+                        &pinctrl_pwm4_default &pinctrl_pwm5_default
+                        &pinctrl_pwm6_default>;
+
+       fan@0 {
+               reg = <0x00>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x00 0x07>;
+       };
+       fan@1 {
+               reg = <0x01>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x01 0x08>;
+       };
+       fan@2 {
+               reg = <0x02>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x02 0x09>;
+       };
+       fan@3 {
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x03 0x0A>;
+       };
+       fan@4 {
+               reg = <0x04>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x04 0x0B>;
+       };
+       fan@5 {
+               reg = <0x05>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x05 0x0C>;
+       };
+       fan@6 {
+               reg = <0x06>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x06 0x0D>;
+       };
+};
diff --git a/arch/arm/boot/dts/aspeed-bmc-vegman-sx20.dts b/arch/arm/boot/dts/aspeed-bmc-vegman-sx20.dts
new file mode 100644 (file)
index 0000000..e36ee47
--- /dev/null
@@ -0,0 +1,154 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (C) 2021 YADRO
+/dts-v1/;
+
+#include "aspeed-bmc-vegman.dtsi"
+
+/ {
+       model = "YADRO VEGMAN Sx20 BMC";
+       compatible = "yadro,vegman-sx20-bmc", "aspeed,ast2500";
+};
+
+&gpio {
+       status = "okay";
+       gpio-line-names =
+       /*A0-A7*/       "CHASSIS_INTRUSION","CASE_OPEN_FAULT_RST","","","SPEAKER_BMC","FM_FORCE_BMC_UPDATE","","",
+       /*B0-B7*/       "","","","","","","","",
+       /*C0-C7*/       "","","","","","","","",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "RESET_BUTTON","RESET_OUT","POWER_BUTTON","POWER_OUT","","","","",
+       /*F0-F7*/       "NMI_OUT","CPU1_DISABLE_COD","","","SKT0_FAULT_LED","SKT1_FAULT_LED","RST_RGMII_PHYRST_DNP","",
+       /*G0-G7*/       "CPU_ERR2","CPU_CATERR","PCH_BMC_THERMTRIP","","IRQ_NMI_EVENT","","","",
+       /*H0-H7*/       "PWRGD_P3V3_RISER1","PWRGD_P3V3_RISER2","PWRGD_P3V3_RISER3","","MIO_BIOS_SEL","_SPI_FLASH_HOLD","_SPI_FLASH_WP","FM_240VA_STATUS",
+       /*I0-I7*/       "","","","","","","","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "","","","","BMC_GPU_RISER_ID1","BMC_GPU_RISER_ID0","","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","","","","","_SPI2_BMC_CS_SEL",
+       /*P0-P7*/       "","P12V_HDDS_A_EN","P12V_HDDS_B_EN","P5V_HDDS_A_EN","PWRGD_P5V_HDDS_A","P5V_HDDS_B_EN","PWRGD_P5V_HDDS_B","",
+       /*Q0-Q7*/       "","","","","","","","",
+       /*R0-R7*/       "_SPI_RMM4_LITE_CS","","","","","","","",
+       /*S0-S7*/       "_SPI2_BMC_CS1","","","IRQ_SML0_ALERT_MUX","FP_LED_STATUS_GREEN","FP_LED_STATUS_AMBER","FP_ID_LED","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","","","","","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "SIO_S3","SIO_S5","","SIO_ONCONTROL","","","","",
+       /*Z0-Z7*/       "FM_BMC_PWR_BTN","SIO_POWER_GOOD","FM_BMC_PWRBTN_OUT","FM_BMC_PCH_SCI_LPC","","","","",
+       /*AA0-AA7*/     "CPU_CLK_MUX_SEL","IRQ_SML1_PMBUS_ALERT","FM_PVCCIN_CPU0_PWR_IN_ALERT","FM_PVCCIN_CPU1_PWR_IN_ALERT","BMC_SYS_PWR_FAULT","BMC_SYS_PWR_OK","SMI","POST_COMPLETE",
+       /*AB0-AB7*/     "FM_CPU_BMCINIT","NMI_BUTTON","ID_BUTTON","PS_PWROK","","","","",
+       /*AC0-AC7*/     "","","","","","","","";
+};
+
+&sgpio {
+       ngpios = <80>;
+       bus-frequency = <2000000>;
+       status = "okay";
+       /* SGPIO lines. even: input, odd: output */
+       gpio-line-names =
+       /*A0-A7*/       "CPU1_PRESENCE","","CPU1_THERMTRIP","","CPU1_VRHOT","","CPU1_FIVR_FAULT","","CPU1_MEM_ABCD_VRHOT","","CPU1_MEM_EFGH_VRHOT","","","","","",
+       /*B0-B7*/       "CPU1_MISMATCH","","CPU1_MEM_THERM_EVENT","","CPU2_PRESENCE","","CPU2_THERMTRIP","","CPU2_VRHOT","","CPU2_FIVR_FAULT","","CPU2_MEM_ABCD_VRHOT","","CPU2_MEM_EFGH_VRHOT","",
+       /*C0-C7*/       "","","","","CPU2_MISMATCH","","CPU2_MEM_THERM_EVENT","","","","","","","","","",
+       /*D0-D7*/       "","","","","","","","","","","","","","","","",
+       /*E0-E7*/       "","","","","","","","","","","","","","","","",
+       /*F0-F7*/       "SGPIO_PLD_MINOR_REV_BIT0","","SGPIO_PLD_MINOR_REV_BIT1","","SGPIO_PLD_MINOR_REV_BIT2","","SGPIO_PLD_MINOR_REV_BIT3","","SGPIO_PLD_MAJOR_REV_BIT0","","SGPIO_PLD_MAJOR_REV_BIT1","","SGPIO_PLD_MAJOR_REV_BIT2","","SGPIO_PLD_MAJOR_REV_BIT3","",
+       /*G0-G7*/       "MAIN_PLD_MINOR_REV_BIT0","","MAIN_PLD_MINOR_REV_BIT1","","MAIN_PLD_MINOR_REV_BIT2","","MAIN_PLD_MINOR_REV_BIT3","","MAIN_PLD_MAJOR_REV_BIT0","","MAIN_PLD_MAJOR_REV_BIT1","","MAIN_PLD_MAJOR_REV_BIT2","","MAIN_PLD_MAJOR_REV_BIT3","",
+       /*H0-H7*/       "","","","","","","","","","","","","","","","",
+       /*I0-I7*/       "","","","","","","","","","","","","","","","",
+       /*J0-J7*/       "","","","","","","","","","","","","","","","";
+};
+
+&i2c11 {
+       /* SMB_BMC_MGMT_LVC3 */
+       gpio@21 {
+               compatible = "nxp,pcal9535";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*IO0.0-0.7*/   "", "", "CPU1_PE3_0_SLOT_PRSNT", "", "CPU1_PE1_GPU_PRSNT", "CPU1_PE3_1_SLOT_PRSNT", "PE_PCH_MEZ_PRSNT", "CPU0_PE3_1_SLOT_PRSNT",
+               /*IO1.0-1.7*/   "CPU0_PE1_GPU_PRSNT", "CPU0_PE2_NVME2_PRSNT", "CPU1_PE2_NVME3_PRSNT", "CPU1_PE2_SLOT_PRSNT", "CPU1_PE2_NVME4_PRSNT", "", "CPU0_PE2_NVME1_PRSNT", "CPU0_PE3_0_RAID_PRSNT";
+       };
+       gpio@27 {
+               compatible = "nxp,pca9698";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+               /*IO0.0-0.7*/   "PWRGD_PS_PWROK", "PWRGD_DSW_PWROK", "PWRGD_P5V_AUX", "PWRGD_P3V3_AUX", "PWRGD_P5V", "PWRGD_P3V3", "PWRGD_P1V8_PCH_AUX", "PWRGD_PCH_PVNN_AUX",
+               /*IO1.0-1.7*/   "PWRGD_P1V05_PCH_AUX", "PWRGD_PCH_AUX_VRS", "PWRGD_PVCCIN_CPU0", "PWRGD_PVCCSA_CPU0", "PWRGD_PVCCIO_CPU0", "PWRGD_PVMCP_CPU0", "PWRGD_P1V0_CPU0", "PWRGD_PVDDQ_ABC_CPU0",
+               /*IO2.0-2.7*/   "PWRGD_PVPP_ABC_CPU0", "PWRGD_PVTT_ABC_CPU0", "PWRGD_PVDDQ_DEF_CPU0", "PWRGD_PVPP_DEF_CPU0", "PWRGD_PVTT_DEF_CPU0", "PWRGD_PVCCIN_CPU1", "PWRGD_PVCCSA_CPU1", "PWRGD_PVCCIO_CPU1",
+               /*IO3.0-3.7*/   "PWRGD_PVMCP_CPU1", "PWRGD_P1V0_CPU1", "PWRGD_PVDDQ_GHJ_CPU1", "PWRGD_PVPP_GHJ_CPU1", "PWRGD_PVTT_GHJ_CPU1", "PWRGD_PVDDQ_KLM_CPU1", "PWRGD_PVPP_KLM_CPU1", "PWRGD_PVTT_KLM_CPU1",
+               /*IO4.0-4.7*/   "PWRGD_P5V_HDDS_A_R", "PWRGD_P5V_HDDS_B_R", "", "", "", "", "", "";
+       };
+};
+
+&i2c13 {
+       /* SMB_PCIE2_STBY_LVC3 */
+       mux-expa@73 {
+               compatible = "nxp,pca9545";
+               reg = <0x73>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+       };
+       mux-sata@71 {
+               compatible = "nxp,pca9543";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+       };
+};
+
+&i2c2 {
+       /* SMB_PCIE_STBY_LVC3 */
+       mux-expb@71 {
+               compatible = "nxp,pca9545";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+       };
+};
+
+&pwm_tacho {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default
+                        &pinctrl_pwm2_default &pinctrl_pwm3_default
+                        &pinctrl_pwm4_default &pinctrl_pwm5_default
+                        &pinctrl_pwm6_default>;
+
+       fan@0 {
+               reg = <0x00>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x00>;
+       };
+       fan@1 {
+               reg = <0x01>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x01>;
+       };
+       fan@2 {
+               reg = <0x02>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x02>;
+       };
+       fan@3 {
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x03>;
+       };
+       fan@4 {
+               reg = <0x04>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x04>;
+       };
+       fan@5 {
+               reg = <0x05>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x05>;
+       };
+       fan@6 {
+               reg = <0x06>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x06>;
+       };
+};
diff --git a/arch/arm/boot/dts/aspeed-bmc-vegman.dtsi b/arch/arm/boot/dts/aspeed-bmc-vegman.dtsi
new file mode 100644 (file)
index 0000000..1a5b25b
--- /dev/null
@@ -0,0 +1,311 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (C) 2021 YADRO
+
+#include "aspeed-g5.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+
+/ {
+       aliases {
+               serial4 = &uart5;
+       };
+
+       chosen {
+               stdout-path = &uart5;
+               bootargs = "console=ttyS4,115200 earlyprintk";
+       };
+
+       memory@80000000 {
+               reg = <0x80000000 0x20000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               video_engine_memory: jpegbuffer {
+                       size = <0x02000000>;    /* 32M */
+                       alignment = <0x01000000>;
+                       compatible = "shared-dma-pool";
+                       reusable;
+               };
+
+               ramoops@9eff0000{
+                       compatible = "ramoops";
+                       reg = <0x9eff0000 0x10000>;
+                       record-size = <0x2000>;
+                       console-size = <0x2000>;
+               };
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
+                       <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
+                       <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
+                       <&adc 12>, <&adc 13>, <&adc 14>, <&adc 15>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               identify {
+                       label = "platform:blue:indicator";
+                       linux,default-trigger = "heartbeat";
+                       gpios = <&gpio ASPEED_GPIO(S, 6) GPIO_ACTIVE_LOW>;
+               };
+
+               status_amber {
+                       label = "platform:red:status";
+                       default-state = "off";
+                       gpios = <&gpio ASPEED_GPIO(S, 5) GPIO_ACTIVE_LOW>;
+               };
+
+               status_green {
+                       label = "platform:green:status";
+                       default-state = "off";
+                       gpios = <&gpio ASPEED_GPIO(S, 4) GPIO_ACTIVE_LOW>;
+               };
+
+               power_fault {
+                       label = "platform:red:power";
+                       default-state = "off";
+                       gpios = <&gpio ASPEED_GPIO(AA, 4) GPIO_ACTIVE_LOW>;
+               };
+
+               power_ok {
+                       label = "platform:green:power";
+                       default-state = "off";
+                       gpios = <&gpio ASPEED_GPIO(AA, 5) GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       beeper {
+               compatible = "pwm-beeper";
+               pwms = <&timer 5 1000000 0>;
+       };
+};
+
+&fmc {
+       status = "okay";
+       flash@0 {
+               status = "okay";
+               label = "bmc";
+               m25p,fast-read;
+#include "openbmc-flash-layout-64.dtsi"
+       };
+};
+
+&spi2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi2ck_default
+                       &pinctrl_spi2miso_default
+                       &pinctrl_spi2mosi_default
+                       &pinctrl_spi2cs0_default>;
+       flash@0 {
+               status = "okay";
+               label = "bios";
+               m25p,fast-read;
+       };
+};
+
+&mac0 {
+       status = "okay";
+       use-ncsi;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii1_default>;
+};
+
+&mac1 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
+
+       phy-mode = "rgmii";
+       phy-handle = <&phy>;
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               phy: ethernet-phy@1 {
+                       /* KSZ9131 */
+                       compatible = "ethernet-phy-id0022.1640";
+                       reg = <1>;
+
+                       micrel,led-mode = <0>;
+               };
+       };
+};
+
+&vhub {
+       status = "okay";
+};
+
+&adc {
+       status = "okay";
+};
+
+&video {
+       status = "okay";
+       memory-region = <&video_engine_memory>;
+};
+
+&sdmmc {
+       status = "okay";
+};
+
+&sdhci1 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sd2_default>;
+       disable-wp;
+};
+
+&timer {
+       fttmr010,pwm-outputs = <5>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_timer5_default>;
+       #pwm-cells = <3>;
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_txd1_default
+                       &pinctrl_rxd1_default
+                       &pinctrl_nrts1_default
+                       &pinctrl_ndtr1_default
+                       &pinctrl_ndsr1_default
+                       &pinctrl_ncts1_default
+                       &pinctrl_ndcd1_default
+                       &pinctrl_nri1_default>;
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&vuart {
+       status = "okay";
+};
+
+&kcs3 {
+       aspeed,lpc-io-reg = <0xCA2>;
+       status = "okay";
+};
+
+&kcs4 {
+       aspeed,lpc-io-reg = <0xCA4>;
+       status = "okay";
+};
+
+&lpc_snoop {
+       snoop-ports = <0x80>;
+       status = "okay";
+};
+
+&uart_routing {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <>;
+};
+
+&uart3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <>;
+};
+
+&uart4 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <>;
+};
+
+&i2c0 {
+       /* SMB_IPMB_STBY_LVC3 */
+       multi-master;
+       status = "okay";
+};
+
+&i2c1 {
+       /* SMB_CHASSENSOR_STBY_LVC3 */
+       status = "okay";
+};
+
+&i2c2 {
+       /* SMB_PCIE_STBY_LVC3 */
+       status = "okay";
+};
+
+&i2c3 {
+       /* SMB_HOST_STBY_LVC3 */
+       multi-master;
+       status = "okay";
+};
+
+&i2c4 {
+       /* BMC_PMBUS2_STBY */
+       status = "okay";
+};
+
+&i2c5 {
+       /* SMB_SMLINK0_STBY_LVC3 */
+       bus-frequency = <1000000>;
+       multi-master;
+       status = "okay";
+};
+
+&i2c6 {
+       /* SMB_TEMPSENSOR_STBY_LVC3 */
+       multi-master;
+       status = "okay";
+};
+
+&i2c7 {
+       /* SMB_SM_PMB1_SML1_STBY_LVC3 */
+       multi-master;
+       status = "okay";
+};
+
+&i2c9 {
+       /* SMB_BMC_ETH3_LVC3 */
+       status = "okay";
+};
+
+&i2c10 {
+       /* SMB_BMC_ETH2_LVC3 */
+       status = "okay";
+};
+
+&i2c11 {
+       /* SMB_BMC_MGMT_LVC3 */
+       status = "okay";
+
+       at24@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+               pagesize = <32>;
+               size = <8192>;
+               address-width = <16>;
+       };
+};
+
+&i2c12 {
+       /* SMB_BMC_FAULT_EXP_LVC3 */
+       status = "okay";
+};
+
+&i2c13 {
+       /* SMB_PCIE2_STBY_LVC3 */
+       status = "okay";
+};
index b313a1c..f14dace 100644 (file)
                                        compatible = "aspeed,ast2400-ibt-bmc";
                                        reg = <0x140 0x18>;
                                        interrupts = <8>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
 
index c704945..7495f93 100644 (file)
                                        compatible = "aspeed,ast2500-kcs-bmc-v2";
                                        reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>;
                                        interrupts = <8>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
 
                                        compatible = "aspeed,ast2500-kcs-bmc-v2";
                                        reg = <0x28 0x1>, <0x34 0x1>, <0x40 0x1>;
                                        interrupts = <8>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
 
                                        compatible = "aspeed,ast2500-kcs-bmc-v2";
                                        reg = <0x2c 0x1>, <0x38 0x1>, <0x44 0x1>;
                                        interrupts = <8>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
 
                                        compatible = "aspeed,ast2500-kcs-bmc-v2";
                                        reg = <0x114 0x1>, <0x118 0x1>, <0x11c 0x1>;
                                        interrupts = <8>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
 
                                        compatible = "aspeed,ast2500-ibt-bmc";
                                        reg = <0x140 0x18>;
                                        interrupts = <8>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
                        };
index 5106a42..c32e87f 100644 (file)
                                status = "disabled";
                        };
 
+                       sbc: secure-boot-controller@1e6f2000 {
+                               compatible = "aspeed,ast2600-sbc";
+                               reg = <0x1e6f2000 0x1000>;
+                       };
+
                        gpio0: gpio@1e780000 {
                                #gpio-cells = <2>;
                                gpio-controller;
                                        compatible = "aspeed,ast2500-kcs-bmc-v2";
                                        reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>;
                                        interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        kcs_chan = <1>;
                                        status = "disabled";
                                };
                                        compatible = "aspeed,ast2500-kcs-bmc-v2";
                                        reg = <0x28 0x1>, <0x34 0x1>, <0x40 0x1>;
                                        interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
 
                                        compatible = "aspeed,ast2500-kcs-bmc-v2";
                                        reg = <0x2c 0x1>, <0x38 0x1>, <0x44 0x1>;
                                        interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
 
                                        compatible = "aspeed,ast2500-kcs-bmc-v2";
                                        reg = <0x114 0x1>, <0x118 0x1>, <0x11c 0x1>;
                                        interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
 
                                        compatible = "aspeed,ast2600-ibt-bmc";
                                        reg = <0x140 0x18>;
                                        interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
                                        status = "disabled";
                                };
                        };
index 5827383..47a0006 100644 (file)
                        reg = <0x8000 0x3E000>;
                };
        };
-
-       spidev@1 {
-               compatible = "spidev";
-               spi-max-frequency = <2000000>;
-               reg = <1>;
-       };
 };
 
 &spi1 {
        pinctrl-0 = <&pinctrl_spi1 &pinctrl_spi1_npcs0 &pinctrl_spi1_npcs1>;
        cs-gpios = <&pioB 3 GPIO_ACTIVE_HIGH>, <&pioC 5 GPIO_ACTIVE_LOW>, <0>, <0>;
        status = "okay";
-
-       spidev@0 {
-               compatible = "spidev";
-               spi-max-frequency = <2000000>;
-               reg = <0>;
-       };
-
-       spidev@1 {
-               compatible = "spidev";
-               spi-max-frequency = <2000000>;
-               reg = <1>;
-       };
 };
 
 &usart0 {
index b1e854f..9bf2ec0 100644 (file)
@@ -66,7 +66,7 @@
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_sdmmc0_default>;
                        non-removable;
-                       mmc-ddr-1_8v;
+                       mmc-ddr-3_3v;
                        status = "okay";
                };
 
                                                bias-disable;
                                        };
 
-                                       ck_cd_rstn_vddsel {
+                                       ck_cd_rstn {
                                                pinmux = <PIN_PA0__SDMMC0_CK>,
                                                         <PIN_PA10__SDMMC0_RSTN>,
-                                                        <PIN_PA11__SDMMC0_VDDSEL>,
                                                         <PIN_PA13__SDMMC0_CD>;
                                                bias-disable;
                                        };
diff --git a/arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts b/arch/arm/boot/dts/at91-sama5d3_ksz9477_evb.dts
new file mode 100644 (file)
index 0000000..443e8b0
--- /dev/null
@@ -0,0 +1,209 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2021 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
+ */
+/dts-v1/;
+#include "sama5d36.dtsi"
+
+/ {
+       model = "EVB-KSZ9477";
+       compatible = "microchip,sama5d3-ksz9477-evb", "atmel,sama5d36",
+                    "atmel,sama5d3", "atmel,sama5";
+
+       chosen {
+               stdout-path = &dbgu;
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_vcc_mmc0: regulator-mmc0 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_mcc0_vcc>;
+               regulator-name = "mmc0-vcc";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&dbgu {
+       status = "okay";
+};
+
+&ebi {
+       pinctrl-0 = <&pinctrl_ebi_nand_addr>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-0 = <&pinctrl_i2c0_pu>;
+       status = "okay";
+};
+
+&macb0 {
+       phy-mode = "rgmii";
+       status = "okay";
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
+
+&main_xtal {
+       clock-frequency = <12000000>;
+};
+
+&mmc0 {
+       pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3
+                    &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
+       status = "okay";
+
+       slot@0 {
+               reg = <0>;
+               bus-width = <8>;
+               cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
+               disable-wp;
+               vmmc-supply = <&reg_vcc_mmc0>;
+               vqmmc-supply = <&reg_3v3>;
+       };
+};
+
+&nand_controller {
+       status = "okay";
+
+       nand@3 {
+               reg = <0x3 0x0 0x2>;
+               atmel,rb = <0>;
+               nand-bus-width = <8>;
+               nand-ecc-mode = "hw";
+               nand-ecc-strength = <4>;
+               nand-ecc-step-size = <512>;
+               nand-on-flash-bbt;
+               label = "atmel_nand";
+       };
+};
+
+&slow_xtal {
+       clock-frequency = <32768>;
+};
+
+&spi0 {
+       cs-gpios = <&pioD 13 GPIO_ACTIVE_LOW>, <0>, <0>,
+                  <&pioD 16 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&spi1 {
+       pinctrl-0 = <&pinctrl_spi_ksz>;
+       cs-gpios = <&pioC 25 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       switch@0 {
+               compatible = "microchip,ksz9477";
+               reg = <0>;
+               spi-max-frequency = <1000000>;
+               spi-cpha;
+               spi-cpol;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               label = "lan1";
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               label = "lan2";
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               label = "lan3";
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                               label = "lan4";
+                       };
+
+                       port@4 {
+                               reg = <4>;
+                               label = "lan5";
+                       };
+
+                       port@5 {
+                               reg = <5>;
+                               label = "cpu";
+                               ethernet = <&macb0>;
+                               phy-mode = "rgmii-txid";
+
+                               fixed-link {
+                                       speed = <1000>;
+                                       full-duplex;
+                               };
+                       };
+               };
+       };
+};
+
+&usb0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usba_vbus>;
+       atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&pinctrl {
+       board {
+               pinctrl_i2c0_pu: i2c0-pu {
+                       atmel,pins =
+                               <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
+                               <AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
+               };
+
+               pinctrl_mmc0_cd: mmc0-cd {
+                       atmel,pins = <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+               };
+
+               pinctrl_mcc0_vcc: mmc0-vcc {
+                       atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+               };
+
+               pinctrl_spi_ksz: spi-ksz {
+                       atmel,pins =
+                               <
+                               /* SPI1_MISO */
+                               AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
+                               /* SPI1_MOSI */
+                               AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE
+                               /* SPI1_SPCK */
+                               AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE
+
+                               /* SPI CS */
+                               AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
+                               /* switch IRQ */
+                               AT91_PIOB 28 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH
+                               /* switch PME_N, SoC IN */
+                               AT91_PIOC 30 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP
+                               /* switch RST */
+                               AT91_PIOC 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH
+                               >;
+               };
+
+               pinctrl_usba_vbus: usba-vbus {
+                       atmel,pins =
+                               <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
+               };
+       };
+};
index 0e1975c..ccf9e22 100644 (file)
@@ -13,6 +13,7 @@
 #include "sama7g5.dtsi"
 #include <dt-bindings/mfd/atmel-flexcom.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/at91.h>
 
 / {
        model = "Microchip SAMA7G5-EK";
        cpu-supply = <&vddcpu>;
 };
 
+&qspi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_qspi>;
+       status = "okay";
+
+       flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <133000000>;
+               spi-tx-bus-width = <8>;
+               spi-rx-bus-width = <8>;
+               m25p,fast-read;
+
+               at91bootstrap@0 {
+                       label = "ospi: at91bootstrap";
+                       reg = <0x0 0x40000>;
+               };
+
+               bootloader@40000 {
+                       label = "ospi: bootloader";
+                       reg = <0x40000 0xc0000>;
+               };
+
+               bootloaderenvred@100000 {
+                       label = "ospi: bootloader env redundant";
+                       reg = <0x100000 0x40000>;
+               };
+
+               bootloaderenv@140000 {
+                       label = "ospi: bootloader env";
+                       reg = <0x140000 0x40000>;
+               };
+
+               dtb@180000 {
+                       label = "ospi: device tree";
+                       reg = <0x180000 0x80000>;
+               };
+
+               kernel@200000 {
+                       label = "ospi: kernel";
+                       reg = <0x200000 0x600000>;
+               };
+
+               rootfs@800000 {
+                       label = "ospi: rootfs";
+                       reg = <0x800000 0x7800000>;
+               };
+
+       };
+};
+
 &dma0 {
        status = "okay";
 };
                bias-disable;
        };
 
+       pinctrl_qspi: qspi {
+               pinmux = <PIN_PB12__QSPI0_IO0>,
+                        <PIN_PB11__QSPI0_IO1>,
+                        <PIN_PB10__QSPI0_IO2>,
+                        <PIN_PB9__QSPI0_IO3>,
+                        <PIN_PB16__QSPI0_IO4>,
+                        <PIN_PB17__QSPI0_IO5>,
+                        <PIN_PB18__QSPI0_IO6>,
+                        <PIN_PB19__QSPI0_IO7>,
+                        <PIN_PB13__QSPI0_CS>,
+                        <PIN_PB14__QSPI0_SCK>,
+                        <PIN_PB15__QSPI0_SCKN>,
+                        <PIN_PB20__QSPI0_DQS>,
+                        <PIN_PB21__QSPI0_INT>;
+               bias-disable;
+               slew-rate = <0>;
+               atmel,drive-strength = <ATMEL_PIO_DRVSTR_HI>;
+       };
+
        pinctrl_sdmmc0_default: sdmmc0_default {
                cmd_data {
                        pinmux = <PIN_PA1__SDMMC0_CMD>,
index a5e45bb..89f0f71 100644 (file)
 
 &spi1 {
        status = "okay";
-
-       spidev@0 {
-               compatible = "spidev";
-               reg = <0>;
-               spi-max-frequency = <8000000>;
-       };
 };
 
 &usb0 {
index 8ecb786..ad65be8 100644 (file)
                        status = "disabled";
                };
 
-               pcie_phy: phy@301d0a0 {
+               pcie_phy: pcie_phy@301d0a0 {
                        compatible = "brcm,cygnus-pcie-phy";
                        reg = <0x0301d0a0 0x14>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       pcie0_phy: phy@0 {
+                       pcie0_phy: pcie-phy@0 {
                                reg = <0>;
                                #phy-cells = <0>;
                        };
 
-                       pcie1_phy: phy@1 {
+                       pcie1_phy: pcie-phy@1 {
                                reg = <1>;
                                #phy-cells = <0>;
                        };
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
-                       ranges = <0x81000000 0 0          0x28000000 0 0x00010000
-                                 0x82000000 0 0x20000000 0x20000000 0 0x04000000>;
+                       ranges = <0x81000000 0 0          0x28000000 0 0x00010000>,
+                                <0x82000000 0 0x20000000 0x20000000 0 0x04000000>;
 
                        phys = <&pcie0_phy>;
                        phy-names = "pcie-phy";
                        status = "disabled";
 
                        msi-parent = <&msi0>;
-                       msi0: msi-controller {
+                       msi0: msi {
                                compatible = "brcm,iproc-msi";
                                msi-controller;
                                interrupt-parent = <&gic>;
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
-                       ranges = <0x81000000 0 0          0x48000000 0 0x00010000
-                                 0x82000000 0 0x40000000 0x40000000 0 0x04000000>;
+                       ranges = <0x81000000 0 0          0x48000000 0 0x00010000>,
+                                <0x82000000 0 0x40000000 0x40000000 0 0x04000000>;
 
                        phys = <&pcie1_phy>;
                        phy-names = "pcie-phy";
                        status = "disabled";
 
                        msi-parent = <&msi1>;
-                       msi1: msi-controller {
+                       msi1: msi {
                                compatible = "brcm,iproc-msi";
                                msi-controller;
                                interrupt-parent = <&gic>;
index 84cda16..33e6ba6 100644 (file)
                status = "disabled";
 
                msi-parent = <&msi0>;
-               msi0: msi-controller {
+               msi0: msi {
                        compatible = "brcm,iproc-msi";
                        msi-controller;
                        interrupt-parent = <&gic>;
                status = "disabled";
 
                msi-parent = <&msi1>;
-               msi1: msi-controller {
+               msi1: msi {
                        compatible = "brcm,iproc-msi";
                        msi-controller;
                        interrupt-parent = <&gic>;
index 1c08daa..5b1dc58 100644 (file)
                        };
                };
 
-               sata: ahci@41000 {
+               sata: sata@41000 {
                        compatible = "brcm,bcm-nsp-ahci";
                        reg-names = "ahci", "top-ctrl";
                        reg = <0x41000 0x1000>, <0x40020 0x1c>;
                status = "disabled";
 
                msi-parent = <&msi0>;
-               msi0: msi-controller {
+               msi0: msi {
                        compatible = "brcm,iproc-msi";
                        msi-controller;
                        interrupt-parent = <&gic>;
                status = "disabled";
 
                msi-parent = <&msi1>;
-               msi1: msi-controller {
+               msi1: msi {
                        compatible = "brcm,iproc-msi";
                        msi-controller;
                        interrupt-parent = <&gic>;
                status = "disabled";
 
                msi-parent = <&msi2>;
-               msi2: msi-controller {
+               msi2: msi {
                        compatible = "brcm,iproc-msi";
                        msi-controller;
                        interrupt-parent = <&gic>;
index 631dd5b..4432412 100644 (file)
 };
 
 &expgpio {
-       gpio-line-names = "BT_ON",
+       gpio-line-names = "BT_ON",              /*  0 */
                          "WL_ON",
                          "PWR_LED_OFF",
                          "GLOBAL_RESET",
                          "VDD_SD_IO_SEL",
-                         "CAM_GPIO",
+                         "CAM_GPIO",           /*  5 */
                          "SD_PWR_ON",
                          "";
 };
         * "FOO" = GPIO line named "FOO" on the schematic
         * "FOO_N" = GPIO line named "FOO" on schematic, active low
         */
-       gpio-line-names = "ID_SDA",
+       gpio-line-names = "ID_SDA",             /*  0 */
                          "ID_SCL",
                          "SDA1",
                          "SCL1",
                          "GPIO_GCLK",
-                         "GPIO5",
+                         "GPIO5",              /*  5 */
                          "GPIO6",
                          "SPI_CE1_N",
                          "SPI_CE0_N",
                          "SPI_MISO",
-                         "SPI_MOSI",
+                         "SPI_MOSI",           /* 10 */
                          "SPI_SCLK",
                          "GPIO12",
                          "GPIO13",
                          /* Serial port */
                          "TXD1",
-                         "RXD1",
+                         "RXD1",               /* 15 */
                          "GPIO16",
                          "GPIO17",
                          "GPIO18",
                          "GPIO19",
-                         "GPIO20",
+                         "GPIO20",             /* 20 */
                          "GPIO21",
                          "GPIO22",
                          "GPIO23",
                          "GPIO24",
-                         "GPIO25",
+                         "GPIO25",             /* 25 */
                          "GPIO26",
                          "GPIO27",
                          "RGMII_MDIO",
                          "RGMIO_MDC",
                          /* Used by BT module */
-                         "CTS0",
+                         "CTS0",               /* 30 */
                          "RTS0",
                          "TXD0",
                          "RXD0",
                          /* Used by Wifi */
                          "SD1_CLK",
-                         "SD1_CMD",
+                         "SD1_CMD",            /* 35 */
                          "SD1_DATA0",
                          "SD1_DATA1",
                          "SD1_DATA2",
                          "SD1_DATA3",
                          /* Shared with SPI flash */
-                         "PWM0_MISO",
+                         "PWM0_MISO",          /* 40 */
                          "PWM1_MOSI",
                          "STATUS_LED_G_CLK",
                          "SPIFLASH_CE_N",
                          "SDA0",
-                         "SCL0",
+                         "SCL0",               /* 45 */
                          "RGMII_RXCLK",
                          "RGMII_RXCTL",
                          "RGMII_RXD0",
                          "RGMII_RXD1",
-                         "RGMII_RXD2",
+                         "RGMII_RXD2",         /* 50 */
                          "RGMII_RXD3",
                          "RGMII_TXCLK",
                          "RGMII_TXCTL",
                          "RGMII_TXD0",
-                         "RGMII_TXD1",
+                         "RGMII_TXD1",         /* 55 */
                          "RGMII_TXD2",
                          "RGMII_TXD3";
 };
index 4480605..249476f 100644 (file)
@@ -68,8 +68,6 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                wps {
                        label = "WPS";
                        fixed-link {
                                speed = <1000>;
                                full-duplex;
+                               pause;
                        };
                };
 
index 64f973e..66c64a6 100644 (file)
                        max-brightness = <255>;
                };
        };
-
-       i2c {
-               /*
-                * The platform provided I2C does not budge.
-                * This is a replacement until I can figure
-                * out what are the missing bits...
-                */
-
-               compatible = "i2c-gpio";
-               sda-gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
-               scl-gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
-               i2c-gpio,delay-us = <10>; /* close to 100 kHz */
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               current_sense: ina219@45 {
-                       compatible = "ti,ina219";
-                       reg = <0x45>;
-                       shunt-resistor = <60000>; /* = 60 mOhms */
-               };
-
-               eeprom: eeprom@50 {
-                       compatible = "atmel,24c64";
-                       reg = <0x50>;
-                       pagesize = <32>;
-                       read-only;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-
-                       mac_address: mac-address@66 {
-                               reg = <0x66 0x6>;
-                       };
-               };
-       };
 };
 
 &uart0 {
                };
        };
 };
+
+&i2c0 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinmux_i2c>;
+
+       clock-frequency = <100000>;
+
+       current_sense: ina219@45 {
+               compatible = "ti,ina219";
+               reg = <0x45>;
+               shunt-resistor = <60000>; /* = 60 mOhms */
+       };
+
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+               pagesize = <32>;
+               read-only;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               mac_address: mac-address@66 {
+                       reg = <0x66 0x6>;
+               };
+       };
+};
index f69d2af..603c700 100644 (file)
                };
        };
 
-       usb2_phy: usb2-phy@1800c000 {
-               compatible = "brcm,ns-usb2-phy";
-               reg = <0x1800c000 0x1000>;
-               reg-names = "dmu";
-               #phy-cells = <0>;
-               clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
-               clock-names = "phy-ref-clk";
-       };
-
        axi@18000000 {
                compatible = "brcm,bus-axi";
                reg = <0x18000000 0x1000>;
                #address-cells = <1>;
                #size-cells = <1>;
 
-               cru@100 {
-                       compatible = "simple-bus";
+               cru-bus@100 {
+                       compatible = "brcm,ns-cru", "simple-mfd";
                        reg = <0x100 0x1a4>;
                        ranges;
                        #address-cells = <1>;
                        #size-cells = <1>;
 
-                       lcpll0: lcpll0@100 {
+                       lcpll0: clock-controller@100 {
                                #clock-cells = <1>;
                                compatible = "brcm,nsp-lcpll0";
                                reg = <0x100 0x14>;
                                                     "sdio", "ddr_phy";
                        };
 
-                       genpll: genpll@140 {
+                       genpll: clock-controller@140 {
                                #clock-cells = <1>;
                                compatible = "brcm,nsp-genpll";
                                reg = <0x140 0x24>;
                                                     "sata1", "sata2";
                        };
 
+                       usb2_phy: phy@164 {
+                               compatible = "brcm,ns-usb2-phy";
+                               reg = <0x164 0x4>;
+                               brcm,syscon-clkset = <&cru_clkset>;
+                               clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
+                               clock-names = "phy-ref-clk";
+                               #phy-cells = <0>;
+                       };
+
+                       cru_clkset: syscon@180 {
+                               compatible = "brcm,cru-clkset", "syscon";
+                               reg = <0x180 0x4>;
+                       };
+
                        pinctrl: pin-controller@1c0 {
                                compatible = "brcm,bcm4708-pinmux";
                                reg = <0x1c0 0x24>;
index 102acd8..ba01054 100644 (file)
                                                reg = <0>;
                                                ethernet = <&sgmii1>;
                                                phy-mode = "sgmii";
+                                               qca,sgmii-enable-pll;
+                                               qca,sgmii-txclk-falling-edge;
                                                fixed-link {
                                                        speed = <1000>;
                                                        full-duplex;
                                                reg = <0>;
                                                ethernet = <&sgmii0>;
                                                phy-mode = "sgmii";
+                                               qca,sgmii-enable-pll;
+                                               qca,sgmii-txclk-falling-edge;
                                                fixed-link {
                                                        speed = <1000>;
                                                        full-duplex;
index d87ee47..9698801 100644 (file)
@@ -5,7 +5,7 @@
 
 / {
        elpida_ECB240ABACN: lpddr2 {
-               compatible      = "Elpida,ECB240ABACN","jedec,lpddr2-s4";
+               compatible      = "elpida,ECB240ABACN","jedec,lpddr2-s4";
                density         = <2048>;
                io-width        = <32>;
 
index 19bb7dc..3389405 100644 (file)
                compatible = "brcm,bcm4330-bt";
 
                shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
-               reset-gpios = <&gpl1 0 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&gpl1 0 GPIO_ACTIVE_LOW>;
                device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
-               host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
+
+               interrupt-parent = <&gpx2>;
+               interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-names = "host-wakeup";
        };
 };
 
index 52fa211..524d244 100644 (file)
                        status = "disabled";
                };
 
-               hsi2c_0: hsi2c@12da0000 {
+               hsi2c_0: i2c@12da0000 {
                        compatible = "samsung,exynos5260-hsi2c";
                        reg = <0x12DA0000 0x1000>;
                        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_1: hsi2c@12db0000 {
+               hsi2c_1: i2c@12db0000 {
                        compatible = "samsung,exynos5260-hsi2c";
                        reg = <0x12DB0000 0x1000>;
                        interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_2: hsi2c@12dc0000 {
+               hsi2c_2: i2c@12dc0000 {
                        compatible = "samsung,exynos5260-hsi2c";
                        reg = <0x12DC0000 0x1000>;
                        interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_3: hsi2c@12dd0000 {
+               hsi2c_3: i2c@12dd0000 {
                        compatible = "samsung,exynos5260-hsi2c";
                        reg = <0x12DD0000 0x1000>;
                        interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
index 13112a8..6544c73 100644 (file)
@@ -84,7 +84,7 @@
                        partitions {
                                compatible = "redboot-fis";
                                /* Eraseblock at 0xfe0000 */
-                               fis-index-block = <0x1fc>;
+                               fis-index-block = <0x7f>;
                        };
                };
 
index 050a1fc..bd2e679 100644 (file)
@@ -26,9 +26,9 @@
  *                2 - 0
  *                3 - 1
  *
- * 'pin' is an integer between 0 and 0xbf. i.MX1 has 4 ports with 32 configurable
- * configurable pins each. 'pin' is PORT * 32 + PORT_PIN, PORT_PIN is the pin
- * number on the specific port (between 0 and 31).
+ * 'pin' is an integer between 0 and 0xbf. i.MX1 has 4 ports with 32
+ * configurable pins each. 'pin' is PORT * 32 + PORT_PIN, PORT_PIN is
+ * the pin number on the specific port (between 0 and 31).
  */
 
 #define MX1_PAD_A24__A24                       0x00 0x004
index 9b94098..e312f1e 100644 (file)
@@ -55,7 +55,7 @@
 
        clocks {
                clk32 {
-                       compatible = "fsl,imx-clk32", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <32000>;
                };
index fdcca82..fa8044c 100644 (file)
@@ -62,7 +62,7 @@
 
        clocks {
                osc {
-                       compatible = "fsl,imx-osc", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <24000000>;
                };
                        };
                };
 
-               spba@50000000 {
+               spba-bus@50000000 {
                        compatible = "fsl,spba-bus", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index 1514d80..75aea0c 100644 (file)
@@ -26,9 +26,9 @@
  *                2 - 0
  *                3 - 1
  *
- * 'pin' is an integer between 0 and 0xbf. imx27 has 6 ports with 32 configurable
- * configurable pins each. 'pin' is PORT * 32 + PORT_PIN, PORT_PIN is the pin
- * number on the specific port (between 0 and 31).
+ * 'pin' is an integer between 0 and 0xbf. imx27 has 6 ports with 32
+ * configurable pins each. 'pin' is PORT * 32 + PORT_PIN, PORT_PIN is
+ * the pin number on the specific port (between 0 and 31).
  */
 
 #define MX27_PAD_USBH2_CLK__USBH2_CLK                      0x00 0x000
index 164254c..9e5651c 100644 (file)
                >;
                /* enable this and disable ssp3 below, if you need full duplex SPI transfer */
                status = "disabled";
-
-               spi@0 {
-                       compatible = "spidev";
-                       reg = <0>;
-                       spi-max-frequency = <57600000>;
-               };
-
-               spi@1 {
-                       compatible = "spidev";
-                       reg = <1>;
-                       spi-max-frequency = <57600000>;
-               };
-
-               spi@2 {
-                       compatible = "spidev";
-                       reg = <2>;
-                       spi-max-frequency = <57600000>;
-               };
        };
 };
 
        pinctrl-0 = <&spi3_pins_a>;
        clock-frequency = <57600000>;
        status = "okay";
-
-       spi@0 {
-               compatible = "spidev";
-               reg = <0>;
-               spi-max-frequency = <57600000>;
-       };
-
-       spi@1 {
-               compatible = "spidev";
-               reg = <1>;
-               spi-max-frequency = <57600000>;
-       };
-
-       spi@2 {
-               compatible = "spidev";
-               reg = <2>;
-               spi-max-frequency = <57600000>;
-       };
 };
 
 &usb0 {
index 948d2a5..2adb923 100644 (file)
                        };
                };
 
-               spba@50000000 {
+               spba-bus@50000000 {
                        compatible = "fsl,spba-bus", "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index a969f33..be0de0f 100644 (file)
 
        clocks {
                ckil {
-                       compatible = "fsl,imx-ckil", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <32768>;
                };
 
                ckih1 {
-                       compatible = "fsl,imx-ckih1", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <22579200>;
                };
 
                ckih2 {
-                       compatible = "fsl,imx-ckih2", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <0>;
                };
 
                osc {
-                       compatible = "fsl,imx-osc", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <24000000>;
                };
                        reg = <0x50000000 0x10000000>;
                        ranges;
 
-                       spba@50000000 {
+                       spba-bus@50000000 {
                                compatible = "fsl,spba-bus", "simple-bus";
                                #address-cells = <1>;
                                #size-cells = <1>;
index 01cfcbe..56c8d87 100644 (file)
 
        clocks {
                ckil {
-                       compatible = "fsl,imx-ckil", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <32768>;
                };
 
                ckih1 {
-                       compatible = "fsl,imx-ckih1", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <0>;
                };
 
                ckih2 {
-                       compatible = "fsl,imx-ckih2", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <0>;
                };
 
                osc {
-                       compatible = "fsl,imx-osc", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <24000000>;
                };
                        reg = <0x70000000 0x10000000>;
                        ranges;
 
-                       spba@70000000 {
+                       spba-bus@70000000 {
                                compatible = "fsl,spba-bus", "simple-bus";
                                #address-cells = <1>;
                                #size-cells = <1>;
index 7c9730f..81c2726 100644 (file)
                &gpio3 19 GPIO_ACTIVE_HIGH
        >;
 
-       spidev0: spi@0 {
-               compatible = "spidev";
-               reg = <0>;
-               spi-max-frequency = <54000000>;
-       };
-
-       spidev1: spi@1 {
-               compatible = "spidev";
-               reg = <1>;
-               spi-max-frequency = <54000000>;
-       };
 };
 
 &esdhc1 {
index 2cf3909..67487f3 100644 (file)
 
        clocks {
                ckil {
-                       compatible = "fsl,imx-ckil", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <32768>;
                };
 
                ckih1 {
-                       compatible = "fsl,imx-ckih1", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <22579200>;
                };
 
                ckih2 {
-                       compatible = "fsl,imx-ckih2", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <0>;
                };
 
                osc {
-                       compatible = "fsl,imx-osc", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <24000000>;
                };
                        reg = <0x50000000 0x10000000>;
                        ranges;
 
-                       spba@50000000 {
+                       spba-bus@50000000 {
                                compatible = "fsl,spba-bus", "simple-bus";
                                #address-cells = <1>;
                                #size-cells = <1>;
diff --git a/arch/arm/boot/dts/imx6dl-mba6.dtsi b/arch/arm/boot/dts/imx6dl-mba6.dtsi
new file mode 100644 (file)
index 0000000..b749b42
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2013 Sascha Hauer, Pengutronix
+ *
+ * Copyright 2013-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+&ethphy {
+       rxdv-skew-ps = <180>;
+       txen-skew-ps = <0>;
+       rxd3-skew-ps = <180>;
+       rxd2-skew-ps = <180>;
+       rxd1-skew-ps = <180>;
+       rxd0-skew-ps = <180>;
+       txd3-skew-ps = <120>;
+       txd2-skew-ps = <0>;
+       txd1-skew-ps = <300>;
+       txd0-skew-ps = <120>;
+       txc-skew-ps = <1860>;
+       rxc-skew-ps = <1860>;
+};
diff --git a/arch/arm/boot/dts/imx6dl-mba6a.dts b/arch/arm/boot/dts/imx6dl-mba6a.dts
new file mode 100644 (file)
index 0000000..df0a96b
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2013 Sascha Hauer, Pengutronix
+ *
+ * Copyright 2013-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx6dl-tqma6a.dtsi"
+#include "imx6qdl-mba6.dtsi"
+#include "imx6qdl-mba6a.dtsi"
+#include "imx6dl-mba6.dtsi"
+
+/ {
+       model = "TQ TQMa6S/DL on MBa6x";
+       compatible = "tq,imx6dl-mba6x-a", "tq,mba6a",
+                    "tq,imx6dl-tqma6dl-a", "fsl,imx6dl";
+};
diff --git a/arch/arm/boot/dts/imx6dl-mba6b.dts b/arch/arm/boot/dts/imx6dl-mba6b.dts
new file mode 100644 (file)
index 0000000..610b19d
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2013 Sascha Hauer, Pengutronix
+ *
+ * Copyright 2013-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx6dl-tqma6b.dtsi"
+#include "imx6qdl-mba6.dtsi"
+#include "imx6qdl-mba6b.dtsi"
+#include "imx6dl-mba6.dtsi"
+
+/ {
+       model = "TQ TQMa6S/DL on MBa6x";
+       compatible = "tq,imx6dl-mba6x-b", "tq,mba6b",
+                    "tq,imx6dl-tqma6dl-b", "fsl,imx6dl";
+};
index 9f7f9f9..d906a7f 100644 (file)
@@ -8,6 +8,9 @@
 #include "imx6dl.dtsi"
 #include "imx6qdl-phytec-phycore-som.dtsi"
 #include "imx6qdl-phytec-mira.dtsi"
+#include "imx6qdl-phytec-mira-peb-eval-01.dtsi"
+#include "imx6qdl-phytec-mira-peb-av-02.dtsi"
+#include "imx6qdl-phytec-mira-peb-wlbt-05.dtsi"
 
 / {
        model = "PHYTEC phyBOARD-Mira DualLite/Solo Carrier-Board with NAND";
diff --git a/arch/arm/boot/dts/imx6q-mba6.dtsi b/arch/arm/boot/dts/imx6q-mba6.dtsi
new file mode 100644 (file)
index 0000000..0d7be45
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2013 Sascha Hauer, Pengutronix
+ *
+ * Copyright 2013-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+&ecspi5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi5_mba6x>;
+       cs-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
+};
+
+&ethphy {
+       rxdv-skew-ps = <180>;
+       txen-skew-ps = <120>;
+       rxd3-skew-ps = <180>;
+       rxd2-skew-ps = <180>;
+       rxd1-skew-ps = <180>;
+       rxd0-skew-ps = <180>;
+       txd3-skew-ps = <120>;
+       txd2-skew-ps = <0>;
+       txd1-skew-ps = <180>;
+       txd0-skew-ps = <360>;
+       txc-skew-ps = <1860>;
+       rxc-skew-ps = <1860>;
+};
+
+&sata {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_ecspi5_mba6x: ecspi5grp-mba6x {
+               fsl,pins = <
+                       /* HYS, SPEED = MED, 100k up, DSE = 011, SRE_FAST */
+                       MX6QDL_PAD_SD1_DAT0__ECSPI5_MISO 0x1b099
+                       MX6QDL_PAD_SD1_CMD__ECSPI5_MOSI 0xb099
+                       MX6QDL_PAD_SD1_CLK__ECSPI5_SCLK 0xb099
+                       MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0xb099 /* eCSPI5 SS0 */
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6q-mba6a.dts b/arch/arm/boot/dts/imx6q-mba6a.dts
new file mode 100644 (file)
index 0000000..349a086
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2013 Sascha Hauer, Pengutronix
+ *
+ * Copyright 2013-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/dts-v1/;
+
+#include "imx6q-tqma6a.dtsi"
+#include "imx6qdl-mba6.dtsi"
+#include "imx6qdl-mba6a.dtsi"
+#include "imx6q-mba6.dtsi"
+
+/ {
+       model = "TQ TQMa6Q on MBa6x";
+       compatible = "tq,imx6q-mba6x-a", "tq,mba6a",
+                    "tq,imx6q-tqma6q-a", "fsl,imx6q";
+};
diff --git a/arch/arm/boot/dts/imx6q-mba6b.dts b/arch/arm/boot/dts/imx6q-mba6b.dts
new file mode 100644 (file)
index 0000000..02c9f3e
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2013 Sascha Hauer, Pengutronix
+ *
+ * Copyright 2013-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/dts-v1/;
+
+#include "imx6q-tqma6b.dtsi"
+#include "imx6qdl-mba6.dtsi"
+#include "imx6qdl-mba6b.dtsi"
+#include "imx6q-mba6.dtsi"
+
+/ {
+       model = "TQ TQMa6Q on MBa6x";
+       compatible = "tq,imx6q-mba6x-b", "tq,mba6b",
+                    "tq,imx6q-tqma6q-b", "fsl,imx6q";
+};
index 2e70ea5..322f071 100644 (file)
@@ -8,6 +8,9 @@
 #include "imx6q.dtsi"
 #include "imx6qdl-phytec-phycore-som.dtsi"
 #include "imx6qdl-phytec-mira.dtsi"
+#include "imx6qdl-phytec-mira-peb-eval-01.dtsi"
+#include "imx6qdl-phytec-mira-peb-av-02.dtsi"
+#include "imx6qdl-phytec-mira-peb-wlbt-05.dtsi"
 
 / {
        model = "PHYTEC phyBOARD-Mira Quad Carrier-Board with eMMC";
index 65d2e48..3f13726 100644 (file)
@@ -8,6 +8,9 @@
 #include "imx6q.dtsi"
 #include "imx6qdl-phytec-phycore-som.dtsi"
 #include "imx6qdl-phytec-mira.dtsi"
+#include "imx6qdl-phytec-mira-peb-eval-01.dtsi"
+#include "imx6qdl-phytec-mira-peb-av-02.dtsi"
+#include "imx6qdl-phytec-mira-peb-wlbt-05.dtsi"
 
 / {
        model = "PHYTEC phyBOARD-Mira Quad Carrier-Board with NAND";
diff --git a/arch/arm/boot/dts/imx6q-yapp4-crux.dts b/arch/arm/boot/dts/imx6q-yapp4-crux.dts
new file mode 100644 (file)
index 0000000..15f4824
--- /dev/null
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright (C) 2021 Y Soft Corporation, a.s.
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6dl-yapp4-common.dtsi"
+
+/ {
+       model = "Y Soft IOTA Crux i.MX6Quad board";
+       compatible = "ysoft,imx6q-yapp4-crux", "fsl,imx6q";
+
+       memory@10000000 {
+               device_type = "memory";
+               reg = <0x10000000 0xf0000000>;
+       };
+};
+
+&gpio_oled {
+       status = "okay";
+};
+
+&leds {
+       status = "okay";
+};
+
+&oled_1305 {
+       status = "okay";
+};
+
+&oled_1309 {
+       status = "okay";
+};
+
+&reg_usb_h1_vbus {
+       status = "okay";
+};
+
+&touchkeys {
+       status = "okay";
+};
+
+&uart2 {
+       status = "disabled";
+};
+
+&usbh1 {
+       status = "okay";
+};
+
+&usbphy2 {
+       status = "okay";
+};
index 3d0a50a..702cd4a 100644 (file)
        rts-gpios = <&gpio7 13 GPIO_ACTIVE_HIGH>; /* GPIO P */
 };
 
+&usbh1 {
+       disable-over-current;
+};
+
 &usdhc2 { /* SD card */
        status = "okay";
 };
index dc21853..dc89b55 100644 (file)
        status = "okay";
 };
 
+&usbh1 {
+       disable-over-current;
+};
+
 &usdhc2 { /* SD card */
        status = "okay";
 };
index 5d10c40..5befbe1 100644 (file)
                #size-cells = <0>;
 
                ethphy0: ethernet-phy@0 { /* SMSC LAN8710Ai */
-                       compatible = "ethernet-phy-ieee802.3-c22";
+                       compatible = "ethernet-phy-id0007.c0f0",
+                                    "ethernet-phy-ieee802.3-c22";
                        interrupt-parent = <&gpio4>;
                        interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
                        pinctrl-0 = <&pinctrl_ethphy0>;
                        pinctrl-names = "default";
                        reg = <0>;
-                       reset-assert-us = <1000>;
-                       reset-deassert-us = <1000>;
+                       reset-assert-us = <500>;
+                       reset-deassert-us = <500>;
                        reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
                        smsc,disable-energy-detect; /* Make plugin detection reliable */
                };
        pinctrl_usbh1: usbh1-grp {
                fsl,pins = <
                        MX6QDL_PAD_EIM_D31__GPIO3_IO31          0x120b0
+                       MX6QDL_PAD_EIM_D30__USB_H1_OC           0x1b0b1
                >;
        };
 
diff --git a/arch/arm/boot/dts/imx6qdl-mba6.dtsi b/arch/arm/boot/dts/imx6qdl-mba6.dtsi
new file mode 100644 (file)
index 0000000..daf7634
--- /dev/null
@@ -0,0 +1,526 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2013 Sascha Hauer, Pengutronix
+ *
+ * Copyright 2013-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+#include <dt-bindings/clock/imx6qdl-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/sound/fsl-imx-audmux.h>
+
+/ {
+       aliases {
+               mmc0 = &usdhc3;
+               mmc1 = &usdhc2;
+               /delete-property/ mmc2;
+               /delete-property/ mmc3;
+       };
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       beeper: gpio-beeper {
+               compatible = "gpio-beeper";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpiobeeper>;
+               gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
+       };
+
+       gpio_buttons: gpio-buttons {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpiobuttons>;
+
+               button1 {
+                       label = "s6";
+                       linux,code = <KEY_F6>;
+                       gpios = <&gpio7 13 GPIO_ACTIVE_LOW>;
+               };
+
+               button2 {
+                       label = "s7";
+                       linux,code = <KEY_F7>;
+                       gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
+               };
+
+               button3 {
+                       label = "s8";
+                       linux,code = <KEY_F8>;
+                       gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpioled>;
+
+               led1 {
+                       label = "led1";
+                       gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led2 {
+                       label = "led2";
+                       gpios = <&gpio6 31 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       reg_mba6_3p3v: regulator-mba6-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "supply-mba6-3p3v";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       reg_pcie: regulator-pcie {
+               compatible = "regulator-fixed";
+               regulator-name = "supply-pcie";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               /* PCIE.PWR_EN */
+               gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+               vin-supply = <&reg_mba6_3p3v>;
+       };
+
+       reg_vcc3v3_audio: regulator-vcc3v3-audio {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3-audio";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&reg_mba6_3p3v>;
+       };
+
+       sound {
+               compatible = "fsl,imx-audio-tlv320aic32x4";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_audmux>;
+               model = "imx-audio-tlv320aic32x4";
+               ssi-controller = <&ssi1>;
+               audio-codec = <&tlv320aic32x4>;
+               audio-asrc = <&asrc>;
+               audio-routing =
+                       "IN3_L", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "IN1_L", "Line In Jack",
+                       "IN1_R", "Line In Jack",
+                       "Line Out Jack", "LOL",
+                       "Line Out Jack", "LOR";
+               mux-int-port = <1>;
+               mux-ext-port = <3>;
+       };
+};
+
+&audmux {
+       status = "okay";
+
+       ssi0 {
+               fsl,audmux-port = <MX31_AUDMUX_PORT1_SSI0>;
+               fsl,port-config = <
+                       (IMX_AUDMUX_V2_PTCR_SYN |
+                               IMX_AUDMUX_V2_PTCR_TFSDIR |
+                               IMX_AUDMUX_V2_PTCR_TFSEL(MX31_AUDMUX_PORT3_SSI_PINS_3) |
+                               IMX_AUDMUX_V2_PTCR_TCLKDIR |
+                               IMX_AUDMUX_V2_PTCR_TCSEL(MX31_AUDMUX_PORT3_SSI_PINS_3))
+                       IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT3_SSI_PINS_3)
+               >;
+       };
+
+       aud3 {
+               fsl,audmux-port = <MX31_AUDMUX_PORT3_SSI_PINS_3>;
+               fsl,port-config = <
+                       IMX_AUDMUX_V2_PTCR_SYN
+                       IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0)
+               >;
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1>;
+       status = "okay";
+};
+
+&can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can2>;
+       status = "okay";
+};
+
+&ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>, <&pinctrl_ecspi1_mba6>;
+       cs-gpios = <&gpio3 19 0>, <&gpio3 24 0>;
+};
+
+&fec {
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy>;
+       mac-address = [00 00 00 00 00 00];
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy: ethernet-phy@3 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <3>;
+                       interrupt-parent = <&gpio1>;
+                       interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <1000>;
+                       reset-deassert-us = <100000>;
+                       micrel,force-master;
+                       max-speed = <1000>;
+               };
+       };
+};
+
+&i2c1 {
+       tlv320aic32x4: audio-codec@18 {
+               compatible = "ti,tlv320aic32x4";
+               reg = <0x18>;
+               clocks = <&clks IMX6QDL_CLK_CKO>;
+               clock-names = "mclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_codec>;
+               ldoin-supply = <&reg_vcc3v3_audio>;
+               iov-supply = <&reg_mba6_3p3v>;
+       };
+};
+
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie>;
+       reset-gpio = <&gpio6 7 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+       status = "okay";
+};
+
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+       status = "okay";
+};
+
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+       status = "okay";
+};
+
+&snvs_poweroff {
+       status = "okay";
+};
+
+&ssi1 {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       uart-has-rtscts;
+       linux,rs485-enabled-at-boot-time;
+       rs485-rts-active-low;
+       rs485-rx-during-tx;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&usbh1 {
+       disable-over-current;
+       status = "okay";
+};
+
+&usbotg {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       power-active-high;
+       over-current-active-low;
+       srp-disable;
+       hnp-disable;
+       adp-disable;
+       dr_mode = "otg";
+       status = "okay";
+};
+
+/* SD card slot */
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       vmmc-supply = <&reg_mba6_3p3v>;
+       bus-width = <4>;
+       no-1-8-v;
+       no-mmc;
+       no-sdio;
+       cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog1>;
+       /* does not work on unmodified starter kit */
+       /* fsl,ext-reset-output; */
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       pinctrl_audmux: audmuxgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT7__AUD3_RXD  0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT4__AUD3_TXC  0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT5__AUD3_TXD  0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x1b0b0
+               >;
+       };
+
+       pinctrl_can1: can1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0xb099
+                       MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0xb099
+               >;
+       };
+
+       pinctrl_can2: can2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0xb099
+                       MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0xb099
+               >;
+       };
+
+       pinctrl_codec: codecgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0xb0 /* CLK */
+               >;
+       };
+
+       pinctrl_ecspi1_mba6: ecspimba6grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D24__GPIO3_IO24 0xb099 /* eCSPI1 SS2 */
+               >;
+       };
+
+       pinctrl_enet: enetgrp {
+               fsl,pins = <
+                       /* FEC phy IRQ */
+                       MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28     0x00011008
+                       /* FEC phy reset */
+                       MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25   0x1b099
+                       /* DSE = 100, 100k up, SPEED = MED */
+                       MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0xb0a0
+                       MX6QDL_PAD_ENET_MDC__ENET_MDC         0xb0a0
+                       /* DSE = 111, pull 100k up */
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0xb038
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0xb038
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0xb038
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0xb038
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0xb038
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0xb038
+                       /* DSE = 111, pull external */
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x0038
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x0038
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x0038
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x0038
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x0038
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x0038
+                       /* HYS = 1, DSE = 111, 100k up, SPEED = HIGH */
+                       MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0f0
+               >;
+       };
+
+       pinctrl_gpiobeeper: gpiobeepergrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0xb099
+               >;
+       };
+
+       pinctrl_gpiobuttons: gpiobuttongrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x0001b099
+                       MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x0001b099
+                       MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b099
+               >;
+       };
+
+       pinctrl_gpioled: gpioledgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0xb099 /* LED V15 */
+                       MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0xb099 /* LED V16 */
+               >;
+       };
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       /* LCD.CONTRAST -> Rev 0100 only, not used on Rev.0200*/
+                       MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0001b099
+
+                       MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x0001b099
+                       MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x0001b099
+                       MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x0001b099
+
+                       MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x0001b099
+                       MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x0001b099
+                       MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x0001b099
+                       MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x0001b099
+                       MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x0001b099
+                       MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x0001b099
+                       MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x0001b099
+
+                       MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x0001b099
+                       MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x0001b099
+                       MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x0001b099
+                       MX6QDL_PAD_EIM_D28__GPIO3_IO28 0x0001b099
+                       MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x0001b099
+
+                       MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x0001b099
+                       MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x0001b099
+                       MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x0001b099
+                       MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x0001b099
+
+                       MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x0001b099
+                       MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x0001b099
+                       MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x0001b099
+
+                       MX6QDL_PAD_NANDF_ALE__GPIO6_IO08 0x0001b099
+                       MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x0001b099
+               >;
+       };
+
+       pinctrl_pcie: pciegrp {
+               fsl,pins = <
+                       /* HYS = 1, DSE = 110, 100k up, SPEED = HIGH (11)*/
+                       MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x001b0f0 /* #PCIE.WAKE */
+                       MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x001b0f0 /* #PCIE.RST */
+                       MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x001b0f0 /* #PCIE.DIS */
+                       /* HYS = 1, DSE = 110, PUE+PKE, SPEED = HIGH (11)*/
+                       MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x00130f0 /* PCIE.PWR_EN */
+               >;
+       };
+
+       pinctrl_pwm1: pwm1grp {
+               fsl,pins = <
+                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       MX6QDL_PAD_GPIO_9__PWM1_OUT 0x00003050
+               >;
+       };
+
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <
+                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x00003050
+               >;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <
+                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       MX6QDL_PAD_SD4_DAT2__PWM4_OUT 0x00003050
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b099
+                       MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b099
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_CLK__UART3_RX_DATA 0x1b0b1
+                       MX6QDL_PAD_SD4_CMD__UART3_TX_DATA 0x1b0b1
+                       MX6QDL_PAD_EIM_D30__UART3_CTS_B   0x1b0b1
+                       MX6QDL_PAD_EIM_D31__UART3_RTS_B   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
+               >;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT18__UART5_RTS_B 0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT19__UART5_CTS_B 0x1b0b1
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       /* CLK: 47k Pup SPD_LOW DSE 40Ohm SRE_FAST HYS */
+                       MX6QDL_PAD_SD2_CLK__SD2_CLK    0x00017071
+                       /* SD2: 47k Pup SPD_LOW DSE 80Ohm SRE_FAST HYS */
+                       MX6QDL_PAD_SD2_CMD__SD2_CMD    0x00017059
+                       MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x00017059
+                       MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x00017059
+                       MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x00017059
+                       MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x00017059
+
+                       MX6QDL_PAD_GPIO_4__GPIO1_IO04  0x0001b099 /* usdhc2 CD */
+                       MX6QDL_PAD_GPIO_2__GPIO1_IO02  0x0001b099 /* usdhc2 WP */
+               >;
+       };
+
+       pinctrl_usbotg: usbotggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D21__USB_OTG_OC  0x0001b0b0
+                       MX6QDL_PAD_GPIO_1__USB_OTG_ID   0x00017059
+                       MX6QDL_PAD_EIM_D22__USB_OTG_PWR 0x0001b099
+               >;
+       };
+
+       pinctrl_wdog1: wdog1grp {
+               fsl,pins = <
+                        /* Watchdog out */
+                       MX6QDL_PAD_SD1_DAT2__WDOG1_B 0x0000b099
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6qdl-mba6a.dtsi b/arch/arm/boot/dts/imx6qdl-mba6a.dtsi
new file mode 100644 (file)
index 0000000..a61f270
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2013 Sascha Hauer, Pengutronix
+ *
+ * Copyright 2013-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/ {
+       aliases {
+               rtc0 = &rtc0;
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet>, <&pinctrl_enet_fix>;
+};
+
+&i2c1 {
+       lm75: temperature-sensor@49 {
+               compatible = "national,lm75";
+               reg = <0x49>;
+       };
+
+       m24c64_57: eeprom@57 {
+               compatible = "atmel,24c64";
+               reg = <0x57>;
+               pagesize = <32>;
+       };
+
+       rtc0: rtc@68 {
+               compatible = "dallas,ds1339";
+               reg = <0x68>;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6qdl-mba6b.dtsi b/arch/arm/boot/dts/imx6qdl-mba6b.dtsi
new file mode 100644 (file)
index 0000000..9f9f703
--- /dev/null
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2013 Sascha Hauer, Pengutronix
+ *
+ * Copyright 2013-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/ {
+       aliases {
+               rtc0 = &rtc0;
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet>;
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+};
+
+&i2c3 {
+       lm75: temperature-sensor@49 {
+               compatible = "national,lm75";
+               reg = <0x49>;
+       };
+
+       m24c64_57: eeprom@57 {
+               compatible = "atmel,24c64";
+               reg = <0x57>;
+               pagesize = <32>;
+       };
+
+       rtc0: rtc@68 {
+               compatible = "dallas,ds1339";
+               reg = <0x68>;
+       };
+};
+
+&iomuxc {
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b899
+                       MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b899
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6qdl-phytec-mira-peb-av-02.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-mira-peb-av-02.dtsi
new file mode 100644 (file)
index 0000000..393475c
--- /dev/null
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2018 PHYTEC Messtechnik
+ * Author: Christian Hemp <c.hemp@phytec.de>
+ */
+
+/ {
+       display: display0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "fsl,imx-parallel-display";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_disp0>;
+               interface-pix-fmt = "rgb24";
+               status = "disabled";
+
+               port@0 {
+                       reg = <0>;
+
+                       display0_in: endpoint {
+                               remote-endpoint = <&ipu1_di0_disp0>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       display0_out: endpoint {
+                               remote-endpoint = <&peb_panel_lcd_in>;
+                       };
+               };
+       };
+
+       panel-lcd {
+               compatible = "edt,etm0700g0edh6";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_disp0_pwr>;
+               power-supply = <&reg_display>;
+               enable-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               backlight = <&backlight>;
+               status = "disabled";
+
+               port {
+                       peb_panel_lcd_in: endpoint {
+                               remote-endpoint = <&display0_out>;
+                       };
+               };
+       };
+
+       reg_display: regulator-peb-display {
+               compatible = "regulator-fixed";
+               regulator-name = "peb-display";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
+&i2c1 {
+       edt_ft5x06: touchscreen@38 {
+               compatible = "edt,edt-ft5406";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_edt_ft5x06>;
+               reg = <0x38>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <2 IRQ_TYPE_NONE>;
+               status = "disabled";
+        };
+};
+
+&ipu1_di0_disp0 {
+       remote-endpoint = <&display0_in>;
+};
+
+&iomuxc {
+       pinctrl_disp0: disp0grp {
+               fsl,pins = <
+                       MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK      0x10
+                       MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02             0x10
+                       MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03             0x10
+                       MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15            0x1b080
+                       MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00        0x10
+                       MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01        0x10
+                       MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02        0x10
+                       MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03        0x10
+                       MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04        0x10
+                       MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05        0x10
+                       MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06        0x10
+                       MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07        0x10
+                       MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08        0x10
+                       MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09        0x10
+                       MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10       0x10
+                       MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11       0x10
+                       MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12       0x10
+                       MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13       0x10
+                       MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14       0x10
+                       MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15       0x10
+                       MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16       0x10
+                       MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17       0x10
+                       MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18       0x10
+                       MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19       0x10
+                       MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20       0x10
+                       MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21       0x10
+                       MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22       0x10
+                       MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23       0x10
+               >;
+       };
+
+       pinctrl_disp0_pwr: disp0pwrgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D22__GPIO3_IO22                  0x1b0b0
+               >;
+       };
+
+       pinctrl_edt_ft5x06: edtft5x06grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_DA2__GPIO3_IO02                  0xb0b1
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6qdl-phytec-mira-peb-eval-01.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-mira-peb-eval-01.dtsi
new file mode 100644 (file)
index 0000000..037b601
--- /dev/null
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2018 PHYTEC Messtechnik
+ * Author: Christian Hemp <c.hemp@phytec.de>
+ */
+
+#include <dt-bindings/input/input.h>
+
+/ {
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+               status = "disabled";
+
+               power {
+                       label = "Power Button";
+                       gpios = <&gpio5 28 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_WAKEUP>;
+                       wakeup-source;
+               };
+
+               sleep {
+                       label = "Sleep Button";
+                       gpios = <&gpio6 18 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_SLEEP>;
+               };
+       };
+
+       user_leds: user-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_user_leds>;
+               status = "disabled";
+
+               user-led1 {
+                       gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "gpio";
+                       default-state = "on";
+               };
+
+               user-led2 {
+                       gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "gpio";
+                       default-state = "on";
+               };
+
+               user-led3 {
+                       gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "gpio";
+                       default-state = "on";
+               };
+       };
+};
+
+&iomuxc {
+       pinctrl_gpio_keys: gpiokeysgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_DAT6__GPIO6_IO18         0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28       0x1b0b0
+               >;
+       };
+
+       pinctrl_user_leds: userledsgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_DAT4__GPIO7_IO01         0x1b0b0
+                       MX6QDL_PAD_SD3_DAT5__GPIO7_IO00         0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT11__GPIO5_IO29       0x1b0b0
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6qdl-phytec-mira-peb-wlbt-05.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-mira-peb-wlbt-05.dtsi
new file mode 100644 (file)
index 0000000..84f884d
--- /dev/null
@@ -0,0 +1,85 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 PHYTEC Messtechnik GmbH
+ * Author: Yunus Bas <y.bas@phytec.de>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       reg_wl_en: regulator-wl-en {
+               compatible = "regulator-fixed";
+               regulator-name = "wlan_en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_wl>;
+               gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               status = "disabled";
+       };
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3_bt>;
+       uart-has-rtscts;
+
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               shutdown-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio5 26 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+};
+
+&usdhc3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3_wl>;
+       vmmc-supply = <&reg_wl_en>;
+       bus-width = <4>;
+       non-removable;
+       no-1-8-v;
+       status = "disabled";
+
+       brmcf: wifi@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+       };
+};
+
+&iomuxc {
+       pinctrl_uart3_bt: uart3grp-bt {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D25__UART3_RX_DATA       0x1b0b1
+                       MX6QDL_PAD_EIM_D24__UART3_TX_DATA       0x1b0b1
+                       MX6QDL_PAD_EIM_EB3__UART3_RTS_B         0x1b0b1
+                       MX6QDL_PAD_EIM_D23__UART3_CTS_B         0x1b0b1
+                       MX6QDL_PAD_SD3_DAT5__GPIO7_IO00         0xb0b1  /* BT ENABLE */
+                       MX6QDL_PAD_SD3_DAT4__GPIO7_IO01         0xb0b1  /* DEV WAKEUP */
+                       MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26        0xb0b1  /* HOST WAKEUP */
+               >;
+       };
+
+       pinctrl_usdhc3_wl: usdhc3grp-wl {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_CMD__SD3_CMD             0x17059
+                       MX6QDL_PAD_SD3_CLK__SD3_CLK             0x10059
+                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0          0x17059
+                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1          0x17059
+                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2          0x17059
+                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3          0x17059
+               >;
+       };
+
+       pinctrl_wl: wlgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_A25__GPIO5_IO02      0xb0b1      /* WLAN ENABLE */
+               >;
+       };
+};
index b679bec..bfb67da 100644 (file)
@@ -4,6 +4,12 @@
  * Copyright 2013-2017 Markus Niebel <Markus.Niebel@tq-group.com>
  */
 
+&fec {
+       interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
+                             <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
+       fsl,err006687-workaround-present;
+};
+
 &i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c1>;
                pagesize = <32>;
        };
 };
+
+&iomuxc {
+       /*
+        * This pinmuxing is required for the ERR006687 workaround. Board
+        * DTS files that enable the FEC controller with
+        * fsl,err006687-workaround-present must include this group.
+        */
+       pinctrl_enet_fix: enetfixgrp {
+               fsl,pins = <
+                       /* ENET ping patch */
+                       MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
+               >;
+       };
+};
index 362e65c..bcc5bbc 100644 (file)
                &gpio3 19 GPIO_ACTIVE_HIGH
        >;
        status = "disabled";
-
-       spidev0: spi@0 {
-               compatible = "spidev";
-               reg = <0>;
-               spi-max-frequency = <54000000>;
-       };
-
-       spidev1: spi@1 {
-               compatible = "spidev";
-               reg = <1>;
-               spi-max-frequency = <54000000>;
-       };
 };
 
 &fec {
index f5de5de..d27beb4 100644 (file)
 
        clocks {
                ckil {
-                       compatible = "fsl,imx-ckil", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <32768>;
                };
 
                ckih1 {
-                       compatible = "fsl,imx-ckih1", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <0>;
                };
 
                osc {
-                       compatible = "fsl,imx-osc", "fixed-clock";
+                       compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <24000000>;
                };
                                        status = "okay";
                                };
 
-                               spba@203c000 {
+                               spba-bus@203c000 {
                                        reg = <0x0203c000 0x4000>;
                                };
                        };
diff --git a/arch/arm/boot/dts/imx6qp-mba6b.dts b/arch/arm/boot/dts/imx6qp-mba6b.dts
new file mode 100644 (file)
index 0000000..eee2e09
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright 2015-2021 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx6qp-tqma6b.dtsi"
+#include "imx6qdl-mba6.dtsi"
+#include "imx6qdl-mba6b.dtsi"
+#include "imx6q-mba6.dtsi"
+
+/ {
+       model = "TQ TQMa6QP on MBa6x";
+       compatible = "tq,imx6qp-mba6x-b", "tq,mba6b",
+                    "tq,imx6qp-tqma6qp-b", "fsl,imx6qp";
+};
index f27d7ab..a182665 100644 (file)
@@ -8,6 +8,9 @@
 #include "imx6qp.dtsi"
 #include "imx6qdl-phytec-phycore-som.dtsi"
 #include "imx6qdl-phytec-mira.dtsi"
+#include "imx6qdl-phytec-mira-peb-eval-01.dtsi"
+#include "imx6qdl-phytec-mira-peb-av-02.dtsi"
+#include "imx6qdl-phytec-mira-peb-wlbt-05.dtsi"
 
 / {
        model = "PHYTEC phyBOARD-Mira QuadPlus Carrier-Board with NAND";
diff --git a/arch/arm/boot/dts/imx6qp-yapp4-crux-plus.dts b/arch/arm/boot/dts/imx6qp-yapp4-crux-plus.dts
new file mode 100644 (file)
index 0000000..cea165f
--- /dev/null
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: GPL-2.0
+//
+// Copyright (C) 2021 Y Soft Corporation, a.s.
+
+/dts-v1/;
+
+#include "imx6qp.dtsi"
+#include "imx6dl-yapp4-common.dtsi"
+
+/ {
+       model = "Y Soft IOTA Crux+ i.MX6QuadPlus board";
+       compatible = "ysoft,imx6qp-yapp4-crux-plus", "fsl,imx6qp";
+
+       memory@10000000 {
+               device_type = "memory";
+               reg = <0x10000000 0xf0000000>;
+       };
+};
+
+&gpio_oled {
+       status = "okay";
+};
+
+&leds {
+       status = "okay";
+};
+
+&oled_1305 {
+       status = "okay";
+};
+
+&oled_1309 {
+       status = "okay";
+};
+
+&reg_usb_h1_vbus {
+       status = "okay";
+};
+
+&touchkeys {
+       status = "okay";
+};
+
+&uart2 {
+       status = "disabled";
+};
+
+&usbh1 {
+       status = "okay";
+};
+
+&usbphy2 {
+       status = "okay";
+};
index 935a77d..18cac19 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi4>;
        cs-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>, <&gpio4 3 GPIO_ACTIVE_LOW>;
        status = "okay";
-
-       spidev0: spi@0 {
-               compatible = "spidev";
-               reg = <0>;
-               spi-max-frequency = <5000000>;
-       };
-
-       spidev1: spi@1 {
-               compatible = "spidev";
-               reg = <1>;
-               spi-max-frequency = <5000000>;
-       };
 };
 
 &i2c1 {
index bff98e6..607eddc 100644 (file)
@@ -10,6 +10,7 @@
 #include "imx6ul-phytec-segin.dtsi"
 #include "imx6ul-phytec-segin-peb-eval-01.dtsi"
 #include "imx6ul-phytec-segin-peb-av-02.dtsi"
+#include "imx6ul-phytec-segin-peb-wlbt-05.dtsi"
 
 / {
        model = "PHYTEC phyBOARD-Segin i.MX6 UltraLite Full Featured with NAND";
diff --git a/arch/arm/boot/dts/imx6ul-phytec-segin-peb-wlbt-05.dtsi b/arch/arm/boot/dts/imx6ul-phytec-segin-peb-wlbt-05.dtsi
new file mode 100644 (file)
index 0000000..04477fd
--- /dev/null
@@ -0,0 +1,90 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 PHYTEC Messtechnik GmbH
+ * Author: Yunus Bas <y.bas@phytec.de>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       reg_wl_en: regulator-wl-en {
+               compatible = "regulator-fixed";
+               regulator-name = "wlan_en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_wl>;
+               gpio = <&gpio5 9 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               status = "disabled";
+       };
+};
+
+&iomuxc {
+       pinctrl_bt: btgrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0x3031  /* BT ENABLE */
+                       MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0x3031  /* HOST WAKEUP */
+                       MX6UL_PAD_JTAG_MOD__GPIO1_IO10          0x3031  /* DEV WAKEUP */
+               >;
+       };
+
+       pinctrl_uart2_bt: uart2grp-bt {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x17059
+                       MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x17059
+                       MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS    0x17059
+                       MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS    0x17059
+               >;
+       };
+
+       pinctrl_usdhc2_wl: usdhc2grp-wl {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA18__USDHC2_CMD    0x10051
+                       MX6UL_PAD_LCD_DATA19__USDHC2_CLK    0x10061
+                       MX6UL_PAD_LCD_DATA20__USDHC2_DATA0  0x10051
+                       MX6UL_PAD_LCD_DATA21__USDHC2_DATA1  0x10051
+                       MX6UL_PAD_LCD_DATA22__USDHC2_DATA2  0x10051
+                       MX6UL_PAD_LCD_DATA23__USDHC2_DATA3  0x10051
+               >;
+       };
+
+       pinctrl_wl: wlgrp {
+               fsl,pins = <
+                       MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09  0x3031      /* WLAN ENABLE */
+               >;
+       };
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2_bt &pinctrl_bt>;
+       uart-has-rtscts;
+       status = "disabled";
+
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               shutdown-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&usdhc2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2_wl>;
+       vmmc-supply = <&reg_wl_en>;
+       bus-width = <4>;
+       non-removable;
+       no-1-8-v;
+       status = "disabled";
+
+       brmcf: wifi@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+       };
+};
index d620157..c18390f 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi2>;
        status = "okay";
-
-       spi@0 {
-               compatible = "spidev";
-               reg = <0>;
-               spi-max-frequency = <1000000>;
-       };
 };
 
 &fec1 {
index 938a32c..c485d05 100644 (file)
                        &gpio1 10 GPIO_ACTIVE_HIGH
                >;
                status = "disabled";
-
-               spi@0 {
-                       compatible = "spidev";
-                       reg = <0>;
-                       spi-max-frequency = <660000>;
-               };
-
-               spi@1 {
-                       compatible = "spidev";
-                       reg = <1>;
-                       spi-max-frequency = <660000>;
-               };
        };
 
        sound {
                &gpio1 10 GPIO_ACTIVE_HIGH
        >;
        status = "disabled";
-
-       spidev0: spi@0 {
-               compatible = "spidev";
-               reg = <0>;
-               spi-max-frequency = <60000000>;
-       };
-
-       spidev1: spi@1 {
-               compatible = "spidev";
-               reg = <1>;
-               spi-max-frequency = <60000000>;
-       };
 };
 
 &fec1 {
diff --git a/arch/arm/boot/dts/imx6ull-jozacp.dts b/arch/arm/boot/dts/imx6ull-jozacp.dts
new file mode 100644 (file)
index 0000000..a152eeb
--- /dev/null
@@ -0,0 +1,456 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2020 Protonic Holland
+ * Copyright (c) 2020 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include "imx6ull.dtsi"
+
+/ {
+       model = "JOZ Access Point";
+       compatible = "joz,jozacp", "fsl,imx6ull";
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       /* On board name LED_RGB1 */
+       led-controller-1 {
+               compatible = "pwm-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <0>;
+                       pwms = <&pwm1 0 10000000 0>;
+                       max-brightness = <255>;
+               };
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <1>;
+                       pwms = <&pwm3 0 10000000 0>;
+                       max-brightness = <255>;
+               };
+
+               led-2 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <2>;
+                       pwms = <&pwm5 0 10000000 0>;
+                       max-brightness = <255>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       /* On board name LED_RGB2 */
+       led-controller-2 {
+               compatible = "pwm-leds";
+
+               led-3 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <3>;
+                       pwms = <&pwm2 0 10000000 0>;
+                       max-brightness = <255>;
+               };
+
+               led-4 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <4>;
+                       pwms = <&pwm4 0 10000000 0>;
+                       max-brightness = <255>;
+               };
+
+               led-5 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_INDICATOR;
+                       function-enumerator = <5>;
+                       pwms = <&pwm6 0 10000000 0>;
+                       max-brightness = <255>;
+               };
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&reg_5v0>;
+       };
+
+       reg_5v0: regulator-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_vbus: regulator-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_vbus>;
+               regulator-name = "vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&reg_5v0>;
+               gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       usdhc2_wifi_pwrseq: usdhc2-wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_wifi_npd>;
+               reset-gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1>;
+       status = "okay";
+};
+
+&cpu0 {
+       clock-frequency = <792000000>;
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy0>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       reg = <0>;
+                       clocks = <&clks IMX6UL_CLK_ENET_REF>;
+                       clock-names = "rmii-ref";
+                       interrupts-extended = <&gpio1 29 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <300>;
+               };
+       };
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       clock-frequency = <100000>;
+       status = "okay";
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+       };
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+       status = "okay";
+};
+
+&pwm2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm2>;
+       status = "okay";
+};
+
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+       status = "okay";
+};
+
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+       status = "okay";
+};
+
+&pwm5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm5>;
+       status = "okay";
+};
+
+&pwm6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm6>;
+       status = "okay";
+};
+
+&snvs_rtc {
+       status = "disabled";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       dtr-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg1>;
+       vbus-supply = <&reg_vbus>;
+       dr_mode = "host";
+       over-current-active-low;
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       vmmc-supply = <&reg_3v3>;
+       bus-width = <8>;
+       no-1-8-v;
+       non-removable;
+       cap-mmc-hw-reset;
+       no-sd;
+       no-sdio;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       mmc-pwrseq = <&usdhc2_wifi_pwrseq>;
+       bus-width = <4>;
+       no-1-8-v;
+       no-mmc;
+       no-sd;
+       non-removable;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       wifi@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       pinctrl_can1: can1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX      0x1b0b0
+                       MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX      0x1b0b0
+               >;
+       };
+
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO07__ENET1_MDC  0x1b0b0
+                       MX6UL_PAD_GPIO1_IO06__ENET1_MDIO        0x1b0b0
+                       MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER      0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b031
+
+                       MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28     0x038b0
+                       MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29     0x170b0
+               >;
+       };
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       /* HW Revision */
+                       MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08    0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09    0x1b0b0
+                       MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10       0x1b0b0
+
+                       /* HW ID */
+                       MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11    0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA1__GPIO2_IO12    0x1b0b0
+                       MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13       0x1b0b0
+                       MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15       0x1b0b0
+
+                       /* Digital inputs */
+                       MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0x11000
+                       MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0x11000
+                       MX6UL_PAD_GPIO1_IO05__GPIO1_IO05        0x11000
+                       MX6UL_PAD_GPIO1_IO08__GPIO1_IO08        0x11000
+                       MX6UL_PAD_GPIO1_IO09__GPIO1_IO09        0x11000
+
+                       /* Isolated outputs */
+                       MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20     0x01020
+                       MX6UL_PAD_UART2_RX_DATA__GPIO1_IO21     0x01020
+                       MX6UL_PAD_UART2_RTS_B__GPIO1_IO23       0x01020
+                       MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24     0x01020
+                       MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25     0x01020
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_MCLK__I2C1_SDA            0x4001f8b1
+                       MX6UL_PAD_CSI_PIXCLK__I2C1_SCL          0x4001f8b1
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART5_RX_DATA__I2C2_SDA       0x4001f8b1
+                       MX6UL_PAD_UART5_TX_DATA__I2C2_SCL       0x4001f8b1
+               >;
+       };
+
+       pinctrl_pwm1: pwm1grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA00__PWM1_OUT          0x01010
+               >;
+       };
+
+       pinctrl_pwm2: pwm2grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA01__PWM2_OUT          0x01010
+               >;
+       };
+
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA02__PWM3_OUT          0x01010
+               >;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA03__PWM4_OUT          0x01010
+               >;
+       };
+
+       pinctrl_pwm5: pwm5grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA18__PWM5_OUT          0x01010
+               >;
+       };
+
+       pinctrl_pwm6: pwm6grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA19__PWM6_OUT          0x01010
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_CLK__UART4_DCE_TX         0x1b0b0
+                       MX6UL_PAD_LCD_ENABLE__UART4_DCE_RX      0x1b0b0
+                       MX6UL_PAD_LCD_HSYNC__UART4_DCE_CTS      0x1b0b0
+                       MX6UL_PAD_LCD_VSYNC__UART4_DCE_RTS      0x1b0b0
+                       MX6UL_PAD_LCD_RESET__GPIO3_IO04         0x1b0b0
+               >;
+       };
+
+       pinctrl_usbotg1: usbotg1grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO01__USB_OTG1_OC       0x1b0b0
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_WP_B__USDHC1_RESET_B     0x17099
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x1f099
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x10099
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x17099
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x17099
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x17099
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x17099
+                       MX6UL_PAD_NAND_READY_B__USDHC1_DATA4    0x17099
+                       MX6UL_PAD_NAND_CE0_B__USDHC1_DATA5      0x17099
+                       MX6UL_PAD_NAND_CE1_B__USDHC1_DATA6      0x17099
+                       MX6UL_PAD_NAND_CLE__USDHC1_DATA7        0x17099
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_VSYNC__USDHC2_CLK         0x100b9
+                       MX6UL_PAD_CSI_HSYNC__USDHC2_CMD         0x170b9
+                       MX6UL_PAD_CSI_DATA00__USDHC2_DATA0      0x170b9
+                       MX6UL_PAD_CSI_DATA01__USDHC2_DATA1      0x170b9
+                       MX6UL_PAD_CSI_DATA02__USDHC2_DATA2      0x170b9
+                       MX6UL_PAD_CSI_DATA03__USDHC2_DATA3      0x170b9
+               >;
+       };
+
+       pinctrl_vbus: vbus0grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0x030b0
+               >;
+       };
+
+       pinctrl_wifi_npd: wifigrp {
+               fsl,pins = <
+                       /* WL_REG_ON */
+                       MX6UL_PAD_CSI_DATA04__GPIO4_IO25        0x03020
+               >;
+       };
+};
+
+&iomuxc_snvs {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_snvs_hog>;
+
+       pinctrl_snvs_hog: snvs-hog-grp {
+               fsl,pins = <
+                       /* Digital outputs */
+                       MX6ULL_PAD_SNVS_TAMPER2__GPIO5_IO02     0x00020
+                       MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03     0x00020
+                       MX6ULL_PAD_SNVS_TAMPER4__GPIO5_IO04     0x00020
+                       MX6ULL_PAD_SNVS_TAMPER5__GPIO5_IO05     0x00020
+                       MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06     0x00020
+
+                       /* Digital outputs fault feedback */
+                       MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00     0x17000
+                       MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01     0x17000
+                       MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07     0x17000
+                       MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08     0x17000
+                       MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09     0x17000
+               >;
+       };
+};
index c8d3eff..1d7362b 100644 (file)
@@ -10,6 +10,7 @@
 #include "imx6ull-phytec-segin.dtsi"
 #include "imx6ull-phytec-segin-peb-eval-01.dtsi"
 #include "imx6ull-phytec-segin-peb-av-02.dtsi"
+#include "imx6ull-phytec-segin-peb-wlbt-05.dtsi"
 
 / {
        model = "PHYTEC phyBOARD-Segin i.MX6 ULL Full Featured with NAND";
index e168494..4bcbae0 100644 (file)
@@ -9,6 +9,7 @@
 #include "imx6ull-phytec-phycore-som.dtsi"
 #include "imx6ull-phytec-segin.dtsi"
 #include "imx6ull-phytec-segin-peb-eval-01.dtsi"
+#include "imx6ull-phytec-segin-peb-wlbt-05.dtsi"
 
 / {
        model = "PHYTEC phyBOARD-Segin i.MX6 ULL Low Cost with NAND";
diff --git a/arch/arm/boot/dts/imx6ull-phytec-segin-peb-wlbt-05.dtsi b/arch/arm/boot/dts/imx6ull-phytec-segin-peb-wlbt-05.dtsi
new file mode 100644 (file)
index 0000000..df25814
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 PHYTEC Messtechnik GmbH
+ * Author: Yunus Bas <y.bas@phytec.de>
+ */
+
+#include "imx6ul-phytec-segin-peb-wlbt-05.dtsi"
+
+&iomuxc {
+       /delete-node/ wlgrp;
+};
+
+&iomuxc_snvs {
+       pinctrl_wl: wlgrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09     0x3031
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ulz-bsh-smm-m2.dts b/arch/arm/boot/dts/imx6ulz-bsh-smm-m2.dts
new file mode 100644 (file)
index 0000000..59bcfc9
--- /dev/null
@@ -0,0 +1,146 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 BSH Hausgeraete GmbH
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include "imx6ulz.dtsi"
+
+/ {
+       model = "BSH SMM M2";
+       compatible = "bsh,imx6ulz-bsh-smm-m2", "fsl,imx6ull", "fsl,imx6ulz";
+
+       chosen {
+               stdout-path = &uart4;
+       };
+
+       usdhc2_pwrseq: usdhc2-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand>;
+       nand-on-flash-bbt;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm4330-bt";
+               max-speed = <3000000>;
+               shutdown-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "peripheral";
+       srp-disable;
+       hnp-disable;
+       adp-disable;
+       status = "okay";
+};
+
+&usbphy1 {
+       fsl,tx-d-cal = <106>;
+};
+
+&usdhc2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wlan>;
+       bus-width = <4>;
+       no-1-8-v;
+       non-removable;
+       cap-power-off-card;
+       keep-power-in-suspend;
+       cap-sdio-irq;
+       mmc-pwrseq = <&usdhc2_pwrseq>;
+       status = "okay";
+
+       brcmf: wifi@1 {
+               reg = <1>;
+               compatible = "brcm,bcm4329-fmac";
+               interrupt-parent = <&gpio1>;
+               interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+       };
+};
+
+&wdog1 {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_gpmi_nand: gpmi-nand {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_CLE__RAWNAND_CLE         0xb0b1
+                       MX6UL_PAD_NAND_ALE__RAWNAND_ALE         0xb0b1
+                       MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B       0xb0b1
+                       MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0xb000
+                       MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B     0xb0b1
+                       MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B       0xb0b1
+                       MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B       0xb0b1
+                       MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00   0xb0b1
+                       MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01   0xb0b1
+                       MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02   0xb0b1
+                       MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03   0xb0b1
+                       MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04   0xb0b1
+                       MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05   0xb0b1
+                       MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06   0xb0b1
+                       MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07   0xb0b1
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX   0x1b099
+                       MX6UL_PAD_UART3_RTS_B__UART3_DCE_RTS    0x1b0b1
+                       MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS    0x1b099
+                       MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0x79            /* BT_REG_ON */
+                       MX6UL_PAD_SD1_CLK__GPIO2_IO17           0x100b1         /* BT_DEV_WAKE out */
+                       MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13       0x1b0b0         /* BT_HOST_WAKE in */
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_wlan: wlangrp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_HSYNC__USDHC2_CMD         0x17059
+                       MX6UL_PAD_CSI_VSYNC__USDHC2_CLK         0x10059
+                       MX6UL_PAD_CSI_DATA00__USDHC2_DATA0      0x17059
+                       MX6UL_PAD_CSI_DATA01__USDHC2_DATA1      0x17059
+                       MX6UL_PAD_CSI_DATA02__USDHC2_DATA2      0x17059
+                       MX6UL_PAD_CSI_DATA03__USDHC2_DATA3      0x17059
+                       MX6UL_PAD_SD1_DATA3__GPIO2_IO21         0x79            /* WL_REG_ON */
+                       MX6UL_PAD_UART2_CTS_B__GPIO1_IO22       0x100b1         /* WL_DEV_WAKE - WiFi_GPIO_4 - WiFi FW UART */
+                       MX6UL_PAD_UART1_CTS_B__GPIO1_IO18       0x1b0b1         /* WL_HOST_WAKE - WIFI_GPIO_0 - OOB IRQ */
+                       MX6UL_PAD_ENET1_RX_EN__OSC32K_32K_OUT   0x4001b031      /* OSC 32Khz wifi clk in */
+               >;
+       };
+};
index 89cbf13..a2a91bf 100644 (file)
                startup-delay-us = <150>;
        };
 
+       reg_digitizer: regulator-digitizer {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_3V3_DIGITIZER";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               pinctrl-names = "default", "sleep";
+               pinctrl-0 = <&pinctrl_digitizer_reg>;
+               pinctrl-1 = <&pinctrl_digitizer_reg>;
+               gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100000>; /* 100 ms */
+       };
+
        wifi_pwrseq: wifi_pwrseq {
                compatible = "mmc-pwrseq-simple";
                pinctrl-names = "default";
        assigned-clock-rates = <0>, <32768>;
 };
 
+&i2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       wacom_digitizer: digitizer@9 {
+               compatible = "hid-over-i2c";
+               reg = <0x09>;
+               hid-descr-addr = <0x01>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_wacom>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
+               touchscreen-inverted-x;
+               touchscreen-inverted-y;
+               vdd-supply = <&reg_digitizer>;
+       };
+};
+
 &snvs_pwrkey {
        status = "okay";
 };
        fsl,ext-reset-output;
 };
 
+&iomuxc_lpsr {
+       pinctrl_digitizer_reg: digitizerreggrp {
+               fsl,pins = <
+                       /* DIGITIZER_PWR_EN */
+                       MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6     0x14
+               >;
+       };
+
+       pinctrl_wacom: wacomgrp {
+               fsl,pins = <
+                       /*MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5   0x00000014 FWE */
+                       MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4     0x00000074 /* PDCTB */
+                       MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1     0x00000034 /* WACOM INT */
+                       /*MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6   0x00000014 WACOM PWR ENABLE */
+                       /*MX7D_PAD_LPSR_GPIO1_IO00__GPIO1_IO0   0x00000074 WACOM RESET */
+               >;
+       };
+};
+
 &iomuxc {
        pinctrl_brcm_reg: brcmreggrp {
                fsl,pins = <
                >;
        };
 
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C1_SDA__I2C1_SDA             0x4000007f
+                       MX7D_PAD_I2C1_SCL__I2C1_SCL             0x4000007f
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x79
index 569bbd8..4f1edef 100644 (file)
 
 &mipi_csi {
        clock-frequency = <166000000>;
-       fsl,csis-hs-settle = <3>;
        status = "okay";
 
-       port@0 {
-               reg = <0>;
+       ports {
+               port@0 {
+                       reg = <0>;
 
-               mipi_from_sensor: endpoint {
-                       remote-endpoint = <&ov2680_to_mipi>;
-                       data-lanes = <1>;
+                       mipi_from_sensor: endpoint {
+                               remote-endpoint = <&ov2680_to_mipi>;
+                               data-lanes = <1>;
+                       };
                };
-
        };
 };
 
index 1843fc0..52a9aee 100644 (file)
                        mipi_csi: mipi-csi@30750000 {
                                compatible = "fsl,imx7-mipi-csi2";
                                reg = <0x30750000 0x10000>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
                                interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX7D_IPG_ROOT_CLK>,
                                         <&clks IMX7D_MIPI_CSI_ROOT_CLK>,
                                power-domains = <&pgc_mipi_phy>;
                                phy-supply = <&reg_1p0d>;
                                resets = <&src IMX7_RESET_MIPI_PHY_MRST>;
-                               reset-names = "mrst";
                                status = "disabled";
 
-                               port@0 {
-                                       reg = <0>;
-                               };
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
 
-                               port@1 {
-                                       reg = <1>;
+                                       port@0 {
+                                               reg = <0>;
+                                       };
 
-                                       mipi_vc0_to_csi_mux: endpoint {
-                                               remote-endpoint = <&csi_mux_from_mipi_vc0>;
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mipi_vc0_to_csi_mux: endpoint {
+                                                       remote-endpoint = <&csi_mux_from_mipi_vc0>;
+                                               };
                                        };
                                };
                        };
index 598586f..b740403 100644 (file)
                                        fis-index-block = <0x1f>;
                                };
                        };
+
+                       /* Small syscon with some LEDs at CS2 */
+                       syscon@2,0 {
+                               compatible = "freecom,fsg-cs2-system-controller", "syscon";
+                               reg = <2 0x0 0x200>;
+                               reg-io-width = <2>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <2 0x0 0x0 0x200>;
+
+                               led@0,0 {
+                                       compatible = "register-bit-led";
+                                       reg = <0x00 0x02>;
+                                       mask = <0x01>;
+                                       label = "fsg:blue:wlan";
+                                       linux,default-trigger = "wlan";
+                                       default-state = "on";
+                               };
+                               led@0,1 {
+                                       compatible = "register-bit-led";
+                                       reg = <0x00 0x02>;
+                                       mask = <0x02>;
+                                       label = "fsg:blue:wan";
+                                       linux,default-trigger = "";
+                                       default-state = "on";
+                               };
+                               led@0,2 {
+                                       compatible = "register-bit-led";
+                                       reg = <0x00 0x02>;
+                                       mask = <0x04>;
+                                       label = "fsg:blue:sata";
+                                       linux,default-trigger = "";
+                                       default-state = "on";
+                               };
+                               led@0,3 {
+                                       compatible = "register-bit-led";
+                                       reg = <0x00 0x02>;
+                                       mask = <0x04>;
+                                       label = "fsg:blue:usb";
+                                       linux,default-trigger = "";
+                                       default-state = "on";
+                               };
+                               led@0,4 {
+                                       compatible = "register-bit-led";
+                                       reg = <0x00 0x02>;
+                                       mask = <0x08>;
+                                       label = "fsg:blue:sync";
+                                       linux,default-trigger = "";
+                                       default-state = "on";
+                               };
+                               led@0,5 {
+                                       compatible = "register-bit-led";
+                                       reg = <0x00 0x02>;
+                                       mask = <0x10>;
+                                       label = "fsg:blue:ring";
+                                       linux,default-trigger = "";
+                                       default-state = "on";
+                               };
+                       };
                };
 
                pci@c0000000 {
diff --git a/arch/arm/boot/dts/intel-ixp42x-gateway-7001.dts b/arch/arm/boot/dts/intel-ixp42x-gateway-7001.dts
new file mode 100644 (file)
index 0000000..a1c03c9
--- /dev/null
@@ -0,0 +1,111 @@
+// SPDX-License-Identifier: ISC
+/*
+ * Device Tree file for Gateway 7001 AP
+ * Derived from boardfiles written by Imre Kaloz
+ */
+
+/dts-v1/;
+
+#include "intel-ixp42x.dtsi"
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Gateway 7001 AP";
+       compatible = "gateway,7001", "intel,ixp42x";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       memory@0 {
+               /* 32 MB SDRAM */
+               device_type = "memory";
+               reg = <0x00000000 0x2000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+               stdout-path = "uart1:115200n8";
+       };
+
+       aliases {
+               /* second UART is the primary console */
+               serial0 = &uart1;
+               serial1 = &uart0;
+       };
+
+       soc {
+               bus@c4000000 {
+                       flash@0,0 {
+                               compatible = "intel,ixp4xx-flash", "cfi-flash";
+                               bank-width = <2>;
+                               /*
+                                * 8 MB of flash
+                                */
+                               reg = <0 0x00000000 0x800000>;
+
+                               /* Configure expansion bus to allow writes */
+                               intel,ixp4xx-eb-write-enable = <1>;
+
+                               partitions {
+                                       compatible = "redboot-fis";
+                                       /* Eraseblock at 0x7e0000 */
+                                       fis-index-block = <0x3f>;
+                               };
+                       };
+               };
+
+               pci@c0000000 {
+                       status = "ok";
+
+                       /*
+                        * Taken from Gateway 7001 PCI boardfile (gateway7001-pci.c)
+                        * We have slots (IDSEL) 1 and 2 with one assigned IRQ
+                        * each handling all IRQs.
+                        */
+                       interrupt-map =
+                       /* IDSEL 1 */
+                       <0x0800 0 0 1 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 1 is irq 11 */
+                       <0x0800 0 0 2 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 1 is irq 11 */
+                       <0x0800 0 0 3 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 1 is irq 11 */
+                       <0x0800 0 0 4 &gpio0 11 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 1 is irq 11 */
+                       /* IDSEL 2 */
+                       <0x1000 0 0 1 &gpio0 10 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 2 is irq 10 */
+                       <0x1000 0 0 2 &gpio0 10 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 2 is irq 10 */
+                       <0x1000 0 0 3 &gpio0 10 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 2 is irq 10 */
+                       <0x1000 0 0 4 &gpio0 10 IRQ_TYPE_LEVEL_LOW>; /* INT D on slot 2 is irq 10 */
+               };
+
+               ethernet@c8009000 {
+                       status = "ok";
+                       queue-rx = <&qmgr 3>;
+                       queue-txready = <&qmgr 20>;
+                       phy-mode = "rgmii";
+                       phy-handle = <&phy1>;
+
+                       mdio {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               phy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
+                       };
+               };
+
+               ethernet@c800a000 {
+                       status = "ok";
+                       queue-rx = <&qmgr 4>;
+                       queue-txready = <&qmgr 21>;
+                       phy-mode = "rgmii";
+                       phy-handle = <&phy2>;
+
+                       mdio {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               phy2: ethernet-phy@2 {
+                                       reg = <2>;
+                               };
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/intel-ixp42x-goramo-multilink.dts b/arch/arm/boot/dts/intel-ixp42x-goramo-multilink.dts
new file mode 100644 (file)
index 0000000..f80388b
--- /dev/null
@@ -0,0 +1,180 @@
+// SPDX-License-Identifier: ISC
+/*
+ * Device Tree file for the Goramo MultiLink Router
+ * There are two variants:
+ * - MultiLink Basic (a box)
+ * - MultiLink Max (19" rack mount)
+ * This device tree supports MultiLink Basic.
+ * This machine is based on IXP425.
+ * This is one of the few devices supporting the IXP4xx High-Speed Serial
+ * (HSS) link for a V.35 WAN interface.
+ * The hardware originates in Poland.
+ */
+
+/dts-v1/;
+
+#include "intel-ixp42x.dtsi"
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "Goramo MultiLink Router";
+       compatible = "goramo,multilink-router", "intel,ixp42x";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       memory@0 {
+               /*
+                * 64 MB of RAM according to the manual. The MultiLink
+                * Max has 128 MB.
+                */
+               device_type = "memory";
+               reg = <0x00000000 0x4000000>;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+               stdout-path = "uart0:115200n8";
+       };
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
+
+       /*
+        * 74HC4094 which is used as a rudimentary GPIO expander
+        * FIXME:
+        * - Create device tree bindings for this as GPIO expander
+        * - Write a pure DT GPIO driver using these bindings
+        * - Support cascading in the style of gpio-74x164.c (cannot be reused, very different)
+        */
+       gpio_74: gpio-74hc4094 {
+               compatible = "nxp,74hc4094";
+               cp-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
+               d-gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
+               str-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+               /* oe-gpios is optional */
+               gpio-controller;
+               #gpio-cells = <2>;
+               /* We are not cascaded */
+               registers-number = <1>;
+               gpio-line-names = "CONTROL_HSS0_CLK_INT", "CONTROL_HSS1_CLK_INT", "CONTROL_HSS0_DTR_N",
+                               "CONTROL_HSS1_DTR_N", "CONTROL_EXT", "CONTROL_AUTO_RESET",
+                               "CONTROL_PCI_RESET_N", "CONTROL_EEPROM_WC_N";
+       };
+
+       soc {
+               bus@c4000000 {
+                       flash@0,0 {
+                               compatible = "intel,ixp4xx-flash", "cfi-flash";
+                               bank-width = <2>;
+                               /* Enable writes on the expansion bus */
+                               intel,ixp4xx-eb-write-enable = <1>;
+                               /* 16 MB of Flash mapped in at CS0 */
+                               reg = <0 0x00000000 0x1000000>;
+
+                               partitions {
+                                       compatible = "redboot-fis";
+                                       /* Eraseblock at 0x0fe0000 */
+                                       fis-index-block = <0x7f>;
+                               };
+                       };
+               };
+
+               pci@c0000000 {
+                       status = "ok";
+
+                       /*
+                        * The device has 4 slots (IDSEL) with one dedicated IRQ per slot.
+                        * The slots have Ethernet, Ethernet, NEC and MPCI.
+                        * The IDSELs are 11, 12, 13, 14.
+                        */
+                       interrupt-map =
+                       /* IDSEL 11 - Ethernet A */
+                       <0x5800 0 0 1 &gpio0 4 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 11 is irq 4 */
+                       <0x5800 0 0 2 &gpio0 4 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 11 is irq 4 */
+                       <0x5800 0 0 3 &gpio0 4 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 11 is irq 4 */
+                       <0x5800 0 0 4 &gpio0 4 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 11 is irq 4 */
+                       /* IDSEL 12 - Ethernet B */
+                       <0x6000 0 0 1 &gpio0 5 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 12 is irq 5 */
+                       <0x6000 0 0 2 &gpio0 5 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 12 is irq 5 */
+                       <0x6000 0 0 3 &gpio0 5 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 12 is irq 5 */
+                       <0x6000 0 0 4 &gpio0 5 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 12 is irq 5 */
+                       /* IDSEL 13 - MPCI */
+                       <0x6800 0 0 1 &gpio0 12 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 13 is irq 12 */
+                       <0x6800 0 0 2 &gpio0 12 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 13 is irq 12 */
+                       <0x6800 0 0 3 &gpio0 12 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 13 is irq 12 */
+                       <0x6800 0 0 4 &gpio0 12 IRQ_TYPE_LEVEL_LOW>, /* INT D on slot 13 is irq 12 */
+                       /* IDSEL 14 - NEC */
+                       <0x7000 0 0 1 &gpio0 3 IRQ_TYPE_LEVEL_LOW>, /* INT A on slot 14 is irq 3 */
+                       <0x7000 0 0 2 &gpio0 3 IRQ_TYPE_LEVEL_LOW>, /* INT B on slot 14 is irq 3 */
+                       <0x7000 0 0 3 &gpio0 3 IRQ_TYPE_LEVEL_LOW>, /* INT C on slot 14 is irq 3 */
+                       <0x7000 0 0 4 &gpio0 3 IRQ_TYPE_LEVEL_LOW>; /* INT D on slot 14 is irq 3 */
+               };
+
+               /* HSS links */
+               npe@c8006000 {
+                       hss@0 {
+                               status = "okay";
+                               intel,queue-chl-rxtrig = <&qmgr 12>;
+                               intel,queue-chl-txready = <&qmgr 34>;
+                               intel,queue-pkt-rx = <&qmgr 13>;
+                               intel,queue-pkt-tx = <&qmgr 14>, <&qmgr 15>, <&qmgr 16>, <&qmgr 17>;
+                               intel,queue-pkt-rxfree = <&qmgr 18>, <&qmgr 19>, <&qmgr 20>, <&qmgr 21>;
+                               intel,queue-pkt-txdone = <&qmgr 22>;
+                               /* The Goramo GPIO-based clock etc control */
+                               cts-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
+                               rts-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
+                               dcd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
+                               dtr-gpios = <&gpio_74 2 GPIO_ACTIVE_LOW>;
+                               clk-internal-gpios = <&gpio_74 0 GPIO_ACTIVE_HIGH>;
+                       };
+                       hss@1 {
+                               status = "okay";
+                               intel,queue-chl-rxtrig = <&qmgr 10>;
+                               intel,queue-chl-txready = <&qmgr 35>;
+                               intel,queue-pkt-rx = <&qmgr 0>;
+                               intel,queue-pkt-tx = <&qmgr 5>, <&qmgr 6>, <&qmgr 7>, <&qmgr 8>;
+                               intel,queue-pkt-rxfree = <&qmgr 1>, <&qmgr 2>, <&qmgr 3>, <&qmgr 4>;
+                               intel,queue-pkt-txdone = <&qmgr 9>;
+                               /* The Goramo GPIO-based clock etc control */
+                               cts-gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
+                               rts-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
+                               dcd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
+                               dtr-gpios = <&gpio_74 3 GPIO_ACTIVE_LOW>;
+                               clk-internal-gpios = <&gpio_74 1 GPIO_ACTIVE_HIGH>;
+                       };
+               };
+
+               /* EthB */
+               ethernet@c8009000 {
+                       status = "ok";
+                       queue-rx = <&qmgr 3>;
+                       queue-txready = <&qmgr 32>;
+                       phy-mode = "rgmii";
+                       phy-handle = <&phy0>;
+
+                       mdio {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               phy0: ethernet-phy@0 {
+                                       reg = <0>;
+                               };
+
+                               phy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
+                       };
+               };
+
+               /* EthC */
+               ethernet@c800a000 {
+                       status = "ok";
+                       queue-rx = <&qmgr 4>;
+                       queue-txready = <&qmgr 33>;
+                       phy-mode = "rgmii";
+                       phy-handle = <&phy1>;
+               };
+       };
+};
index 46fede0..51a716c 100644 (file)
                npe: npe@c8006000 {
                        compatible = "intel,ixp4xx-network-processing-engine";
                        reg = <0xc8006000 0x1000>, <0xc8007000 0x1000>, <0xc8008000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* NPE-A contains two high-speed serial links */
+                       hss@0 {
+                               compatible = "intel,ixp4xx-hss";
+                               reg = <0>;
+                               intel,npe-handle = <&npe 0>;
+                               status = "disabled";
+                       };
+
+                       hss@1 {
+                               compatible = "intel,ixp4xx-hss";
+                               reg = <1>;
+                               intel,npe-handle = <&npe 0>;
+                               status = "disabled";
+                       };
 
                        /* NPE-C contains a crypto accelerator */
                        crypto {
index aa7c6ca..75f0c0a 100644 (file)
                              <0x1d002000 0x1000>; /* CPU I/f base and size */
                };
 
+               clk: clock-ctrl@1d021000 {
+                       compatible = "socionext,milbeaut-m10v-ccu";
+                       #clock-cells = <1>;
+                       reg = <0x1d021000 0x1000>;
+                       clocks = <&uclk40xi>;
+               };
+
                timer@1e000050 { /* 32-bit Reload Timers */
                        compatible = "socionext,milbeaut-timer";
                        reg = <0x1e000050 0x20>;
                        interrupts = <0 91 4>;
+                       clocks = <&clk 4>;
                };
 
                uart1: serial@1e700010 { /* PE4, PE5 */
@@ -77,6 +85,7 @@
                        reg = <0x1e700010 0x10>;
                        interrupts = <0 141 0x4>, <0 149 0x4>;
                        interrupt-names = "rx", "tx";
+                       clocks = <&clk 2>;
                };
 
        };
index a4423ff..c7a1f3f 100644 (file)
        #address-cells = <1>;
        #size-cells = <0>;
        wlcore: wlcore@2 {
-               compatible = "ti,wl1285", "ti,wl1283";
+               compatible = "ti,wl1285";
                reg = <2>;
                /* gpio_100 with gpmc_wait2 pad as wakeirq */
                interrupts-extended = <&gpio4 4 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/arch/arm/boot/dts/mt6589-fairphone-fp1.dts b/arch/arm/boot/dts/mt6589-fairphone-fp1.dts
new file mode 100644 (file)
index 0000000..c952347
--- /dev/null
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
+ */
+
+/dts-v1/;
+#include "mt6589.dtsi"
+
+/ {
+       model = "Fairphone 1";
+       compatible = "fairphone,fp1", "mediatek,mt6589";
+
+       chosen {
+               stdout-path = &uart3;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x40000000>;
+       };
+};
+
+&cpus {
+       /* SMP is not stable on this board, makes the kernel panic */
+       /delete-property/ enable-method;
+};
+
+&uart3 {
+       status = "okay";
+};
index 70df00a..c6babc8 100644 (file)
@@ -14,7 +14,7 @@
        compatible = "mediatek,mt6589";
        interrupt-parent = <&sysirq>;
 
-       cpus {
+       cpus: cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                enable-method = "mediatek,mt6589-smp";
index 580bfa1..7f440d1 100644 (file)
 &mcspi1 {
        pinctrl-names = "default";
        pinctrl-0 = <&mcspi1_pins>;
-
-       spidev@0 {
-               compatible = "spidev";
-               spi-max-frequency = <48000000>;
-               reg = <0>;
-               spi-cpha;
-       };
 };
 
 &mcspi3 {
        pinctrl-names = "default";
        pinctrl-0 = <&mcspi3_pins>;
-
-       spidev@0 {
-               compatible = "spidev";
-               spi-max-frequency = <48000000>;
-               reg = <0>;
-               spi-cpha;
-       };
 };
 
 #include "twl4030.dtsi"
diff --git a/arch/arm/boot/dts/openbmc-flash-layout-64-alt.dtsi b/arch/arm/boot/dts/openbmc-flash-layout-64-alt.dtsi
new file mode 100644 (file)
index 0000000..6505258
--- /dev/null
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2020 Bytedance.
+ */
+
+partitions {
+       compatible = "fixed-partitions";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       u-boot@0 {
+               reg = <0x0 0xe0000>; // 896KB
+               label = "alt-u-boot";
+       };
+
+       u-boot-env@e0000 {
+               reg = <0xe0000 0x20000>; // 128KB
+               label = "alt-u-boot-env";
+       };
+
+       kernel@100000 {
+               reg = <0x100000 0x900000>; // 9MB
+               label = "alt-kernel";
+       };
+
+       rofs@a00000 {
+               reg = <0xa00000 0x2000000>; // 32MB
+               label = "alt-rofs";
+       };
+
+       rwfs@6000000 {
+               reg = <0x2a00000 0x1600000>; // 22MB
+               label = "alt-rwfs";
+       };
+};
diff --git a/arch/arm/boot/dts/qcom-apq8016-sbc.dts b/arch/arm/boot/dts/qcom-apq8016-sbc.dts
new file mode 100644 (file)
index 0000000..4ccd2dc
--- /dev/null
@@ -0,0 +1,2 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include "arm64/qcom/apq8016-sbc.dts"
index f8c97ef..0cee62c 100644 (file)
@@ -19,7 +19,6 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
 
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_keys_pin_a>;
index ff1bdb1..7dec055 100644 (file)
                };
 
                usb3: usb3@8af8800 {
-                       compatible = "qcom,dwc3";
+                       compatible = "qcom,ipq4019-dwc3", "qcom,dwc3";
                        reg = <0x8af8800 0x100>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                };
 
                usb2: usb2@60f8800 {
-                       compatible = "qcom,dwc3";
+                       compatible = "qcom,ipq4019-dwc3", "qcom,dwc3";
                        reg = <0x60f8800 0x100>;
                        #address-cells = <1>;
                        #size-cells = <1>;
index 1148131..996f445 100644 (file)
                };
 
                usb3_0: usb3@100f8800 {
-                       compatible = "qcom,dwc3", "syscon";
+                       compatible = "qcom,ipq8064-dwc3", "qcom,dwc3";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        reg = <0x100f8800 0x8000>;
                };
 
                usb3_1: usb3@110f8800 {
-                       compatible = "qcom,dwc3", "syscon";
+                       compatible = "qcom,ipq8064-dwc3", "qcom,dwc3";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        reg = <0x110f8800 0x8000>;
index 942e3a2..0827de5 100644 (file)
 
 &gsbi3_spi {
        spi@0 {
-               compatible = "swir,mangoh-iotport-spi", "spidev";
+               compatible = "swir,mangoh-iotport-spi";
                spi-max-frequency = <24000000>;
                reg = <0>;
        };
index ea15b64..6d77e0f 100644 (file)
@@ -20,7 +20,6 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
 
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_keys_pin_a>;
index 30ee913..0691361 100644 (file)
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
 
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_keys_pin_a>;
index 003f0fa..96e1c97 100644 (file)
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
 
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_keys_pin_a>;
index 398a3ea..79e2cfb 100644 (file)
@@ -20,7 +20,6 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
 
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_keys_pin_a>;
index b4dd85b..e66937e 100644 (file)
@@ -20,7 +20,6 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
 
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_keys_pin_a>;
index 9743bee..a62e5c2 100644 (file)
@@ -20,7 +20,6 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
 
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_keys_pin_a>;
index 2ffcd08..7ed8feb 100644 (file)
        status = "ok";
 };
 
+&ipa {
+       status = "okay";
+
+       memory-region = <&ipa_fw_mem>;
+};
+
 &qpic_bam {
        status = "ok";
 };
index 80c40da..a4fa468 100644 (file)
        status = "ok";
 };
 
+&ipa {
+       status = "okay";
+
+       memory-region = <&ipa_fw_mem>;
+};
+
+&pcie0_phy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l1e_bb_1p2>;
+       vdda-pll-supply = <&vreg_l4e_bb_0p875>;
+};
+
+&pcie_ep {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_ep_clkreq_default &pcie_ep_perst_default
+                    &pcie_ep_wake_default>;
+};
+
 &qpic_bam {
        status = "ok";
 };
        memory-region = <&mpss_adsp_mem>;
 };
 
+&tlmm {
+       pcie_ep_clkreq_default: pcie_ep_clkreq_default {
+               mux {
+                       pins = "gpio56";
+                       function = "pcie_clkreq";
+               };
+               config {
+                       pins = "gpio56";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
+       pcie_ep_perst_default: pcie_ep_perst_default {
+               mux {
+                       pins = "gpio57";
+                       function = "gpio";
+               };
+               config {
+                       pins = "gpio57";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+       };
+
+       pcie_ep_wake_default: pcie_ep_wake_default {
+               mux {
+                       pins = "gpio53";
+                       function = "gpio";
+               };
+               config {
+                       pins = "gpio53";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+};
+
 &usb_hsphy {
        status = "okay";
        vdda-pll-supply = <&vreg_l4e_bb_0p875>;
index 44526ad..5d769b3 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <dt-bindings/clock/qcom,gcc-sdx55.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,sdx55.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
                        status = "disabled";
                };
 
+               pcie0_phy: phy@1c07000 {
+                       compatible = "qcom,sdx55-qmp-pcie-phy";
+                       reg = <0x01c07000 0x1c4>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_AUX_PHY_CLK_SRC>,
+                                <&gcc GCC_PCIE_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_CLKREF_CLK>,
+                                <&gcc GCC_PCIE_RCHNG_PHY_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+                       resets = <&gcc GCC_PCIE_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE_RCHNG_PHY_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie0_lane: lanes@1c06000 {
+                               reg = <0x01c06000 0x104>, /* tx0 */
+                                     <0x01c06200 0x328>, /* rx0 */
+                                     <0x01c07200 0x1e8>, /* pcs */
+                                     <0x01c06800 0x104>, /* tx1 */
+                                     <0x01c06a00 0x328>, /* rx1 */
+                                     <0x01c07600 0x800>; /* pcs_misc */
+                               clocks = <&gcc GCC_PCIE_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #phy-cells = <0>;
+                               clock-output-names = "pcie_pipe_clk";
+                       };
+               };
+
                ipa: ipa@1e40000 {
                        compatible = "qcom,sdx55-ipa";
 
                        #hwlock-cells = <1>;
                };
 
+               tcsr: syscon@1fcb000 {
+                       compatible = "syscon";
+                       reg = <0x01fc0000 0x1000>;
+               };
+
                sdhc_1: sdhci@8804000 {
                        compatible = "qcom,sdx55-sdhci", "qcom,sdhci-msm-v5";
                        reg = <0x08804000 0x1000>;
                        status = "disabled";
                };
 
+               pcie_ep: pcie-ep@40000000 {
+                       compatible = "qcom,sdx55-pcie-ep";
+                       reg = <0x01c00000 0x3000>,
+                             <0x40000000 0xf1d>,
+                             <0x40000f20 0xc8>,
+                             <0x40001000 0x1000>,
+                             <0x40002000 0x10000>,
+                             <0x01c03000 0x3000>;
+                       reg-names = "parf", "dbi", "elbi", "atu", "addr_space",
+                                   "mmio";
+
+                       qcom,perst-regs = <&tcsr 0xb258 0xb270>;
+
+                       clocks = <&gcc GCC_PCIE_AUX_CLK>,
+                                <&gcc GCC_PCIE_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_PCIE_SLEEP_CLK>,
+                                <&gcc GCC_PCIE_0_CLKREF_CLK>;
+                       clock-names = "aux", "cfg", "bus_master", "bus_slave",
+                                     "slave_q2a", "sleep", "ref";
+
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "global", "doorbell";
+                       reset-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
+                       wake-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
+                       resets = <&gcc GCC_PCIE_BCR>;
+                       reset-names = "core";
+                       power-domains = <&gcc PCIE_GDSC>;
+                       phys = <&pcie0_lane>;
+                       phy-names = "pciephy";
+                       max-link-speed = <3>;
+                       num-lanes = <2>;
+
+                       status = "disabled";
+               };
+
                remoteproc_mpss: remoteproc@4080000 {
                        compatible = "qcom,sdx55-mpss-pas";
                        reg = <0x04080000 0x4040>;
diff --git a/arch/arm/boot/dts/qcom-sdx65-mtp.dts b/arch/arm/boot/dts/qcom-sdx65-mtp.dts
new file mode 100644 (file)
index 0000000..59457da
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+/dts-v1/;
+
+#include "qcom-sdx65.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. SDX65 MTP";
+       compatible = "qcom,sdx65-mtp", "qcom,sdx65";
+       qcom,board-id = <0x2010008 0x302>;
+
+       aliases {
+               serial0 = &blsp1_uart3;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&blsp1_uart3 {
+       status = "ok";
+};
diff --git a/arch/arm/boot/dts/qcom-sdx65.dtsi b/arch/arm/boot/dts/qcom-sdx65.dtsi
new file mode 100644 (file)
index 0000000..796641d
--- /dev/null
@@ -0,0 +1,222 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * SDX65 SoC device tree source
+ *
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
+ */
+
+#include <dt-bindings/clock/qcom,gcc-sdx65.h>
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+
+/ {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       qcom,msm-id = <458 0x10000>, <483 0x10000>, <509 0x10000>;
+       interrupt-parent = <&intc>;
+
+       memory {
+               device_type = "memory";
+               reg = <0 0>;
+       };
+
+       clocks {
+               xo_board: xo-board {
+                       compatible = "fixed-clock";
+                       clock-frequency = <76800000>;
+                       clock-output-names = "xo_board";
+                       #clock-cells = <0>;
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32764>;
+                       clock-output-names = "sleep_clk";
+                       #clock-cells = <0>;
+               };
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x0>;
+                       enable-method = "psci";
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       reserved_memory: reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               cmd_db: reserved-memory@8fee0000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0x8fee0000 0x20000>;
+                       no-map;
+               };
+       };
+
+       soc: soc {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               compatible = "simple-bus";
+
+               gcc: clock-controller@100000 {
+                       compatible = "qcom,gcc-sdx65";
+                       reg = <0x00100000 0x001f7400>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>;
+                       clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
+               blsp1_uart3: serial@831000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x00831000 0x200>;
+                       interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               tlmm: pinctrl@f100000 {
+                       compatible = "qcom,sdx65-tlmm";
+                       reg = <0xf100000 0x300000>;
+                       interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&tlmm 0 0 109>;
+                       interrupt-controller;
+                       interrupt-parent = <&intc>;
+                       #interrupt-cells = <2>;
+               };
+
+               pdc: interrupt-controller@b210000 {
+                       compatible = "qcom,sdx65-pdc", "qcom,pdc";
+                       reg = <0xb210000 0x10000>;
+                       qcom,pdc-ranges = <0 147 52>, <52 266 32>;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&intc>;
+                       interrupt-controller;
+               };
+
+               intc: interrupt-controller@17800000 {
+                       compatible = "qcom,msm-qgic2";
+                       interrupt-controller;
+                       interrupt-parent = <&intc>;
+                       #interrupt-cells = <3>;
+                       reg = <0x17800000 0x1000>,
+                             <0x17802000 0x1000>;
+               };
+
+               timer@17820000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0x17820000 0x1000>;
+                       clock-frequency = <19200000>;
+
+                       frame@17821000 {
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 7 0x4>,
+                                            <GIC_SPI 6 0x4>;
+                               reg = <0x17821000 0x1000>,
+                                     <0x17822000 0x1000>;
+                       };
+
+                       frame@17823000 {
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 8 0x4>;
+                               reg = <0x17823000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17824000 {
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 9 0x4>;
+                               reg = <0x17824000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17825000 {
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 10 0x4>;
+                               reg = <0x17825000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17826000 {
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 11 0x4>;
+                               reg = <0x17826000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17827000 {
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 12 0x4>;
+                               reg = <0x17827000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17828000 {
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 13 0x4>;
+                               reg = <0x17828000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17829000 {
+                               frame-number = <7>;
+                               interrupts = <GIC_SPI 14 0x4>;
+                               reg = <0x17829000 0x1000>;
+                               status = "disabled";
+                       };
+               };
+
+               apps_rsc: rsc@17830000 {
+                       label = "apps_rsc";
+                       compatible = "qcom,rpmh-rsc";
+                       reg = <0x17830000 0x10000>,
+                           <0x17840000 0x10000>;
+                       reg-names = "drv-0", "drv-1";
+                       interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+                                  <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,tcs-offset = <0xd00>;
+                       qcom,drv-id = <1>;
+                       qcom,tcs-config = <ACTIVE_TCS  2>,
+                               <SLEEP_TCS   2>,
+                               <WAKE_TCS    2>,
+                               <CONTROL_TCS 1>;
+
+                       rpmhcc: clock-controller@1 {
+                               compatible = "qcom,sdx65-rpmh-clk";
+                               #clock-cells = <1>;
+                               clock-names = "xo";
+                               clocks = <&xo_board>;
+                       };
+               };
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <1 13 0xf08>,
+                       <1 12 0xf08>,
+                       <1 10 0xf08>,
+                       <1 11 0xf08>;
+               clock-frequency = <19200000>;
+       };
+};
index 33db593..3c8a7c8 100644 (file)
                #clock-cells = <0>;
                clock-frequency = <26000000>;
        };
+
+       reg_1p8v: 1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       reg_2p8v: 2p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "2P8V";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               regulator-always-on;
+       };
 };
 
 &avb {
index 70c72ba..40cef0b 100644 (file)
@@ -17,6 +17,9 @@
                reg = <0x3c>;
                clocks = <&MCLK_CAM>;
                clock-names = "xclk";
+               AVDD-supply = <&reg_2p8v>;
+               DOVDD-supply = <&reg_2p8v>;
+               DVDD-supply = <&reg_1p8v>;
                status = "okay";
 
                port {
index 801969c..09c741e 100644 (file)
                                reg-names = "qspi_base", "qspi_mmap";
                                interrupts = <52 IRQ_TYPE_LEVEL_HIGH 7>;
                                clocks = <&pmc PMC_TYPE_PERIPHERAL 52>;
+                               clock-names = "pclk";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                reg-names = "qspi_base", "qspi_mmap";
                                interrupts = <53 IRQ_TYPE_LEVEL_HIGH 7>;
                                clocks = <&pmc PMC_TYPE_PERIPHERAL 53>;
+                               clock-names = "pclk";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
index 22fe9e5..4eb3044 100644 (file)
 #define PIN_PD20__PCK0                 PINMUX_PIN(PIN_PD20, 1, 3)
 #define PIN_PD20__FLEXCOM2_IO3         PINMUX_PIN(PIN_PD20, 2, 2)
 #define PIN_PD20__PWMH3                        PINMUX_PIN(PIN_PD20, 3, 4)
-#define PIN_PD20__CANTX4               PINMUX_PIN(PIN_PD20, 5, 2)
+#define PIN_PD20__CANTX4               PINMUX_PIN(PIN_PD20, 4, 2)
 #define PIN_PD20__FLEXCOM5_IO0         PINMUX_PIN(PIN_PD20, 6, 5)
 #define PIN_PD21                       117
 #define PIN_PD21__GPIO                 PINMUX_PIN(PIN_PD21, 0, 0)
index 7039311..eddcfbf 100644 (file)
                        clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
                };
 
+               qspi0: spi@e080c000 {
+                       compatible = "microchip,sama7g5-ospi";
+                       reg = <0xe080c000 0x400>, <0x20000000 0x10000000>;
+                       reg-names = "qspi_base", "qspi_mmap";
+                       interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                       dmas = <&dma0 AT91_XDMAC_DT_PERID(41)>,
+                              <&dma0 AT91_XDMAC_DT_PERID(40)>;
+                       dma-names = "tx", "rx";
+                       clocks = <&pmc PMC_TYPE_PERIPHERAL 78>, <&pmc PMC_TYPE_GCK 78>;
+                       clock-names = "pclk", "gclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               qspi1: spi@e0810000 {
+                       compatible = "microchip,sama7g5-qspi";
+                       reg = <0xe0810000 0x400>, <0x30000000 0x10000000>;
+                       reg-names = "qspi_base", "qspi_mmap";
+                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+                       dmas = <&dma0 AT91_XDMAC_DT_PERID(43)>,
+                              <&dma0 AT91_XDMAC_DT_PERID(42)>;
+                       dma-names = "tx", "rx";
+                       clocks = <&pmc PMC_TYPE_PERIPHERAL 79>, <&pmc PMC_TYPE_GCK 79>;
+                       clock-names = "pclk", "gclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                adc: adc@e1000000 {
                        compatible = "microchip,sama7g5-adc";
                        reg = <0xe1000000 0x200>;
index 8fcb6be..4cbadcb 100644 (file)
                                        pl022,wait-state = <0>;
                                        pl022,duplex = <0>;
                                };
-
-                               spidev@2 {
-                                       compatible = "spidev";
-                                       reg = <2>;
-                                       spi-max-frequency = <25000000>;
-                                       spi-cpha;
-                                       pl022,hierarchy = <0>;
-                                       pl022,interface = <0>;
-                                       pl022,slave-tx-disable;
-                                       pl022,com-mode = <0x2>;
-                                       pl022,rx-level-trig = <0>;
-                                       pl022,tx-level-trig = <0>;
-                                       pl022,ctrl-len = <0x11>;
-                                       pl022,wait-state = <0>;
-                                       pl022,duplex = <0>;
-                               };
                        };
 
                        wdt@ec800620 {
index f70ff56..fd194eb 100644 (file)
                                                ts,i-drive = <1>;
                                        };
                                };
-
-                               spidev@2 {
-                                       compatible = "spidev";
-                                       reg = <2>;
-                                       spi-max-frequency = <25000000>;
-                                       spi-cpha;
-                                       pl022,hierarchy = <0>;
-                                       pl022,interface = <0>;
-                                       pl022,slave-tx-disable;
-                                       pl022,com-mode = <0x2>;
-                                       pl022,rx-level-trig = <0>;
-                                       pl022,tx-level-trig = <0>;
-                                       pl022,ctrl-len = <0x11>;
-                                       pl022,wait-state = <0>;
-                                       pl022,duplex = <0>;
-                               };
                        };
 
                        timer@ec800600 {
index 8ce751a..7757083 100644 (file)
@@ -92,6 +92,7 @@
                        gpiopinctrl: gpio@b4000000 {
                                compatible = "st,spear-plgpio";
                                reg = <0xb4000000 0x1000>;
+                               regmap = <&pinmux>;
                                #interrupt-cells = <1>;
                                interrupt-controller;
                                gpio-controller;
index 3bc1e93..47ac447 100644 (file)
                        gpiopinctrl: gpio@b3000000 {
                                compatible = "st,spear-plgpio";
                                reg = <0xb3000000 0x1000>;
+                               regmap = <&pinmux>;
                                #interrupt-cells = <1>;
                                interrupt-controller;
                                gpio-controller;
diff --git a/arch/arm/boot/dts/spear320s.dtsi b/arch/arm/boot/dts/spear320s.dtsi
new file mode 100644 (file)
index 0000000..133236d
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * DTS file for SPEAr320s SoC
+ *
+ * Copyright 2021 Herve Codina <herve.codina@bootlin.com>
+ */
+
+/include/ "spear320.dtsi"
+
+/ {
+       ahb {
+               apb {
+                       gpiopinctrl: gpio@b3000000 {
+                               /*
+                                * The "RM0321 SPEAr320s address and map
+                                * registers" document mentions interrupt 6
+                                * (NPGIO_INTR) for the PL_GPIO interrupt.
+                                */
+                               interrupts = <6>;
+                               interrupt-parent = <&shirq>;
+                       };
+               };
+       };
+};
index 68607e4..dc0bcc7 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/reset/stericsson,db8500-prcc-reset.h>
 #include <dt-bindings/mfd/dbx500-prcmu.h>
 #include <dt-bindings/arm/ux500_pm_domains.h>
 #include <dt-bindings/gpio/gpio.h>
                                #clock-cells = <2>;
                        };
 
+                       prcc_reset: prcc-reset-controller {
+                               #reset-cells = <2>;
+                       };
+
                        rtc_clk: rtc32k-clock {
                                #clock-cells = <0>;
                        };
                        clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
                        clock-names = "i2cclk", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_I2C0>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>;
                        clock-names = "i2cclk", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_I2C1>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>;
                        clock-names = "i2cclk", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_I2C2>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>;
                        clock-names = "i2cclk", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_I2C3>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 10>;
                        clock-names = "i2cclk", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_I2C4>;
 
                        status = "disabled";
                };
                               <&dma 8 0 0x0>; /* Logical - MemToDev */
                        dma-names = "rx", "tx";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SSP0>;
 
                        status = "disabled";
                };
                               <&dma 9 0 0x0>; /* Logical - MemToDev */
                        dma-names = "rx", "tx";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SSP1>;
 
                        status = "disabled";
                };
                               <&dma 40 0 0x0>; /* Logical - MemToDev */
                        dma-names = "rx", "tx";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_SPI3>;
 
                        status = "disabled";
                };
 
                        clocks = <&prcc_kclk 1 0>, <&prcc_pclk 1 0>;
                        clock-names = "uart", "apb_pclk";
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_UART0>;
 
                        status = "disabled";
                };
 
                        clocks = <&prcc_kclk 1 1>, <&prcc_pclk 1 1>;
                        clock-names = "uart", "apb_pclk";
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_UART1>;
 
                        status = "disabled";
                };
 
                        clocks = <&prcc_kclk 3 6>, <&prcc_pclk 3 6>;
                        clock-names = "uart", "apb_pclk";
+                       resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_UART2>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
                        clock-names = "sdi", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_SDI0>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>;
                        clock-names = "sdi", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_SDI1>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>;
                        clock-names = "sdi", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SDI2>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>;
                        clock-names = "sdi", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_SDI3>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>;
                        clock-names = "sdi", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_SDI4>;
 
                        status = "disabled";
                };
                        clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>;
                        clock-names = "sdi", "apb_pclk";
                        power-domains = <&pm_domains DOMAIN_VAPE>;
+                       resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SDI5>;
 
                        status = "disabled";
                };
 
                        clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>;
                        clock-names = "msp", "apb_pclk";
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_MSP0>;
 
                        status = "disabled";
                };
 
                        clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>;
                        clock-names = "msp", "apb_pclk";
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_MSP1>;
 
                        status = "disabled";
                };
 
                        clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>;
                        clock-names = "msp", "apb_pclk";
+                       resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_MSP2>;
 
                        status = "disabled";
                };
 
                        clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>;
                        clock-names = "msp", "apb_pclk";
+                       resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_MSP3>;
 
                        status = "disabled";
                };
index 47bbf5a..1c0e5cf 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               /* TODO: Memsic MMC328 magnetometer */
-               magnetometer@30 {
-                       compatible = "memsic,mmc328";
-                       reg = <0x30>;
-                       /* TODO: if you have the schematic, check if both voltages come from AUX2 */
-                       /* VDA 1.8 V */
-                       vda-supply = <&ab8500_ldo_aux2_reg>;
-                       /* VDD 1.8V */
-                       vdd-supply = <&ab8500_ldo_aux2_reg>;
-                       /* GPIO204 */
+               /* Yamaha YAS530 magnetometer */
+               magnetometer@2e {
+                       compatible = "yamaha,yas530";
+                       reg = <0x2e>;
+                       /* VDD 3V */
+                       vdd-supply = <&ab8500_ldo_aux1_reg>;
+                       /* IOVDD 1.8V */
+                       iovdd-supply = <&ab8500_ldo_aux2_reg>;
+                       /* GPIO204 COMPASS_RST_N */
                        reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
                        pinctrl-names = "default";
-                       pinctrl-0 = <&mmc328_default>;
+                       pinctrl-0 = <&yas530_default>;
                };
                /* TODO: this should also be used by the NCP6914 Camera power management unit */
        };
                        };
                };
        };
+       /* Reset line for the Yamaha YAS530 magnetometer */
+       yas530 {
+               yas530_default: yas530_janice {
+                       janice_cfg1 {
+                               pins = "GPIO204_AF23";
+                               ste,config = <&gpio_out_hi>;
+                       };
+               };
+       };
        /* Flash and torch */
        flash {
                gpio_flash_default_mode: flash_default {
                        };
                };
        };
-       /* Reset line for the Memsic MMC328 magnetometer */
-       mmc328 {
-               mmc328_default: mmc328_gavini {
-                       gavini_cfg1 {
-                               pins = "GPIO204_AF23";
-                               ste,config = <&gpio_out_hi>;
-                       };
-               };
-       };
        /* Interrupt line for Invensense MPU3050 gyroscope */
        mpu3050 {
                mpu3050_default: mpu3050 {
index 075ac57..6435e09 100644 (file)
 
        display: display@1{
                /* Connect panel-ilitek-9341 to ltdc */
-               compatible = "st,sf-tc240t-9370-t";
+               compatible = "st,sf-tc240t-9370-t", "ilitek,ili9341";
                reg = <1>;
                spi-3wire;
                spi-max-frequency = <10000000>;
index 2ebafe2..3b65130 100644 (file)
 
        stusb1600_pins_a: stusb1600-0 {
                pins {
-                       pinmux = <STM32_PINMUX('I', 11, ANALOG)>;
+                       pinmux = <STM32_PINMUX('I', 11, GPIO)>;
                        bias-pull-up;
                };
        };
        };
 
        uart4_idle_pins_a: uart4-idle-0 {
-                  pins1 {
-                        pinmux = <STM32_PINMUX('G', 11, ANALOG)>; /* UART4_TX */
-                  };
-                  pins2 {
-                        pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
-                        bias-disable;
-                  };
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 11, ANALOG)>; /* UART4_TX */
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
+                       bias-disable;
+               };
        };
 
        uart4_sleep_pins_a: uart4-sleep-0 {
-                  pins {
+               pins {
                        pinmux = <STM32_PINMUX('G', 11, ANALOG)>, /* UART4_TX */
                                 <STM32_PINMUX('B', 2, ANALOG)>; /* UART4_RX */
-                   };
+               };
        };
 
        uart4_pins_b: uart4-1 {
                };
                pins2 {
                        pinmux = <STM32_PINMUX('E', 7, AF7)>; /* UART7_RX */
-                       bias-disable;
+                       bias-pull-up;
                };
        };
 
                };
                pins2 {
                        pinmux = <STM32_PINMUX('E', 7, AF7)>; /* UART7_RX */
-                       bias-disable;
+                       bias-pull-up;
                };
        };
 
                pins2 {
                        pinmux = <STM32_PINMUX('B', 12, AF8)>, /* USART3_RX */
                                 <STM32_PINMUX('I', 10, AF8)>; /* USART3_CTS_NSS */
-                       bias-disable;
+                       bias-pull-up;
                };
        };
 
                };
                pins3 {
                        pinmux = <STM32_PINMUX('B', 12, AF8)>; /* USART3_RX */
-                       bias-disable;
+                       bias-pull-up;
                };
        };
 
                pins2 {
                        pinmux = <STM32_PINMUX('B', 12, AF8)>, /* USART3_RX */
                                 <STM32_PINMUX('B', 13, AF7)>; /* USART3_CTS_NSS */
-                       bias-disable;
+                       bias-pull-up;
                };
        };
 
                };
                pins3 {
                        pinmux = <STM32_PINMUX('B', 12, AF8)>; /* USART3_RX */
-                       bias-disable;
+                       bias-pull-up;
                };
        };
 
diff --git a/arch/arm/boot/dts/stm32mp157a-icore-stm32mp1-ctouch2-of10.dts b/arch/arm/boot/dts/stm32mp157a-icore-stm32mp1-ctouch2-of10.dts
new file mode 100644 (file)
index 0000000..2a28292
--- /dev/null
@@ -0,0 +1,132 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) STMicroelectronics 2019 - All Rights Reserved
+ * Copyright (c) 2020 Engicam srl
+ * Copyright (c) 2020 Amarula Solutons(India)
+ */
+
+/dts-v1/;
+#include "stm32mp157.dtsi"
+#include "stm32mp157a-icore-stm32mp1.dtsi"
+#include "stm32mp15-pinctrl.dtsi"
+#include "stm32mp15xxaa-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "Engicam i.Core STM32MP1 C.TOUCH 2.0 10.1\" Open Frame";
+       compatible = "engicam,icore-stm32mp1-ctouch2-of10",
+                    "engicam,icore-stm32mp1", "st,stm32mp157";
+
+       aliases {
+               serial0 = &uart4;
+       };
+
+       backlight: backlight {
+               compatible = "gpio-backlight";
+               gpios = <&gpiod 13 GPIO_ACTIVE_HIGH>;
+               default-on;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       panel {
+               compatible = "ampire,am-1280800n3tzqw-t00h";
+               backlight = <&backlight>;
+               power-supply = <&v3v3>;
+
+               port {
+                       panel_in_lvds: endpoint {
+                               remote-endpoint = <&bridge_out>;
+                       };
+               };
+       };
+};
+
+&dsi {
+       status = "okay";
+       phy-dsi-supply = <&reg18>;
+
+       ports {
+               port@0 {
+                       reg = <0>;
+                       dsi_in: endpoint {
+                               remote-endpoint = <&ltdc_ep0_out>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dsi_out: endpoint {
+                               remote-endpoint = <&bridge_in>;
+                       };
+               };
+       };
+};
+
+&i2c6 {
+       i2c-scl-falling-time-ns = <20>;
+       i2c-scl-rising-time-ns = <185>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&i2c6_pins_a>;
+       pinctrl-1 = <&i2c6_sleep_pins_a>;
+       status = "okay";
+
+       bridge@2c {
+               compatible = "ti,sn65dsi84";
+               reg = <0x2c>;
+               enable-gpios = <&gpiof 15 GPIO_ACTIVE_HIGH>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               bridge_in: endpoint {
+                                       remote-endpoint = <&dsi_out>;
+                                       data-lanes = <1 2>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               bridge_out: endpoint {
+                                       remote-endpoint = <&panel_in_lvds>;
+                               };
+                       };
+               };
+       };
+};
+
+&ltdc {
+       status = "okay";
+
+       port {
+               ltdc_ep0_out: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&dsi_in>;
+               };
+       };
+};
+
+&sdmmc1 {
+       bus-width = <4>;
+       disable-wp;
+       pinctrl-names = "default", "opendrain", "sleep";
+       pinctrl-0 = <&sdmmc1_b4_pins_a>;
+       pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
+       pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
+       st,neg-edge;
+       vmmc-supply = <&v3v3>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default", "sleep", "idle";
+       pinctrl-0 = <&uart4_pins_a>;
+       pinctrl-1 = <&uart4_sleep_pins_a>;
+       pinctrl-2 = <&uart4_idle_pins_a>;
+       status = "okay";
+};
index ec9f1d1..a797eaa 100644 (file)
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       backlight: backlight {
+               compatible = "gpio-backlight";
+               gpios = <&gpiod 13 GPIO_ACTIVE_HIGH>;
+               default-on;
+       };
+
+       panel {
+               compatible = "yes-optoelectronics,ytc700tlag-05-201c";
+               backlight = <&backlight>;
+               power-supply = <&v3v3>;
+
+               port {
+                       panel_out_bridge: endpoint {
+                               remote-endpoint = <&bridge_out_panel>;
+                       };
+               };
+       };
+};
+
+&dsi {
+       status = "okay";
+       phy-dsi-supply = <&reg18>;
+
+       ports {
+               port@0 {
+                       reg = <0>;
+                       dsi_in_ltdc: endpoint {
+                               remote-endpoint = <&ltdc_out_dsi>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dsi_out_bridge: endpoint {
+                               remote-endpoint = <&bridge_in_dsi>;
+                       };
+               };
+       };
+};
+
+&i2c6 {
+       i2c-scl-falling-time-ns = <20>;
+       i2c-scl-rising-time-ns = <185>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&i2c6_pins_a>;
+       pinctrl-1 = <&i2c6_sleep_pins_a>;
+       status = "okay";
+
+       bridge@2c {
+               compatible = "ti,sn65dsi84";
+               reg = <0x2c>;
+               enable-gpios = <&gpiof 15 GPIO_ACTIVE_HIGH>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               bridge_in_dsi: endpoint {
+                                       remote-endpoint = <&dsi_out_bridge>;
+                                       data-lanes = <1 2>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               bridge_out_panel: endpoint {
+                                       remote-endpoint = <&panel_out_bridge>;
+                               };
+                       };
+               };
+       };
+};
+
+&ltdc {
+       status = "okay";
+
+       port {
+               ltdc_out_dsi: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&dsi_in_ltdc>;
+               };
+       };
 };
 
 &sdmmc1 {
index 5c5b1dd..e222d2d 100644 (file)
 &usbphyc {
        status = "okay";
 };
+
+&usbphyc_port0 {
+       st,tune-hs-dc-level = <2>;
+       st,enable-fs-rftime-tuning;
+       st,enable-hs-rftime-reduction;
+       st,trim-hs-current = <15>;
+       st,trim-hs-impedance = <1>;
+       st,tune-squelch-level = <3>;
+       st,tune-hs-rx-offset = <2>;
+       st,no-lsfs-sc;
+};
+
+&usbphyc_port1 {
+       st,tune-hs-dc-level = <2>;
+       st,enable-fs-rftime-tuning;
+       st,enable-hs-rftime-reduction;
+       st,trim-hs-current = <15>;
+       st,trim-hs-impedance = <1>;
+       st,tune-squelch-level = <3>;
+       st,tune-hs-rx-offset = <2>;
+       st,no-lsfs-sc;
+};
index 48beed0..6caeb44 100644 (file)
 
 &usbphyc_port0 {
        phy-supply = <&vdd_usb>;
+       st,tune-hs-dc-level = <2>;
+       st,enable-fs-rftime-tuning;
+       st,enable-hs-rftime-reduction;
+       st,trim-hs-current = <15>;
+       st,trim-hs-impedance = <1>;
+       st,tune-squelch-level = <3>;
+       st,tune-hs-rx-offset = <2>;
+       st,no-lsfs-sc;
 };
 
 &usbphyc_port1 {
        phy-supply = <&vdd_usb>;
+       st,tune-hs-dc-level = <2>;
+       st,enable-fs-rftime-tuning;
+       st,enable-hs-rftime-reduction;
+       st,trim-hs-current = <15>;
+       st,trim-hs-impedance = <1>;
+       st,tune-squelch-level = <3>;
+       st,tune-hs-rx-offset = <2>;
+       st,no-lsfs-sc;
 };
 
 &vrefbuf {
index 8e8634f..d5c7b79 100644 (file)
@@ -52,8 +52,9 @@
 
                sw4 {
                        label = "power";
-                       linux,code = <BTN_0>;
+                       linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
                };
        };
 
index f0e591e..cd9f655 100644 (file)
                ethernet1 = &sdiowifi;
        };
 
+       cec-gpio {
+               compatible = "cec-gpio";
+               cec-gpios = <&pio 0 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PA14 */
+               hdmi-phandle = <&hdmi>;
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
-               compatible = "mmc-pwrseq-simple";
-               reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
-               clocks = <&rtc 1>;
-               clock-names = "ext_clock";
+       r-gpio-keys {
+               compatible = "gpio-keys";
+
+               power {
+                       label = "power";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
        };
 
        sound_spdif {
                compatible = "linux,spdif-dit";
        };
 
-       r-gpio-keys {
-               compatible = "gpio-keys";
-
-               power {
-                       label = "power";
-                       linux,code = <KEY_POWER>;
-                       gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
-                       wakeup-source;
-               };
+       wifi_pwrseq: wifi_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
+               clocks = <&rtc 1>;
+               clock-names = "ext_clock";
        };
 };
 
index c7c3e7d..fc45d5a 100644 (file)
@@ -81,6 +81,7 @@
                        label = "k1";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
                };
        };
 };
index 597c425..9daffd9 100644 (file)
@@ -99,8 +99,9 @@
 
                sw4 {
                        label = "sw4";
-                       linux,code = <BTN_0>;
+                       linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
                };
        };
 
index 5aff8ec..90f75fa 100644 (file)
@@ -91,8 +91,9 @@
 
                sw4 {
                        label = "sw4";
-                       linux,code = <BTN_0>;
+                       linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
                };
        };
 };
index ae4f933..845f252 100644 (file)
        compatible = "allwinner,sun8i-h3-de2-clk";
 };
 
+&mbus {
+       compatible = "allwinner,sun8i-h3-mbus";
+};
+
 &mmc0 {
        compatible = "allwinner,sun7i-a20-mmc";
        clocks = <&ccu CLK_BUS_MMC0>,
index 1d87fc0..f10436b 100644 (file)
                        reg-io-width = <1>;
                        interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&ccu CLK_BUS_HDMI0>, <&ccu CLK_HDMI_SLOW>,
-                                <&ccu CLK_HDMI>;
-                       clock-names = "iahb", "isfr", "tmds";
+                                <&ccu CLK_HDMI>, <&rtc 0>;
+                       clock-names = "iahb", "isfr", "tmds", "cec";
                        resets = <&ccu RST_BUS_HDMI1>;
                        reset-names = "ctrl";
                        phys = <&hdmi_phy>;
index 7a6af54..d03f585 100644 (file)
@@ -82,8 +82,9 @@
 
                sw4 {
                        label = "power";
-                       linux,code = <BTN_0>;
+                       linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
                };
        };
 
index c7428df..4aeca9e 100644 (file)
                };
 
                mbus: dram-controller@1c62000 {
-                       compatible = "allwinner,sun8i-h3-mbus";
-                       reg = <0x01c62000 0x1000>;
-                       clocks = <&ccu CLK_MBUS>;
+                       /* compatible is in per SoC .dtsi file */
+                       reg = <0x01c62000 0x1000>,
+                             <0x01c63000 0x1000>;
+                       reg-names = "mbus", "dram";
+                       clocks = <&ccu CLK_MBUS>,
+                                <&ccu CLK_DRAM>,
+                                <&ccu CLK_BUS_DRAM>;
+                       clock-names = "mbus", "dram", "bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        dma-ranges = <0x00000000 0x40000000 0xc0000000>;
                        reg-io-width = <1>;
                        interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
-                                <&ccu CLK_HDMI>;
-                       clock-names = "iahb", "isfr", "tmds";
+                                <&ccu CLK_HDMI>, <&rtc 0>;
+                       clock-names = "iahb", "isfr", "tmds", "cec";
                        resets = <&ccu RST_BUS_HDMI1>;
                        reset-names = "ctrl";
                        phys = <&hdmi_phy>;
index c44fd72..9e14fe5 100644 (file)
@@ -49,6 +49,7 @@
                        label = "power";
                        linux,code = <KEY_POWER>;
                        gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
+                       wakeup-source;
                };
        };
 
diff --git a/arch/arm/boot/dts/tegra114-asus-tf701t.dts b/arch/arm/boot/dts/tegra114-asus-tf701t.dts
new file mode 100644 (file)
index 0000000..b791ce9
--- /dev/null
@@ -0,0 +1,807 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/dts-v1/;
+
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+
+#include "tegra114.dtsi"
+
+/ {
+       model = "Asus Transformer Pad TF701T";
+       compatible = "asus,tf701t", "nvidia,tegra114";
+       chassis-type = "convertible";
+
+       aliases {
+               mmc0 = "/mmc@78000600"; /* eMMC */
+               mmc1 = "/mmc@78000400"; /* uSD slot */
+               mmc2 = "/mmc@78000000"; /* WiFi */
+
+               rtc0 = &palmas;
+               rtc1 = "/rtc@7000e000";
+
+               serial0 = &uartd; /* Console */
+               serial1 = &uartc; /* Bluetooth */
+               serial2 = &uartb; /* GPS */
+       };
+
+       memory@80000000 {
+               reg = <0x80000000 0x80000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               linux,cma@80000000 {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x80000000 0x30000000>;
+                       size = <0x10000000>;
+                       linux,cma-default;
+                       reusable;
+               };
+
+               trustzone@bfe00000 {
+                       reg = <0xbfe00000 0x200000>;
+                       no-map;
+               };
+       };
+
+       host1x@50000000 {
+               dsi@54300000 {
+                       status = "okay";
+
+                       avdd-dsi-csi-supply = <&tps65913_ldo2>;
+
+                       nvidia,ganged-mode = <&dsib>;
+
+                       panel_primary: panel@0 {
+                               compatible = "sharp,lq101r1sx01";
+                               reg = <0>;
+
+                               link2 = <&panel_secondary>;
+
+                               power-supply = <&vdd_lcd>;
+                               backlight = <&backlight>;
+                       };
+               };
+
+               dsi@54400000 {
+                       status = "okay";
+
+                       avdd-dsi-csi-supply = <&tps65913_ldo2>;
+
+                       panel_secondary: panel@0 {
+                               compatible = "sharp,lq101r1sx01";
+                               reg = <0>;
+                       };
+               };
+       };
+
+       pinmux@70000868 {
+               asus_pad_ec_default: asus-pad-ec-default {
+                       ec-interrupt {
+                               nvidia,pins = "kb_col5_pq5";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ec-request {
+                               nvidia,pins = "kb_col2_pq2";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+               };
+
+               backlight_default: backlight-default {
+                       backlight-enable {
+                               nvidia,pins = "gmi_ad10_ph2";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+               };
+
+               codec_default: codec-default {
+                       ldo1-en {
+                               nvidia,pins = "sdmmc1_wp_n_pv3";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       interrupt {
+                               nvidia,pins = "gpio_w2_aud_pw2",
+                                               "gpio_w3_aud_pw3";
+                               nvidia,function = "spi6";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+               };
+
+               gpio_keys_default: gpio-keys-default {
+                       power {
+                               nvidia,pins = "kb_col0_pq0";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       volume {
+                               nvidia,pins = "kb_row1_pr1",
+                                               "kb_row2_pr2";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+               };
+
+               gpio_hall_sensor_default: gpio-hall-sensor-default {
+                       ulpi_data4_po5 {
+                               nvidia,pins = "ulpi_data4_po5";
+                               nvidia,function = "spi2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+               };
+
+               hp_det_default: hp-det-default {
+                       gmi_iordy_pi5 {
+                               nvidia,pins = "kb_row7_pr7";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+               };
+
+               imu_default: imu-default {
+                       kb_row3_pr3 {
+                               nvidia,pins = "kb_row3_pr3";
+                               nvidia,function = "rsvd3";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+               };
+
+               pwm_default: pwm-default {
+                       gmi_ad9_ph1 {
+                               nvidia,pins = "gmi_ad9_ph1";
+                               nvidia,function = "pwm1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+               };
+
+               /* XXX make this something more sensible */
+               pwm_sleep: pwm-sleep {
+                       gmi_ad9_ph1 {
+                               nvidia,pins = "gmi_ad9_ph1";
+                               nvidia,function = "pwm1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+               };
+
+               sdmmc3_default: sdmmc3-default {
+                       sdmmc3_clk_pa6 {
+                               nvidia,pins = "sdmmc3_clk_pa6";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc3_cmd_pa7 {
+                               nvidia,pins = "sdmmc3_cmd_pa7",
+                                               "sdmmc3_dat0_pb7",
+                                               "sdmmc3_dat1_pb6",
+                                               "sdmmc3_dat2_pb5",
+                                               "sdmmc3_dat3_pb4",
+                                               "kb_col4_pq4",
+                                               "sdmmc3_clk_lb_out_pee4",
+                                               "sdmmc3_clk_lb_in_pee5",
+                                               "sdmmc3_cd_n_pv2";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       drive_sdio3 {
+                               nvidia,pins = "drive_sdio3";
+                               nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>;
+                               nvidia,schmitt = <TEGRA_PIN_DISABLE>;
+                               nvidia,pull-down-strength = <22>;
+                               nvidia,pull-up-strength = <36>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                       };
+               };
+
+               sdmmc3_vdd_default: sdmmc3-vdd-default {
+                       gmi_clk_pk1 {
+                               nvidia,pins = "gmi_clk_pk1";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+               };
+
+               vdd_lcd_default: vdd-lcd-default {
+                       sdmmc4_clk_pcc4 {
+                               nvidia,pins = "sdmmc4_clk_pcc4";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+               };
+       };
+
+       serial@70006040 {
+               /* GPS */
+       };
+
+       serial@70006200 {
+               /* Bluetooth */
+       };
+
+       serial@70006300 {
+               status = "okay";
+       };
+
+       pwm@7000a000 {
+               status = "okay";
+
+               pinctrl-names = "default", "sleep";
+               pinctrl-0 = <&pwm_default>;
+               pinctrl-1 = <&pwm_sleep>;
+       };
+
+       i2c@7000c000 {
+               status = "okay";
+               clock-frequency = <100000>;
+
+               magnetometer@c {
+                       compatible = "asahi-kasei,ak09911";
+                       reg = <0xc>;
+
+                       vdd-supply = <&vdd_3v3_sys>;
+               };
+
+               rt5639: audio-codec@1c {
+                       compatible = "realtek,rt5639";
+                       reg = <0x1c>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_EDGE_FALLING>;
+
+                       realtek,ldo1-en-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&codec_default>;
+               };
+
+               motion-tracker@68 {
+                       compatible = "invensense,mpu6500";
+                       reg = <0x68>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(R, 3) IRQ_TYPE_LEVEL_HIGH>;
+
+                       mount-matrix =  "0", "-1", "0",
+                                       "1",  "0", "0",
+                                       "0",  "0", "1";
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&imu_default>;
+               };
+
+               temp_sensor: temperature-sensor@4c {
+                       compatible = "onnn,nct1008";
+                       reg = <0x4c>;
+
+                       vcc-supply = <&vdd_3v3_sys>;
+                       #thermal-sensor-cells = <1>;
+               };
+       };
+
+       i2c@7000c400 {
+               status = "okay";
+               clock-frequency = <100000>;
+
+               power-sensor@44 {
+                       compatible = "ti,ina230";
+                       reg = <0x44>;
+               };
+       };
+
+       i2c@7000c500 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               light-sensor@1c {
+                       compatible = "dynaimage,al3320a";
+                       reg = <0x1c>;
+
+                       vdd-supply = <&vdd_3v3_sys>;
+               };
+       };
+
+       i2c@7000c700 {
+               /* HDMI DDC */
+       };
+
+       i2c@7000d000 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               palmas: pmic@58 {
+                       compatible = "ti,tps65913", "ti,palmas";
+                       reg = <0x58>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+
+                       ti,system-power-controller;
+
+                       palmas_gpio: gpio {
+                               compatible = "ti,palmas-gpio";
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                       };
+
+                       pmic {
+                               compatible = "ti,tps65913-pmic", "ti,palmas-pmic";
+
+                               ldo1-in-supply = <&tps65913_smps7>;
+                               ldo2-in-supply = <&tps65913_smps7>;
+                               ldo4-in-supply = <&tps65913_smps8>;
+                               ldo5-in-supply = <&tps65913_smps9>;
+                               ldo6-in-supply = <&tps65913_smps9>;
+                               ldo7-in-supply = <&tps65913_smps9>;
+                               ldo9-in-supply = <&tps65913_smps9>;
+
+                               regulators {
+                                       tps65913_smps123: smps123 {
+                                               regulator-name = "vdd-cpu";
+                                               regulator-min-microvolt = <900000>;
+                                               regulator-max-microvolt = <1350000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                               ti,roof-floor = <1>;
+                                               ti,mode-sleep = <3>;
+                                       };
+
+                                       tps65913_smps45: smps45 {
+                                               regulator-name = "vdd-core";
+                                               regulator-min-microvolt = <900000>;
+                                               regulator-max-microvolt = <1400000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                               ti,roof-floor = <3>;
+                                       };
+
+                                       smps6 {
+                                               regulator-name = "va-lcd-hv";
+                                               regulator-min-microvolt = <1000000>;
+                                               regulator-max-microvolt = <1000000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       tps65913_smps7: smps7 {
+                                               regulator-name = "vdd-ddr";
+                                               regulator-min-microvolt = <1350000>;
+                                               regulator-max-microvolt = <1350000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       tps65913_smps8: smps8 {
+                                               regulator-name = "vdd-1v8";
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       tps65913_smps9: smps9 {
+                                               regulator-name = "vdd-sd";
+                                               regulator-min-microvolt = <2900000>;
+                                               regulator-max-microvolt = <2900000>;
+                                               regulator-always-on;
+                                       };
+
+                                       tps65913_smps10_out1: smps10_out1 {
+                                               regulator-name = "vd-smps10-out1";
+                                               regulator-min-microvolt = <5000000>;
+                                               regulator-max-microvolt = <5000000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       tps65913_smps10_out2: smps10_out2 {
+                                               regulator-name = "vd-smps10-out2";
+                                               regulator-min-microvolt = <5000000>;
+                                               regulator-max-microvolt = <5000000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+
+                                       tps65913_ldo1: ldo1 {
+                                               regulator-name = "vdd-hdmi-pll";
+                                               regulator-min-microvolt = <1050000>;
+                                               regulator-max-microvolt = <1050000>;
+                                               regulator-always-on;
+                                               ti,roof-floor = <3>;
+                                       };
+
+                                       tps65913_ldo2: ldo2 {
+                                               regulator-name = "vdd-2v8-dsi-csi";
+                                               regulator-min-microvolt = <1200000>;
+                                               regulator-max-microvolt = <1200000>;
+                                               regulator-boot-on;
+                                       };
+
+                                       ldo3 {
+                                               regulator-name = "vpp-fuse";
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                       };
+
+                                       ldo4 {
+                                               regulator-name = "vdd-1v2-cam";
+                                               regulator-min-microvolt = <1200000>;
+                                               regulator-max-microvolt = <1200000>;
+                                       };
+
+                                       ldo5 {
+                                               regulator-name = "vdd-cam";
+                                               regulator-min-microvolt = <2800000>;
+                                               regulator-max-microvolt = <2800000>;
+                                       };
+
+                                       ldo6 {
+                                               regulator-name = "vdd-dev";
+                                               regulator-min-microvolt = <2850000>;
+                                               regulator-max-microvolt = <2850000>;
+                                               regulator-boot-on;
+                                       };
+
+                                       ldo7 {
+                                               regulator-name = "vdd-2v8-cam";
+                                               regulator-min-microvolt = <2800000>;
+                                               regulator-max-microvolt = <2800000>;
+                                       };
+
+                                       tps65913_ldo8: ldo8 {
+                                               regulator-name = "vdd-rtc";
+                                               regulator-min-microvolt = <950000>;
+                                               regulator-max-microvolt = <950000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                               ti,enable-ldo8-tracking;
+                                       };
+
+                                       tps65913_ldo9: ldo9 {
+                                               regulator-name = "vdd-sdmmc";
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <2900000>;
+                                       };
+
+                                       tps65913_ldoln: ldoln {
+                                               regulator-name = "vdd-hdmi";
+                                               regulator-min-microvolt = <3300000>;
+                                               regulator-max-microvolt = <3300000>;
+                                       };
+
+                                       ldousb {
+                                               regulator-name = "vdd-usb";
+                                               regulator-min-microvolt = <3300000>;
+                                               regulator-max-microvolt = <3300000>;
+                                               regulator-always-on;
+                                               regulator-boot-on;
+                                       };
+                               };
+                       };
+
+                       rtc {
+                               compatible = "ti,palmas-rtc";
+                               interrupt-parent = <&palmas>;
+                               interrupts = <8 0>;
+                       };
+
+                       pinmux {
+                               compatible = "ti,tps65913-pinctrl";
+                               ti,palmas-enable-dvfs1;
+
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&palmas_default>;
+
+                               palmas_default: pinmux {
+                                       pin_powergood {
+                                               pins = "powergood";
+                                               function = "powergood";
+                                       };
+
+                                       pin_vac {
+                                               pins = "vac";
+                                               function = "vac";
+                                       };
+
+                                       pin_gpio0 {
+                                               pins = "gpio0";
+                                               function = "gpio";
+                                       };
+
+                                       pin_gpio1 {
+                                               pins = "gpio1";
+                                               function = "gpio";
+                                       };
+
+                                       pin_gpio2 {
+                                               pins = "gpio2";
+                                               function = "gpio";
+                                       };
+
+                                       pin_gpio3 {
+                                               pins = "gpio3";
+                                               function = "gpio";
+                                       };
+
+                                       pin_gpio4 {
+                                               pins = "gpio4";
+                                               function = "gpio";
+                                       };
+
+                                       pin_gpio5 {
+                                               pins = "gpio5";
+                                               function = "gpio";
+                                       };
+
+                                       pin_gpio6 {
+                                               pins = "gpio6";
+                                               function = "gpio";
+                                       };
+
+                                       pin_gpio7 {
+                                               pins = "gpio7";
+                                               function = "gpio";
+                                       };
+                               };
+                       };
+               };
+       };
+
+       ahub@70080000 {
+               i2s@70080300 {
+                       status = "okay";
+               };
+       };
+
+       mmc@78000000 {
+               /* WiFi */
+       };
+
+       /* MicroSD card */
+       mmc@78000400 {
+               status = "okay";
+
+               bus-width = <4>;
+               cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
+
+               nvidia,default-tap = <0x3>;
+               nvidia,default-trim = <0x3>;
+
+               vmmc-supply = <&vdd_usd>;
+               vqmmc-supply = <&tps65913_ldo9>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc3_default>;
+       };
+
+       mmc@78000600 {
+               /* eMMC */
+       };
+
+       usb@7d000000 {
+               compatible = "nvidia,tegra114-udc";
+               status = "okay";
+               dr_mode = "peripheral";
+
+               /* Peripheral USB via ASUS connector */
+       };
+
+       usb-phy@7d000000 {
+               status = "okay";
+       };
+
+       usb@7d008000 {
+               status = "okay";
+
+               /* Host USB via dock */
+       };
+
+       usb-phy@7d008000 {
+               status = "okay";
+               vbus-supply = <&vdd_5v0_sys>;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+
+               enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
+               power-supply = <&vdd_5v0_sys>;
+               pwms = <&pwm 1 1000000>;
+
+               brightness-levels = <1 255>;
+               num-interpolated-steps = <254>;
+               default-brightness-level = <224>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&backlight_default>;
+       };
+
+       /* PMIC has a built-in 32KHz oscillator which is used by PMC */
+       clk32k_in: clock-32k {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "pmic-oscillator";
+       };
+
+       firmware {
+               trusted-foundations {
+                       compatible = "tlm,trusted-foundations";
+                       tlm,version-major = <2>;
+                       tlm,version-minor = <8>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               label = "GPIO Buttons";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_default>;
+
+               power {
+                       label = "Power";
+                       gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       debounce-interval = <10>;
+                       wakeup-source;
+               };
+
+               volume-up {
+                       label = "Volume Up";
+                       gpios = <&gpio TEGRA_GPIO(R, 2) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <10>;
+               };
+
+               volume-down {
+                       label = "Volume Down";
+                       gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <10>;
+               };
+       };
+
+       gpio-hall-sensor {
+               compatible = "gpio-keys";
+
+               label = "GPIO Hall Effect Sensor";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_hall_sensor_default>;
+
+               hall-sensor {
+                       label = "Hall Effect Sensor";
+                       gpios = <&gpio TEGRA_GPIO(O, 5) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       sound {
+               compatible = "asus,tegra-audio-rt5639-tf701t",
+                            "nvidia,tegra-audio-rt5640";
+               nvidia,model = "Asus Transformer Pad TF701T RT5639";
+
+               nvidia,audio-routing =
+                       "Headphones", "HPOR",
+                       "Headphones", "HPOL",
+                       "Speakers", "SPORP",
+                       "Speakers", "SPORN",
+                       "Speakers", "SPOLP",
+                       "Speakers", "SPOLN",
+                       "Mic Jack", "MICBIAS1",
+                       "IN2P", "Mic Jack";
+
+               nvidia,i2s-controller = <&tegra_i2s0>;
+               nvidia,audio-codec = <&rt5639>;
+
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_LOW>;
+
+               clocks = <&tegra_car TEGRA114_CLK_PLL_A>,
+                        <&tegra_car TEGRA114_CLK_PLL_A_OUT0>,
+                        <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
+
+               assigned-clocks = <&tegra_car TEGRA114_CLK_EXTERN1>,
+                                 <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+
+               assigned-clock-parents = <&tegra_car TEGRA114_CLK_PLL_A_OUT0>,
+                                        <&tegra_car TEGRA114_CLK_EXTERN1>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_det_default>;
+       };
+
+       vdd_5v0_sys: regulator-5v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_3v3_sys: regulator-3v3-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_lcd: regulator-vdd-lcd {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_lcd_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&tps65913_smps8>;
+               enable-active-high;
+               gpio = <&gpio TEGRA_GPIO(CC, 4) GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&vdd_lcd_default>;
+       };
+
+       vdd_usd: regulator-vdd-usd {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_sd_slot";
+               regulator-min-microvolt = <2900000>;
+               regulator-max-microvolt = <2900000>;
+               vin-supply = <&tps65913_smps9>;
+               enable-active-high;
+               gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc3_vdd_default>;
+       };
+};
index 7fd901f..658edfb 100644 (file)
                };
 
                palmas: tps65913@58 {
-                       compatible = "ti,palmas";
+                       compatible = "ti,tps65913", "ti,palmas";
                        reg = <0x58>;
                        interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
 
        spi@7000da00 {
                status = "okay";
                spi-max-frequency = <25000000>;
-               spi-flash@0 {
+
+               flash@0 {
                        compatible = "winbond,w25q32dw", "jedec,spi-nor";
                        reg = <0>;
                        spi-max-frequency = <20000000>;
                default-brightness-level = <6>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                };
        };
 
-       vdd_ac_bat_reg: regulator@0 {
+       vdd_ac_bat_reg: regulator-acbat {
                compatible = "regulator-fixed";
                regulator-name = "vdd_ac_bat";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       dvdd_ts_reg: regulator@1 {
+       dvdd_ts_reg: regulator-ts {
                compatible = "regulator-fixed";
                regulator-name = "dvdd_ts";
                regulator-min-microvolt = <1800000>;
                gpio = <&gpio TEGRA_GPIO(H, 5) GPIO_ACTIVE_HIGH>;
        };
 
-       usb1_vbus_reg: regulator@3 {
+       usb1_vbus_reg: regulator-usb1 {
                compatible = "regulator-fixed";
                regulator-name = "usb1_vbus";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&tps65090_dcdc1_reg>;
        };
 
-       usb3_vbus_reg: regulator@4 {
+       usb3_vbus_reg: regulator-usb3 {
                compatible = "regulator-fixed";
                regulator-name = "usb2_vbus";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&tps65090_dcdc1_reg>;
        };
 
-       vdd_hdmi_reg: regulator@5 {
+       vdd_hdmi_reg: regulator-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "vdd_hdmi_5v0";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&tps65090_dcdc1_reg>;
        };
 
-       vdd_cam_1v8_reg: regulator@6 {
+       vdd_cam_1v8_reg: regulator-cam {
                compatible = "regulator-fixed";
                regulator-name = "vdd_cam_1v8_reg";
                regulator-min-microvolt = <1800000>;
                gpio = <&palmas_gpio 6 0>;
        };
 
-       vdd_5v0_hdmi: regulator@7 {
+       vdd_5v0_hdmi: regulator-hdmicon {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V0_HDMI_CON";
                regulator-min-microvolt = <5000000>;
index 0796017..2498cf1 100644 (file)
                };
 
                palmas: pmic@58 {
-                       compatible = "ti,palmas";
+                       compatible = "ti,tps65913", "ti,palmas";
                        reg = <0x58>;
                        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
 
                enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                };
        };
 
-       lcd_bl_en: regulator@0 {
+       lcd_bl_en: regulator-lcden {
                compatible = "regulator-fixed";
                regulator-name = "lcd_bl_en";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       vdd_lcd: regulator@1 {
+       vdd_lcd: regulator-lcd {
                compatible = "regulator-fixed";
                regulator-name = "vdd_lcd_1v8";
                regulator-min-microvolt = <1800000>;
                regulator-boot-on;
        };
 
-       regulator@2 {
+       regulator-1v8ts {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v8_ts";
                regulator-min-microvolt = <1800000>;
                regulator-boot-on;
        };
 
-       regulator@3 {
+       regulator-3v3ts {
                compatible = "regulator-fixed";
                regulator-name = "vdd_3v3_ts";
                regulator-min-microvolt = <3300000>;
                regulator-boot-on;
        };
 
-       regulator@4 {
+       regulator-1v8com {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v8_com";
                regulator-min-microvolt = <1800000>;
                regulator-boot-on;
        };
 
-       regulator@5 {
+       regulator-3v3com {
                compatible = "regulator-fixed";
                regulator-name = "vdd_3v3_com";
                regulator-min-microvolt = <3300000>;
index 745d234..ef8f722 100644 (file)
@@ -62,7 +62,7 @@
                clock-frequency = <400000>;
 
                palmas: pmic@58 {
-                       compatible = "ti,palmas";
+                       compatible = "ti,tps65913", "ti,palmas";
                        reg = <0x58>;
                        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
 
                power-supply = <&lcd_bl_en>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
        };
 
        /* FIXME: output of BQ24192 */
-       vs_sys: regulator@0 {
+       vs_sys: regulator-vs {
                compatible = "regulator-fixed";
                regulator-name = "VS_SYS";
                regulator-min-microvolt = <4200000>;
                regulator-boot-on;
        };
 
-       lcd_bl_en: regulator@1 {
+       lcd_bl_en: regulator-lcden {
                compatible = "regulator-fixed";
                regulator-name = "VDD_LCD_BL";
                regulator-min-microvolt = <16500000>;
                regulator-boot-on;
        };
 
-       vdd_lcd: regulator@2 {
+       vdd_lcd: regulator-lcd {
                compatible = "regulator-fixed";
                regulator-name = "VD_LCD_1V8";
                regulator-min-microvolt = <1800000>;
index 546272e..09996ac 100644 (file)
                reg = <0x80000000 0x0>;
        };
 
+       sram@40000000 {
+               compatible = "mmio-sram";
+               reg = <0x40000000 0x40000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0x40000000 0x40000>;
+
+               vde_pool: sram@400 {
+                       reg = <0x400 0x3fc00>;
+                       pool;
+               };
+       };
+
        host1x@50000000 {
                compatible = "nvidia,tegra114-host1x";
                reg = <0x50000000 0x00028000>;
@@ -25,8 +38,8 @@
                interrupt-names = "syncpt", "host1x";
                clocks = <&tegra_car TEGRA114_CLK_HOST1X>;
                clock-names = "host1x";
-               resets = <&tegra_car 28>;
-               reset-names = "host1x";
+               resets = <&tegra_car 28>, <&mc TEGRA114_MC_RESET_HC>;
+               reset-names = "host1x", "mc";
                iommus = <&mc TEGRA_SWGROUP_HC>;
 
                #address-cells = <1>;
@@ -39,8 +52,8 @@
                        reg = <0x54140000 0x00040000>;
                        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&tegra_car TEGRA114_CLK_GR2D>;
-                       resets = <&tegra_car 21>;
-                       reset-names = "2d";
+                       resets = <&tegra_car 21>, <&mc TEGRA114_MC_RESET_2D>;
+                       reset-names = "2d", "mc";
 
                        iommus = <&mc TEGRA_SWGROUP_G2>;
                };
@@ -49,8 +62,8 @@
                        compatible = "nvidia,tegra114-gr3d";
                        reg = <0x54180000 0x00040000>;
                        clocks = <&tegra_car TEGRA114_CLK_GR3D>;
-                       resets = <&tegra_car 24>;
-                       reset-names = "3d";
+                       resets = <&tegra_car 24>, <&mc TEGRA114_MC_RESET_3D>;
+                       reset-names = "3d", "mc";
 
                        iommus = <&mc TEGRA_SWGROUP_NV>;
                };
                        status = "disabled";
                };
 
-               dsi@54300000 {
+               dsia: dsi@54300000 {
                        compatible = "nvidia,tegra114-dsi";
                        reg = <0x54300000 0x00040000>;
                        clocks = <&tegra_car TEGRA114_CLK_DSIA>,
                        #size-cells = <0>;
                };
 
-               dsi@54400000 {
+               dsib: dsi@54400000 {
                        compatible = "nvidia,tegra114-dsi";
                        reg = <0x54400000 0x00040000>;
                        clocks = <&tegra_car TEGRA114_CLK_DSIB>,
        };
 
        timer@60005000 {
-               compatible = "nvidia,tegra114-timer", "nvidia,tegra30-timer", "nvidia,tegra20-timer";
+               compatible = "nvidia,tegra114-timer", "nvidia,tegra30-timer";
                reg = <0x60005000 0x400>;
                interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
                gpio-controller;
                #interrupt-cells = <2>;
                interrupt-controller;
-               /*
                gpio-ranges = <&pinmux 0 0 246>;
-               */
+       };
+
+       vde@6001a000 {
+               compatible = "nvidia,tegra114-vde";
+               reg = <0x6001a000 0x1000>, /* Syntax Engine */
+                     <0x6001b000 0x1000>, /* Video Bitstream Engine */
+                     <0x6001c000  0x100>, /* Macroblock Engine */
+                     <0x6001c200  0x100>, /* Post-processing Engine */
+                     <0x6001c400  0x100>, /* Motion Compensation Engine */
+                     <0x6001c600  0x100>, /* Transform Engine */
+                     <0x6001c800  0x100>, /* Pixel prediction block */
+                     <0x6001ca00  0x100>, /* Video DMA */
+                     <0x6001d800  0x400>; /* Video frame controls */
+               reg-names = "sxe", "bsev", "mbe", "ppe", "mce",
+                           "tfe", "ppb", "vdma", "frameid";
+               iram = <&vde_pool>; /* IRAM region */
+               interrupts = <GIC_SPI  9 IRQ_TYPE_LEVEL_HIGH>, /* Sync token interrupt */
+                            <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, /* BSE-V interrupt */
+                            <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; /* SXE interrupt */
+               interrupt-names = "sync-token", "bsev", "sxe";
+               clocks = <&tegra_car TEGRA114_CLK_VDE>;
+               reset-names = "vde", "mc";
+               resets = <&tegra_car 61>, <&mc TEGRA114_MC_RESET_VDE>;
+               iommus = <&mc TEGRA_SWGROUP_VDE>;
        };
 
        apbmisc@70000800 {
 
                interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
 
+               #reset-cells = <1>;
                #iommu-cells = <1>;
        };
 
index a7ac805..7143c6b 100644 (file)
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-20400000 {
                                clock-frequency = <20400000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-40800000 {
                                clock-frequency = <40800000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-68000000 {
                                clock-frequency = <68000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-102000000 {
                                clock-frequency = <102000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-204000000 {
                                clock-frequency = <204000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-300000000 {
                                clock-frequency = <300000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C>;
                                clock-names = "emc-parent";
                        };
+
                        timing-396000000 {
                                clock-frequency = <396000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M>;
                                clock-names = "emc-parent";
                        };
+
                        timing-528000000 {
                                clock-frequency = <528000000>;
                                nvidia,parent-clock-frequency = <528000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-600000000 {
                                clock-frequency = <600000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-792000000 {
                                clock-frequency = <792000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-924000000 {
                                clock-frequency = <924000000>;
                                nvidia,parent-clock-frequency = <924000000>;
                };
        };
 
+       memory-controller@70019000 {
+               emc-timings-1 {
+                       nvidia,ram-code = <1>;
+
+                       timing-12750000 {
+                               clock-frequency = <12750000>;
+
+                               nvidia,emem-configuration = <
+                                       0x40040001 0x8000000a
+                                       0x00000001 0x00000001
+                                       0x00000002 0x00000000
+                                       0x00000002 0x00000001
+                                       0x00000003 0x00000008
+                                       0x00000003 0x00000002
+                                       0x00000003 0x00000006
+                                       0x06030203 0x000a0502
+                                       0x77e30303 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-20400000 {
+                               clock-frequency = <20400000>;
+
+                               nvidia,emem-configuration = <
+                                       0x40020001 0x80000012
+                                       0x00000001 0x00000001
+                                       0x00000002 0x00000000
+                                       0x00000002 0x00000001
+                                       0x00000003 0x00000008
+                                       0x00000003 0x00000002
+                                       0x00000003 0x00000006
+                                       0x06030203 0x000a0502
+                                       0x76230303 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-40800000 {
+                               clock-frequency = <40800000>;
+
+                               nvidia,emem-configuration = <
+                                       0xa0000001 0x80000017
+                                       0x00000001 0x00000001
+                                       0x00000002 0x00000000
+                                       0x00000002 0x00000001
+                                       0x00000003 0x00000008
+                                       0x00000003 0x00000002
+                                       0x00000003 0x00000006
+                                       0x06030203 0x000a0502
+                                       0x74a30303 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-68000000 {
+                               clock-frequency = <68000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000001 0x8000001e
+                                       0x00000001 0x00000001
+                                       0x00000002 0x00000000
+                                       0x00000002 0x00000001
+                                       0x00000003 0x00000008
+                                       0x00000003 0x00000002
+                                       0x00000003 0x00000006
+                                       0x06030203 0x000a0502
+                                       0x74230403 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000001 0x80000026
+                                       0x00000001 0x00000001
+                                       0x00000003 0x00000000
+                                       0x00000002 0x00000001
+                                       0x00000003 0x00000008
+                                       0x00000003 0x00000002
+                                       0x00000003 0x00000006
+                                       0x06030203 0x000a0503
+                                       0x73c30504 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x01000003 0x80000040
+                                       0x00000001 0x00000001
+                                       0x00000004 0x00000002
+                                       0x00000003 0x00000001
+                                       0x00000003 0x00000008
+                                       0x00000003 0x00000002
+                                       0x00000004 0x00000006
+                                       0x06040203 0x000a0504
+                                       0x73840a05 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-300000000 {
+                               clock-frequency = <300000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000004 0x80000040
+                                       0x00000001 0x00000002
+                                       0x00000007 0x00000004
+                                       0x00000004 0x00000001
+                                       0x00000002 0x00000007
+                                       0x00000002 0x00000002
+                                       0x00000004 0x00000006
+                                       0x06040202 0x000b0607
+                                       0x77450e08 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-396000000 {
+                               clock-frequency = <396000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000005 0x80000040
+                                       0x00000001 0x00000002
+                                       0x00000009 0x00000005
+                                       0x00000006 0x00000001
+                                       0x00000002 0x00000008
+                                       0x00000002 0x00000002
+                                       0x00000004 0x00000006
+                                       0x06040202 0x000d0709
+                                       0x7586120a 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-528000000 {
+                               clock-frequency = <528000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000007 0x80000040
+                                       0x00000002 0x00000003
+                                       0x0000000c 0x00000007
+                                       0x00000008 0x00000001
+                                       0x00000002 0x00000009
+                                       0x00000002 0x00000002
+                                       0x00000005 0x00000006
+                                       0x06050202 0x0010090c
+                                       0x7428180d 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-600000000 {
+                               clock-frequency = <600000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000009 0x80000040
+                                       0x00000003 0x00000004
+                                       0x0000000e 0x00000009
+                                       0x0000000a 0x00000001
+                                       0x00000003 0x0000000b
+                                       0x00000002 0x00000002
+                                       0x00000005 0x00000007
+                                       0x07050202 0x00130b0e
+                                       0x73a91b0f 0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-792000000 {
+                               clock-frequency = <792000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0e00000b 0x80000040
+                                       0x00000004 0x00000005
+                                       0x00000013 0x0000000c
+                                       0x0000000d 0x00000002
+                                       0x00000003 0x0000000c
+                                       0x00000002 0x00000002
+                                       0x00000006 0x00000008
+                                       0x08060202 0x00170e13
+                                       0x736c2414 0x70000f02
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-924000000 {
+                               clock-frequency = <924000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0e00000d 0x80000040
+                                       0x00000005 0x00000006
+                                       0x00000016 0x0000000e
+                                       0x0000000f 0x00000002
+                                       0x00000004 0x0000000e
+                                       0x00000002 0x00000002
+                                       0x00000006 0x00000009
+                                       0x09060202 0x001a1016
+                                       0x734e2a17 0x70000f02
+                                       0x001f0000
+                               >;
+                       };
+               };
+       };
+
        external-memory-controller@7001b000 {
                emc-timings-1 {
                        nvidia,ram-code = <1>;
                                        0x00000011
                                >;
                        };
-
-               };
-       };
-
-       memory-controller@70019000 {
-               emc-timings-1 {
-                       nvidia,ram-code = <1>;
-
-                       timing-12750000 {
-                               clock-frequency = <12750000>;
-
-                               nvidia,emem-configuration = <
-                                       0x40040001 0x8000000a
-                                       0x00000001 0x00000001
-                                       0x00000002 0x00000000
-                                       0x00000002 0x00000001
-                                       0x00000003 0x00000008
-                                       0x00000003 0x00000002
-                                       0x00000003 0x00000006
-                                       0x06030203 0x000a0502
-                                       0x77e30303 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-20400000 {
-                               clock-frequency = <20400000>;
-
-                               nvidia,emem-configuration = <
-                                       0x40020001 0x80000012
-                                       0x00000001 0x00000001
-                                       0x00000002 0x00000000
-                                       0x00000002 0x00000001
-                                       0x00000003 0x00000008
-                                       0x00000003 0x00000002
-                                       0x00000003 0x00000006
-                                       0x06030203 0x000a0502
-                                       0x76230303 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-40800000 {
-                               clock-frequency = <40800000>;
-
-                               nvidia,emem-configuration = <
-                                       0xa0000001 0x80000017
-                                       0x00000001 0x00000001
-                                       0x00000002 0x00000000
-                                       0x00000002 0x00000001
-                                       0x00000003 0x00000008
-                                       0x00000003 0x00000002
-                                       0x00000003 0x00000006
-                                       0x06030203 0x000a0502
-                                       0x74a30303 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-68000000 {
-                               clock-frequency = <68000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x00000001 0x8000001e
-                                       0x00000001 0x00000001
-                                       0x00000002 0x00000000
-                                       0x00000002 0x00000001
-                                       0x00000003 0x00000008
-                                       0x00000003 0x00000002
-                                       0x00000003 0x00000006
-                                       0x06030203 0x000a0502
-                                       0x74230403 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-102000000 {
-                               clock-frequency = <102000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x08000001 0x80000026
-                                       0x00000001 0x00000001
-                                       0x00000003 0x00000000
-                                       0x00000002 0x00000001
-                                       0x00000003 0x00000008
-                                       0x00000003 0x00000002
-                                       0x00000003 0x00000006
-                                       0x06030203 0x000a0503
-                                       0x73c30504 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-204000000 {
-                               clock-frequency = <204000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x01000003 0x80000040
-                                       0x00000001 0x00000001
-                                       0x00000004 0x00000002
-                                       0x00000003 0x00000001
-                                       0x00000003 0x00000008
-                                       0x00000003 0x00000002
-                                       0x00000004 0x00000006
-                                       0x06040203 0x000a0504
-                                       0x73840a05 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-300000000 {
-                               clock-frequency = <300000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x08000004 0x80000040
-                                       0x00000001 0x00000002
-                                       0x00000007 0x00000004
-                                       0x00000004 0x00000001
-                                       0x00000002 0x00000007
-                                       0x00000002 0x00000002
-                                       0x00000004 0x00000006
-                                       0x06040202 0x000b0607
-                                       0x77450e08 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-396000000 {
-                               clock-frequency = <396000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0f000005 0x80000040
-                                       0x00000001 0x00000002
-                                       0x00000009 0x00000005
-                                       0x00000006 0x00000001
-                                       0x00000002 0x00000008
-                                       0x00000002 0x00000002
-                                       0x00000004 0x00000006
-                                       0x06040202 0x000d0709
-                                       0x7586120a 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-528000000 {
-                               clock-frequency = <528000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0f000007 0x80000040
-                                       0x00000002 0x00000003
-                                       0x0000000c 0x00000007
-                                       0x00000008 0x00000001
-                                       0x00000002 0x00000009
-                                       0x00000002 0x00000002
-                                       0x00000005 0x00000006
-                                       0x06050202 0x0010090c
-                                       0x7428180d 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-600000000 {
-                               clock-frequency = <600000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x00000009 0x80000040
-                                       0x00000003 0x00000004
-                                       0x0000000e 0x00000009
-                                       0x0000000a 0x00000001
-                                       0x00000003 0x0000000b
-                                       0x00000002 0x00000002
-                                       0x00000005 0x00000007
-                                       0x07050202 0x00130b0e
-                                       0x73a91b0f 0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-792000000 {
-                               clock-frequency = <792000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0e00000b 0x80000040
-                                       0x00000004 0x00000005
-                                       0x00000013 0x0000000c
-                                       0x0000000d 0x00000002
-                                       0x00000003 0x0000000c
-                                       0x00000002 0x00000002
-                                       0x00000006 0x00000008
-                                       0x08060202 0x00170e13
-                                       0x736c2414 0x70000f02
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-924000000 {
-                               clock-frequency = <924000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0e00000d 0x80000040
-                                       0x00000005 0x00000006
-                                       0x00000016 0x0000000e
-                                       0x0000000f 0x00000002
-                                       0x00000004 0x0000000e
-                                       0x00000002 0x00000002
-                                       0x00000006 0x00000009
-                                       0x09060202 0x001a1016
-                                       0x734e2a17 0x70000f02
-                                       0x001f0000
-                               >;
-                       };
                };
        };
 };
 
 &emc_icc_dvfs_opp_table {
-       /delete-node/ opp@1200000000,1100;
+       /delete-node/ opp-1200000000-1100;
 };
 
 &emc_bw_dfs_opp_table {
-       /delete-node/ opp@1200000000;
+       /delete-node/ opp-1200000000;
 };
index 28c29b6..3209554 100644 (file)
 
 &gpio {
        /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
-       pex-perst-n {
+       pex-perst-n-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
                output-high;
index f3afde4..814257c 100644 (file)
 
 &gpio {
        /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
-       pex-perst-n {
+       pex-perst-n-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
                output-high;
index cde9ae8..dbb0da0 100644 (file)
@@ -57,7 +57,7 @@
                };
        };
 
-       gpu@0,57000000 {
+       gpu@57000000 {
                /*
                 * Node left disabled on purpose - the bootloader will enable
                 * it after having set the VPR up
 
        serial@70006040 {
                compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006200 {
                compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006300 {
                compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        hdmi_ddc: i2c@7000c700 {
                        usb2-0 {
                                status = "okay";
                                mode = "otg";
+                               usb-role-switch;
                                vbus-supply = <&reg_usbo1_vbus>;
                        };
 
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        trips {
                                cpu-shutdown-trip {
                                        temperature = <101000>;
                        };
                };
 
-               mem {
+               mem-thermal {
                        trips {
                                mem-shutdown-trip {
                                        temperature = <101000>;
                        };
                };
 
-               gpu {
+               gpu-thermal {
                        trips {
                                gpu-shutdown-trip {
                                        temperature = <101000>;
 
 &gpio {
        /* I210 Gigabit Ethernet Controller Reset */
-       lan-reset-n {
+       lan-reset-n-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(S, 2) GPIO_ACTIVE_HIGH>;
                output-high;
        };
 
        /* Control MXM3 pin 26 Reset Module Output Carrier Input */
-       reset-moci-ctrl {
+       reset-moci-ctrl-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(U, 4) GPIO_ACTIVE_HIGH>;
                output-high;
index a46d9ba..d3f16c1 100644 (file)
@@ -56,7 +56,7 @@
                };
        };
 
-       gpu@0,57000000 {
+       gpu@57000000 {
                /*
                 * Node left disabled on purpose - the bootloader will enable
                 * it after having set the VPR up
 
        serial@70006040 {
                compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006200 {
                compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006300 {
                compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        hdmi_ddc: i2c@7000c400 {
                        usb2-0 {
                                status = "okay";
                                mode = "otg";
+                               usb-role-switch;
                                vbus-supply = <&reg_usbo1_vbus>;
                        };
 
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        trips {
                                cpu-shutdown-trip {
                                        temperature = <101000>;
                        };
                };
 
-               mem {
+               mem-thermal {
                        trips {
                                mem-shutdown-trip {
                                        temperature = <101000>;
                        };
                };
 
-               gpu {
+               gpu-thermal {
                        trips {
                                gpu-shutdown-trip {
                                        temperature = <101000>;
 
 &gpio {
        /* I210 Gigabit Ethernet Controller Reset */
-       lan-reset-n {
+       lan-reset-n-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(S, 2) GPIO_ACTIVE_HIGH>;
                output-high;
        };
 
        /* Control MXM3 pin 26 Reset Module Output Carrier Input */
-       reset-moci-ctrl {
+       reset-moci-ctrl-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(U, 4) GPIO_ACTIVE_HIGH>;
                output-high;
index df4e463..79e776d 100644 (file)
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-20400000 {
                                clock-frequency = <20400000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-40800000 {
                                clock-frequency = <40800000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-68000000 {
                                clock-frequency = <68000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-102000000 {
                                clock-frequency = <102000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-204000000 {
                                clock-frequency = <204000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-300000000 {
                                clock-frequency = <300000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C>;
                                clock-names = "emc-parent";
                        };
+
                        timing-396000000 {
                                clock-frequency = <396000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M>;
                                clock-names = "emc-parent";
                        };
+
                        timing-528000000 {
                                clock-frequency = <528000000>;
                                nvidia,parent-clock-frequency = <528000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-600000000 {
                                clock-frequency = <600000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-792000000 {
                                clock-frequency = <792000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-924000000 {
                                clock-frequency = <924000000>;
                                nvidia,parent-clock-frequency = <924000000>;
                };
        };
 
-       external-memory-controller@7001b000 {
+       memory-controller@70019000 {
                emc-timings-3 {
                        nvidia,ram-code = <3>;
 
                        timing-12750000 {
                                clock-frequency = <12750000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
+                               nvidia,emem-configuration = <
+                                       0x40040001
+                                       0x8000000a
+                                       0x00000001
+                                       0x00000001
+                                       0x00000002
                                        0x00000000
+                                       0x00000002
+                                       0x00000001
                                        0x00000003
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000004
-                                       0x0000000a
-                                       0x00000005
-                                       0x0000000b
-                                       0x00000000
-                                       0x00000000
+                                       0x00000008
                                        0x00000003
+                                       0x00000002
                                        0x00000003
-                                       0x00000000
-                                       0x00000006
-                                       0x00000006
                                        0x00000006
+                                       0x06030203
+                                       0x000a0502
+                                       0x77e30303
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-20400000 {
+                               clock-frequency = <20400000>;
+
+                               nvidia,emem-configuration = <
+                                       0x40020001
+                                       0x80000012
+                                       0x00000001
+                                       0x00000001
                                        0x00000002
                                        0x00000000
-                                       0x00000005
-                                       0x00000005
-                                       0x00010000
-                                       0x00000003
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000004
-                                       0x0000000c
-                                       0x0000000d
-                                       0x0000000f
-                                       0x00000060
-                                       0x00000000
-                                       0x00000018
-                                       0x00000002
                                        0x00000002
                                        0x00000001
-                                       0x00000000
-                                       0x00000007
-                                       0x0000000f
-                                       0x00000005
-                                       0x00000005
-                                       0x00000004
-                                       0x00000005
-                                       0x00000004
-                                       0x00000000
-                                       0x00000000
-                                       0x00000005
-                                       0x00000005
-                                       0x00000064
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x106aa298
-                                       0x002c00a0
-                                       0x00008000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x000fc000
-                                       0x000fc000
-                                       0x000fc000
-                                       0x000fc000
-                                       0x0000fc00
-                                       0x0000fc00
-                                       0x0000fc00
-                                       0x0000fc00
-                                       0x10000280
-                                       0x00000000
-                                       0x00111111
-                                       0x00000000
-                                       0x00000000
-                                       0x77ffc081
-                                       0x00000e0e
-                                       0x81f1f108
-                                       0x07070004
-                                       0x0000003f
-                                       0x016eeeee
-                                       0x51451400
-                                       0x00514514
-                                       0x00514514
-                                       0x51451400
-                                       0x0000003f
-                                       0x00000007
-                                       0x00000000
-                                       0x00000042
-                                       0x000e000e
-                                       0x00000000
                                        0x00000003
-                                       0x0000f2f3
-                                       0x800001c5
-                                       0x0000000a
+                                       0x00000008
+                                       0x00000003
+                                       0x00000002
+                                       0x00000003
+                                       0x00000006
+                                       0x06030203
+                                       0x000a0502
+                                       0x76230303
+                                       0x70000f03
+                                       0x001f0000
                                >;
                        };
 
-                       timing-20400000 {
-                               clock-frequency = <20400000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
+                       timing-40800000 {
+                               clock-frequency = <40800000>;
 
-                               nvidia,emc-configuration = <
-                                       0x00000000
-                                       0x00000005
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000004
-                                       0x0000000a
-                                       0x00000005
-                                       0x0000000b
-                                       0x00000000
+                               nvidia,emem-configuration = <
+                                       0xa0000001
+                                       0x80000017
+                                       0x00000001
+                                       0x00000001
+                                       0x00000002
                                        0x00000000
+                                       0x00000002
+                                       0x00000001
                                        0x00000003
+                                       0x00000008
                                        0x00000003
-                                       0x00000000
-                                       0x00000006
-                                       0x00000006
-                                       0x00000006
                                        0x00000002
-                                       0x00000000
-                                       0x00000005
-                                       0x00000005
-                                       0x00010000
                                        0x00000003
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000004
-                                       0x0000000c
-                                       0x0000000d
-                                       0x0000000f
-                                       0x0000009a
-                                       0x00000000
-                                       0x00000026
+                                       0x00000006
+                                       0x06030203
+                                       0x000a0502
+                                       0x74a30303
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-68000000 {
+                               clock-frequency = <68000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000001
+                                       0x8000001e
+                                       0x00000001
+                                       0x00000001
                                        0x00000002
+                                       0x00000000
                                        0x00000002
                                        0x00000001
-                                       0x00000000
-                                       0x00000007
-                                       0x0000000f
-                                       0x00000006
-                                       0x00000006
-                                       0x00000004
-                                       0x00000005
-                                       0x00000004
-                                       0x00000000
-                                       0x00000000
-                                       0x00000005
-                                       0x00000005
-                                       0x000000a0
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x106aa298
-                                       0x002c00a0
-                                       0x00008000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x000fc000
-                                       0x000fc000
-                                       0x000fc000
-                                       0x000fc000
-                                       0x0000fc00
-                                       0x0000fc00
-                                       0x0000fc00
-                                       0x0000fc00
-                                       0x10000280
-                                       0x00000000
-                                       0x00111111
-                                       0x00000000
-                                       0x00000000
-                                       0x77ffc081
-                                       0x00000e0e
-                                       0x81f1f108
-                                       0x07070004
-                                       0x0000003f
-                                       0x016eeeee
-                                       0x51451400
-                                       0x00514514
-                                       0x00514514
-                                       0x51451400
-                                       0x0000003f
-                                       0x0000000b
-                                       0x00000000
-                                       0x00000042
-                                       0x000e000e
-                                       0x00000000
                                        0x00000003
-                                       0x0000f2f3
-                                       0x8000023a
-                                       0x0000000a
+                                       0x00000008
+                                       0x00000003
+                                       0x00000002
+                                       0x00000003
+                                       0x00000006
+                                       0x06030203
+                                       0x000a0502
+                                       0x74230403
+                                       0x70000f03
+                                       0x001f0000
                                >;
                        };
 
-                       timing-40800000 {
-                               clock-frequency = <40800000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
 
-                               nvidia,emc-configuration = <
+                               nvidia,emem-configuration = <
+                                       0x08000001
+                                       0x80000026
                                        0x00000001
-                                       0x0000000a
-                                       0x00000000
                                        0x00000001
+                                       0x00000003
                                        0x00000000
-                                       0x00000004
-                                       0x0000000a
-                                       0x00000005
-                                       0x0000000b
-                                       0x00000000
-                                       0x00000000
+                                       0x00000002
+                                       0x00000001
                                        0x00000003
+                                       0x00000008
                                        0x00000003
-                                       0x00000000
-                                       0x00000006
-                                       0x00000006
-                                       0x00000006
                                        0x00000002
-                                       0x00000000
-                                       0x00000005
-                                       0x00000005
-                                       0x00010000
                                        0x00000003
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
+                                       0x00000006
+                                       0x06030203
+                                       0x000a0503
+                                       0x73c30504
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x01000003
+                                       0x80000040
+                                       0x00000001
+                                       0x00000001
                                        0x00000004
-                                       0x0000000c
-                                       0x0000000d
-                                       0x0000000f
-                                       0x00000134
-                                       0x00000000
-                                       0x0000004d
-                                       0x00000002
                                        0x00000002
+                                       0x00000003
                                        0x00000001
-                                       0x00000000
+                                       0x00000003
                                        0x00000008
-                                       0x0000000f
-                                       0x0000000c
-                                       0x0000000c
+                                       0x00000003
+                                       0x00000002
                                        0x00000004
-                                       0x00000005
+                                       0x00000006
+                                       0x06040203
+                                       0x000a0504
+                                       0x73840a05
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-300000000 {
+                               clock-frequency = <300000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000004
+                                       0x80000040
+                                       0x00000001
+                                       0x00000002
+                                       0x00000007
                                        0x00000004
-                                       0x00000000
-                                       0x00000000
-                                       0x00000005
-                                       0x00000005
-                                       0x0000013f
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x106aa298
-                                       0x002c00a0
-                                       0x00008000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00080000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x000fc000
-                                       0x000fc000
-                                       0x000fc000
-                                       0x000fc000
-                                       0x0000fc00
-                                       0x0000fc00
-                                       0x0000fc00
-                                       0x0000fc00
-                                       0x10000280
-                                       0x00000000
-                                       0x00111111
-                                       0x00000000
-                                       0x00000000
-                                       0x77ffc081
-                                       0x00000e0e
-                                       0x81f1f108
-                                       0x07070004
-                                       0x0000003f
-                                       0x016eeeee
-                                       0x51451400
-                                       0x00514514
-                                       0x00514514
-                                       0x51451400
-                                       0x0000003f
-                                       0x00000015
-                                       0x00000000
-                                       0x00000042
-                                       0x000e000e
-                                       0x00000000
+                                       0x00000004
+                                       0x00000001
+                                       0x00000002
+                                       0x00000007
+                                       0x00000002
+                                       0x00000002
+                                       0x00000004
+                                       0x00000006
+                                       0x06040202
+                                       0x000b0607
+                                       0x77450e08
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-396000000 {
+                               clock-frequency = <396000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000005
+                                       0x80000040
+                                       0x00000001
+                                       0x00000002
+                                       0x00000009
+                                       0x00000005
+                                       0x00000006
+                                       0x00000001
+                                       0x00000002
+                                       0x00000008
+                                       0x00000002
+                                       0x00000002
+                                       0x00000004
+                                       0x00000006
+                                       0x06040202
+                                       0x000d0709
+                                       0x7586120a
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-528000000 {
+                               clock-frequency = <528000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000007
+                                       0x80000040
+                                       0x00000002
                                        0x00000003
-                                       0x0000f2f3
-                                       0x80000370
+                                       0x0000000c
+                                       0x00000007
+                                       0x00000008
+                                       0x00000001
+                                       0x00000002
+                                       0x00000009
+                                       0x00000002
+                                       0x00000002
+                                       0x00000005
+                                       0x00000006
+                                       0x06050202
+                                       0x0010090c
+                                       0x7428180d
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-600000000 {
+                               clock-frequency = <600000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000009
+                                       0x80000040
+                                       0x00000003
+                                       0x00000004
+                                       0x0000000e
+                                       0x00000009
                                        0x0000000a
+                                       0x00000001
+                                       0x00000003
+                                       0x0000000b
+                                       0x00000002
+                                       0x00000002
+                                       0x00000005
+                                       0x00000007
+                                       0x07050202
+                                       0x00130b0e
+                                       0x73a91b0f
+                                       0x70000f03
+                                       0x001f0000
                                >;
                        };
 
-                       timing-68000000 {
-                               clock-frequency = <68000000>;
+                       timing-792000000 {
+                               clock-frequency = <792000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0e00000b
+                                       0x80000040
+                                       0x00000004
+                                       0x00000005
+                                       0x00000013
+                                       0x0000000c
+                                       0x0000000d
+                                       0x00000002
+                                       0x00000003
+                                       0x0000000c
+                                       0x00000002
+                                       0x00000002
+                                       0x00000006
+                                       0x00000008
+                                       0x08060202
+                                       0x00170e13
+                                       0x736c2414
+                                       0x70000f02
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-924000000 {
+                               clock-frequency = <924000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0e00000d
+                                       0x80000040
+                                       0x00000005
+                                       0x00000006
+                                       0x00000016
+                                       0x0000000e
+                                       0x0000000f
+                                       0x00000002
+                                       0x00000004
+                                       0x0000000e
+                                       0x00000002
+                                       0x00000002
+                                       0x00000006
+                                       0x00000009
+                                       0x09060202
+                                       0x001a1016
+                                       0x734e2a17
+                                       0x70000f02
+                                       0x001f0000
+                               >;
+                       };
+               };
+       };
+
+       external-memory-controller@7001b000 {
+               emc-timings-3 {
+                       nvidia,ram-code = <3>;
+
+                       timing-12750000 {
+                               clock-frequency = <12750000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
+                                       0x00000000
                                        0x00000003
-                                       0x00000011
                                        0x00000000
-                                       0x00000002
+                                       0x00000000
                                        0x00000000
                                        0x00000004
                                        0x0000000a
                                        0x0000000c
                                        0x0000000d
                                        0x0000000f
-                                       0x00000202
+                                       0x00000060
                                        0x00000000
-                                       0x00000080
+                                       0x00000018
                                        0x00000002
                                        0x00000002
                                        0x00000001
                                        0x00000000
+                                       0x00000007
                                        0x0000000f
-                                       0x0000000f
-                                       0x00000013
-                                       0x00000013
+                                       0x00000005
+                                       0x00000005
                                        0x00000004
                                        0x00000005
                                        0x00000004
-                                       0x00000001
+                                       0x00000000
                                        0x00000000
                                        0x00000005
                                        0x00000005
-                                       0x00000213
+                                       0x00000064
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00514514
                                        0x51451400
                                        0x0000003f
-                                       0x00000022
+                                       0x00000007
                                        0x00000000
                                        0x00000042
                                        0x000e000e
                                        0x00000000
                                        0x00000003
                                        0x0000f2f3
-                                       0x8000050e
+                                       0x800001c5
                                        0x0000000a
                                >;
                        };
 
-                       timing-102000000 {
-                               clock-frequency = <102000000>;
-
+                       timing-20400000 {
+                               clock-frequency = <20400000>;
+
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000004
-                                       0x0000001a
                                        0x00000000
-                                       0x00000003
-                                       0x00000001
+                                       0x00000005
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
                                        0x00000004
                                        0x0000000a
                                        0x00000005
                                        0x0000000b
-                                       0x00000001
-                                       0x00000001
+                                       0x00000000
+                                       0x00000000
                                        0x00000003
                                        0x00000003
                                        0x00000000
                                        0x0000000c
                                        0x0000000d
                                        0x0000000f
-                                       0x00000304
+                                       0x0000009a
                                        0x00000000
-                                       0x000000c1
+                                       0x00000026
                                        0x00000002
                                        0x00000002
                                        0x00000001
                                        0x00000000
-                                       0x00000018
+                                       0x00000007
                                        0x0000000f
-                                       0x0000001c
-                                       0x0000001c
+                                       0x00000006
+                                       0x00000006
                                        0x00000004
                                        0x00000005
                                        0x00000004
-                                       0x00000002
+                                       0x00000000
                                        0x00000000
                                        0x00000005
                                        0x00000005
-                                       0x0000031c
+                                       0x000000a0
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00514514
                                        0x51451400
                                        0x0000003f
-                                       0x00000033
+                                       0x0000000b
                                        0x00000000
                                        0x00000042
                                        0x000e000e
                                        0x00000000
                                        0x00000003
                                        0x0000f2f3
-                                       0x80000713
+                                       0x8000023a
                                        0x0000000a
                                >;
                        };
 
-                       timing-204000000 {
-                               clock-frequency = <204000000>;
+                       timing-40800000 {
+                               clock-frequency = <40800000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
                                nvidia,emc-bgbias-ctl0 = <0x00000008>;
                                nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008cd>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
                                nvidia,emc-mode-1 = <0x80100003>;
                                nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-sel-dpd-ctrl = <0x00040128>;
                                nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000009
-                                       0x00000035
+                                       0x00000001
+                                       0x0000000a
                                        0x00000000
-                                       0x00000006
-                                       0x00000002
-                                       0x00000005
+                                       0x00000001
+                                       0x00000000
+                                       0x00000004
                                        0x0000000a
                                        0x00000005
                                        0x0000000b
-                                       0x00000002
-                                       0x00000002
+                                       0x00000000
+                                       0x00000000
                                        0x00000003
                                        0x00000003
                                        0x00000000
-                                       0x00000005
-                                       0x00000005
+                                       0x00000006
+                                       0x00000006
                                        0x00000006
                                        0x00000002
                                        0x00000000
-                                       0x00000004
-                                       0x00000006
+                                       0x00000005
+                                       0x00000005
                                        0x00010000
                                        0x00000003
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00000003
+                                       0x00000004
+                                       0x0000000c
                                        0x0000000d
                                        0x0000000f
-                                       0x00000011
-                                       0x00000607
+                                       0x00000134
                                        0x00000000
-                                       0x00000181
+                                       0x0000004d
                                        0x00000002
                                        0x00000002
                                        0x00000001
                                        0x00000000
-                                       0x00000032
+                                       0x00000008
                                        0x0000000f
-                                       0x00000038
-                                       0x00000038
+                                       0x0000000c
+                                       0x0000000c
                                        0x00000004
                                        0x00000005
                                        0x00000004
-                                       0x00000006
+                                       0x00000000
                                        0x00000000
                                        0x00000005
                                        0x00000005
-                                       0x00000638
+                                       0x0000013f
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00008000
                                        0x00000000
                                        0x00000000
-                                       0x00008000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00090000
-                                       0x00090000
-                                       0x00090000
-                                       0x00090000
-                                       0x00009000
-                                       0x00009000
-                                       0x00009000
-                                       0x00009000
+                                       0x00000000
+                                       0x00000000
+                                       0x000fc000
+                                       0x000fc000
+                                       0x000fc000
+                                       0x000fc000
+                                       0x0000fc00
+                                       0x0000fc00
+                                       0x0000fc00
+                                       0x0000fc00
                                        0x10000280
                                        0x00000000
                                        0x00111111
                                        0x00000000
                                        0x00000000
                                        0x77ffc081
-                                       0x00000707
+                                       0x00000e0e
                                        0x81f1f108
                                        0x07070004
                                        0x0000003f
                                        0x00514514
                                        0x51451400
                                        0x0000003f
-                                       0x00000066
+                                       0x00000015
                                        0x00000000
-                                       0x00000100
+                                       0x00000042
                                        0x000e000e
                                        0x00000000
                                        0x00000003
-                                       0x0000d2b3
-                                       0x80000d22
+                                       0x0000f2f3
+                                       0x80000370
                                        0x0000000a
                                >;
                        };
 
-                       timing-300000000 {
-                               clock-frequency = <300000000>;
+                       timing-68000000 {
+                               clock-frequency = <68000000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73340000>;
-                               nvidia,emc-cfg-2 = <0x000008d5>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000321>;
-                               nvidia,emc-mrs-wait-cnt = <0x0173000e>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
                                nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
-                                       0x0000000d
-                                       0x0000004d
-                                       0x00000000
-                                       0x00000009
-                                       0x00000003
-                                       0x00000004
-                                       0x00000008
-                                       0x00000002
-                                       0x00000009
                                        0x00000003
-                                       0x00000003
-                                       0x00000002
+                                       0x00000011
+                                       0x00000000
                                        0x00000002
                                        0x00000000
+                                       0x00000004
+                                       0x0000000a
+                                       0x00000005
+                                       0x0000000b
+                                       0x00000000
+                                       0x00000000
                                        0x00000003
                                        0x00000003
-                                       0x00000005
-                                       0x00000002
                                        0x00000000
+                                       0x00000006
+                                       0x00000006
+                                       0x00000006
                                        0x00000002
-                                       0x00000007
-                                       0x00020000
+                                       0x00000000
+                                       0x00000005
+                                       0x00000005
+                                       0x00010000
                                        0x00000003
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00000001
-                                       0x0000000e
-                                       0x00000010
-                                       0x00000012
-                                       0x000008e4
+                                       0x00000004
+                                       0x0000000c
+                                       0x0000000d
+                                       0x0000000f
+                                       0x00000202
                                        0x00000000
-                                       0x00000239
-                                       0x00000001
-                                       0x00000008
+                                       0x00000080
+                                       0x00000002
+                                       0x00000002
                                        0x00000001
                                        0x00000000
-                                       0x0000004b
-                                       0x0000000e
-                                       0x00000052
-                                       0x00000200
+                                       0x0000000f
+                                       0x0000000f
+                                       0x00000013
+                                       0x00000013
                                        0x00000004
                                        0x00000005
                                        0x00000004
-                                       0x00000008
+                                       0x00000001
                                        0x00000000
                                        0x00000005
                                        0x00000005
-                                       0x00000924
+                                       0x00000213
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x104ab098
+                                       0x106aa298
                                        0x002c00a0
                                        0x00008000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00098000
-                                       0x00098000
                                        0x00000000
-                                       0x00098000
-                                       0x00098000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00050000
-                                       0x00050000
-                                       0x00050000
-                                       0x00050000
-                                       0x00005000
-                                       0x00005000
-                                       0x00005000
-                                       0x00005000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x000fc000
+                                       0x000fc000
+                                       0x000fc000
+                                       0x000fc000
+                                       0x0000fc00
+                                       0x0000fc00
+                                       0x0000fc00
+                                       0x0000fc00
                                        0x10000280
                                        0x00000000
                                        0x00111111
                                        0x00000000
                                        0x00000000
                                        0x77ffc081
-                                       0x00000505
+                                       0x00000e0e
                                        0x81f1f108
                                        0x07070004
-                                       0x00000000
+                                       0x0000003f
                                        0x016eeeee
-                                       0x51451420
+                                       0x51451400
                                        0x00514514
                                        0x00514514
                                        0x51451400
                                        0x0000003f
-                                       0x00000096
+                                       0x00000022
                                        0x00000000
-                                       0x00000100
-                                       0x0173000e
+                                       0x00000042
+                                       0x000e000e
                                        0x00000000
                                        0x00000003
-                                       0x000052a3
-                                       0x800012d7
-                                       0x00000009
+                                       0x0000f2f3
+                                       0x8000050e
+                                       0x0000000a
                                >;
                        };
 
-                       timing-396000000 {
-                               clock-frequency = <396000000>;
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73340000>;
-                               nvidia,emc-cfg-2 = <0x00000895>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000521>;
-                               nvidia,emc-mrs-wait-cnt = <0x015b000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000011
-                                       0x00000066
-                                       0x00000000
-                                       0x0000000c
                                        0x00000004
+                                       0x0000001a
+                                       0x00000000
+                                       0x00000003
+                                       0x00000001
                                        0x00000004
-                                       0x00000008
-                                       0x00000002
                                        0x0000000a
-                                       0x00000004
-                                       0x00000004
-                                       0x00000002
-                                       0x00000002
-                                       0x00000000
+                                       0x00000005
+                                       0x0000000b
+                                       0x00000001
+                                       0x00000001
                                        0x00000003
                                        0x00000003
-                                       0x00000005
+                                       0x00000000
+                                       0x00000006
+                                       0x00000006
+                                       0x00000006
                                        0x00000002
                                        0x00000000
-                                       0x00000001
-                                       0x00000008
-                                       0x00020000
+                                       0x00000005
+                                       0x00000005
+                                       0x00010000
                                        0x00000003
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00000000
+                                       0x00000004
+                                       0x0000000c
+                                       0x0000000d
                                        0x0000000f
-                                       0x00000010
-                                       0x00000012
-                                       0x00000bd1
+                                       0x00000304
                                        0x00000000
-                                       0x000002f4
-                                       0x00000001
-                                       0x00000008
+                                       0x000000c1
+                                       0x00000002
+                                       0x00000002
                                        0x00000001
                                        0x00000000
-                                       0x00000063
+                                       0x00000018
                                        0x0000000f
-                                       0x0000006c
-                                       0x00000200
+                                       0x0000001c
+                                       0x0000001c
                                        0x00000004
                                        0x00000005
                                        0x00000004
-                                       0x0000000b
+                                       0x00000002
                                        0x00000000
                                        0x00000005
                                        0x00000005
-                                       0x00000c11
+                                       0x0000031c
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x104ab098
+                                       0x106aa298
                                        0x002c00a0
                                        0x00008000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
-                                       0x00030000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00070000
-                                       0x00070000
                                        0x00000000
-                                       0x00070000
-                                       0x00070000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00038000
-                                       0x00038000
-                                       0x00038000
-                                       0x00038000
-                                       0x00003800
-                                       0x00003800
-                                       0x00003800
-                                       0x00003800
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x000fc000
+                                       0x000fc000
+                                       0x000fc000
+                                       0x000fc000
+                                       0x0000fc00
+                                       0x0000fc00
+                                       0x0000fc00
+                                       0x0000fc00
                                        0x10000280
                                        0x00000000
                                        0x00111111
                                        0x00000000
                                        0x00000000
                                        0x77ffc081
-                                       0x00000505
+                                       0x00000e0e
                                        0x81f1f108
                                        0x07070004
-                                       0x00000000
+                                       0x0000003f
                                        0x016eeeee
-                                       0x51451420
+                                       0x51451400
                                        0x00514514
                                        0x00514514
                                        0x51451400
                                        0x0000003f
-                                       0x000000c6
+                                       0x00000033
                                        0x00000000
-                                       0x00000100
-                                       0x015b000e
+                                       0x00000042
+                                       0x000e000e
                                        0x00000000
                                        0x00000003
-                                       0x000052a3
-                                       0x8000188b
-                                       0x00000009
+                                       0x0000f2f3
+                                       0x80000713
+                                       0x0000000a
                                >;
                        };
 
-                       timing-528000000 {
-                               clock-frequency = <528000000>;
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008cd>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-1 = <0x80100003>;
                                nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000941>;
-                               nvidia,emc-mrs-wait-cnt = <0x0139000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0123133d>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
                                nvidia,emc-zcal-interval = <0x00020000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000018
-                                       0x00000088
+                                       0x00000009
+                                       0x00000035
                                        0x00000000
-                                       0x00000010
                                        0x00000006
-                                       0x00000006
-                                       0x00000009
                                        0x00000002
-                                       0x0000000d
-                                       0x00000006
-                                       0x00000006
+                                       0x00000005
+                                       0x0000000a
+                                       0x00000005
+                                       0x0000000b
                                        0x00000002
                                        0x00000002
-                                       0x00000000
                                        0x00000003
                                        0x00000003
+                                       0x00000000
+                                       0x00000005
+                                       0x00000005
                                        0x00000006
                                        0x00000002
                                        0x00000000
-                                       0x00000001
-                                       0x00000009
-                                       0x00030000
+                                       0x00000004
+                                       0x00000006
+                                       0x00010000
                                        0x00000003
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
+                                       0x00000003
+                                       0x0000000d
+                                       0x0000000f
+                                       0x00000011
+                                       0x00000607
                                        0x00000000
-                                       0x00000010
-                                       0x00000012
-                                       0x00000014
-                                       0x00000fd6
-                                       0x00000000
-                                       0x000003f5
+                                       0x00000181
+                                       0x00000002
                                        0x00000002
-                                       0x0000000b
                                        0x00000001
                                        0x00000000
-                                       0x00000085
-                                       0x00000012
-                                       0x00000090
-                                       0x00000200
+                                       0x00000032
+                                       0x0000000f
+                                       0x00000038
+                                       0x00000038
                                        0x00000004
                                        0x00000005
                                        0x00000004
-                                       0x00000010
-                                       0x00000000
-                                       0x00000006
                                        0x00000006
-                                       0x00001017
                                        0x00000000
+                                       0x00000005
+                                       0x00000005
+                                       0x00000638
                                        0x00000000
                                        0x00000000
-                                       0x104ab098
-                                       0xe01200b1
+                                       0x00000000
+                                       0x106aa298
+                                       0x002c00a0
                                        0x00008000
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
+                                       0x00080000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00054000
-                                       0x00054000
                                        0x00000000
-                                       0x00054000
-                                       0x00054000
                                        0x00000000
+                                       0x00008000
                                        0x00000000
                                        0x00000000
+                                       0x00008000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x0000000c
-                                       0x0000000c
-                                       0x0000000c
-                                       0x0000000c
-                                       0x0000000c
-                                       0x0000000c
-                                       0x0000000c
-                                       0x0000000c
-                                       0x100002a0
+                                       0x00000000
+                                       0x00000000
+                                       0x00090000
+                                       0x00090000
+                                       0x00090000
+                                       0x00090000
+                                       0x00009000
+                                       0x00009000
+                                       0x00009000
+                                       0x00009000
+                                       0x10000280
                                        0x00000000
                                        0x00111111
                                        0x00000000
                                        0x00000000
-                                       0x77ffc085
-                                       0x00000505
+                                       0x77ffc081
+                                       0x00000707
                                        0x81f1f108
                                        0x07070004
-                                       0x00000000
+                                       0x0000003f
                                        0x016eeeee
-                                       0x51451420
+                                       0x51451400
                                        0x00514514
                                        0x00514514
                                        0x51451400
-                                       0x0606003f
-                                       0x00000000
+                                       0x0000003f
+                                       0x00000066
                                        0x00000000
                                        0x00000100
-                                       0x0139000e
+                                       0x000e000e
                                        0x00000000
                                        0x00000003
-                                       0x000042a0
-                                       0x80002062
+                                       0x0000d2b3
+                                       0x80000d22
                                        0x0000000a
                                >;
                        };
 
-                       timing-600000000 {
-                               clock-frequency = <600000000>;
+                       timing-300000000 {
+                               clock-frequency = <300000000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
                                nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-cfg = <0x73340000>;
+                               nvidia,emc-cfg-2 = <0x000008d5>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
                                nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200010>;
+                               nvidia,emc-mode-2 = <0x80200000>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000b61>;
-                               nvidia,emc-mrs-wait-cnt = <0x0127000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0121113d>;
+                               nvidia,emc-mode-reset = <0x80000321>;
+                               nvidia,emc-mrs-wait-cnt = <0x0173000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
                                nvidia,emc-zcal-interval = <0x00020000>;
 
                                nvidia,emc-configuration = <
-                                       0x0000001b
-                                       0x0000009b
+                                       0x0000000d
+                                       0x0000004d
                                        0x00000000
-                                       0x00000013
-                                       0x00000007
-                                       0x00000007
-                                       0x0000000b
+                                       0x00000009
+                                       0x00000003
+                                       0x00000004
+                                       0x00000008
+                                       0x00000002
+                                       0x00000009
+                                       0x00000003
                                        0x00000003
-                                       0x00000010
-                                       0x00000007
-                                       0x00000007
                                        0x00000002
                                        0x00000002
                                        0x00000000
+                                       0x00000003
+                                       0x00000003
                                        0x00000005
-                                       0x00000005
-                                       0x0000000a
                                        0x00000002
                                        0x00000000
-                                       0x00000003
-                                       0x0000000b
-                                       0x00070000
+                                       0x00000002
+                                       0x00000007
+                                       0x00020000
                                        0x00000003
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00000002
+                                       0x00000001
+                                       0x0000000e
+                                       0x00000010
                                        0x00000012
-                                       0x00000016
-                                       0x00000018
-                                       0x00001208
+                                       0x000008e4
                                        0x00000000
-                                       0x00000482
-                                       0x00000002
-                                       0x0000000d
+                                       0x00000239
+                                       0x00000001
+                                       0x00000008
                                        0x00000001
                                        0x00000000
-                                       0x00000097
-                                       0x00000015
-                                       0x000000a3
+                                       0x0000004b
+                                       0x0000000e
+                                       0x00000052
                                        0x00000200
                                        0x00000004
                                        0x00000005
                                        0x00000004
-                                       0x00000013
+                                       0x00000008
                                        0x00000000
-                                       0x00000006
-                                       0x00000006
-                                       0x00001248
+                                       0x00000005
+                                       0x00000005
+                                       0x00000924
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x104ab098
-                                       0xe00e00b1
+                                       0x002c00a0
                                        0x00008000
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00048000
-                                       0x00048000
+                                       0x00098000
+                                       0x00098000
                                        0x00000000
-                                       0x00048000
-                                       0x00048000
+                                       0x00098000
+                                       0x00098000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x0000000d
-                                       0x0000000d
-                                       0x0000000d
-                                       0x0000000d
-                                       0x0000000d
-                                       0x0000000d
-                                       0x0000000d
-                                       0x0000000d
-                                       0x100002a0
+                                       0x00050000
+                                       0x00050000
+                                       0x00050000
+                                       0x00050000
+                                       0x00005000
+                                       0x00005000
+                                       0x00005000
+                                       0x00005000
+                                       0x10000280
                                        0x00000000
                                        0x00111111
                                        0x00000000
                                        0x00000000
-                                       0x77ffc085
+                                       0x77ffc081
                                        0x00000505
                                        0x81f1f108
                                        0x07070004
                                        0x00514514
                                        0x00514514
                                        0x51451400
-                                       0x0606003f
-                                       0x00000000
+                                       0x0000003f
+                                       0x00000096
                                        0x00000000
                                        0x00000100
-                                       0x0127000e
+                                       0x0173000e
                                        0x00000000
                                        0x00000003
-                                       0x000040a0
-                                       0x800024aa
-                                       0x0000000e
+                                       0x000052a3
+                                       0x800012d7
+                                       0x00000009
                                >;
                        };
 
-                       timing-792000000 {
-                               clock-frequency = <792000000>;
+                       timing-396000000 {
+                               clock-frequency = <396000000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
                                nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-cfg = <0x73340000>;
+                               nvidia,emc-cfg-2 = <0x00000895>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
                                nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-2 = <0x80200000>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000d71>;
-                               nvidia,emc-mrs-wait-cnt = <0x00f7000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
+                               nvidia,emc-mode-reset = <0x80000521>;
+                               nvidia,emc-mrs-wait-cnt = <0x015b000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
                                nvidia,emc-zcal-interval = <0x00020000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000024
-                                       0x000000cd
+                                       0x00000011
+                                       0x00000066
                                        0x00000000
-                                       0x00000019
-                                       0x0000000a
-                                       0x00000008
-                                       0x0000000d
+                                       0x0000000c
                                        0x00000004
-                                       0x00000013
-                                       0x0000000a
+                                       0x00000004
+                                       0x00000008
+                                       0x00000002
                                        0x0000000a
                                        0x00000004
+                                       0x00000004
                                        0x00000002
-                                       0x00000000
-                                       0x00000006
-                                       0x00000006
-                                       0x0000000b
                                        0x00000002
                                        0x00000000
+                                       0x00000003
+                                       0x00000003
+                                       0x00000005
                                        0x00000002
-                                       0x0000000d
-                                       0x00080000
-                                       0x00000004
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
                                        0x00000000
                                        0x00000001
-                                       0x00000014
-                                       0x00000018
-                                       0x0000001a
-                                       0x000017e2
-                                       0x00000000
-                                       0x000005f8
+                                       0x00000008
+                                       0x00020000
                                        0x00000003
-                                       0x00000011
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x0000000f
+                                       0x00000010
+                                       0x00000012
+                                       0x00000bd1
+                                       0x00000000
+                                       0x000002f4
+                                       0x00000001
+                                       0x00000008
                                        0x00000001
                                        0x00000000
-                                       0x000000c7
-                                       0x00000018
-                                       0x000000d7
+                                       0x00000063
+                                       0x0000000f
+                                       0x0000006c
                                        0x00000200
+                                       0x00000004
                                        0x00000005
-                                       0x00000006
-                                       0x00000005
-                                       0x00000019
+                                       0x00000004
+                                       0x0000000b
                                        0x00000000
-                                       0x00000008
-                                       0x00000008
-                                       0x00001822
+                                       0x00000005
+                                       0x00000005
+                                       0x00000c11
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x104ab098
-                                       0xe00700b1
+                                       0x002c00a0
                                        0x00008000
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
-                                       0x007fc008
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
+                                       0x00030000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00034000
-                                       0x00034000
+                                       0x00070000
+                                       0x00070000
                                        0x00000000
-                                       0x00034000
-                                       0x00034000
+                                       0x00070000
+                                       0x00070000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x00000005
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x0000000a
-                                       0x100002a0
                                        0x00000000
-                                       0x00111111
                                        0x00000000
                                        0x00000000
-                                       0x77ffc085
                                        0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00038000
+                                       0x00038000
+                                       0x00038000
+                                       0x00038000
+                                       0x00003800
+                                       0x00003800
+                                       0x00003800
+                                       0x00003800
+                                       0x10000280
+                                       0x00000000
+                                       0x00111111
+                                       0x00000000
+                                       0x00000000
+                                       0x77ffc081
+                                       0x00000505
                                        0x81f1f108
                                        0x07070004
                                        0x00000000
                                        0x016eeeee
-                                       0x61861820
+                                       0x51451420
                                        0x00514514
                                        0x00514514
-                                       0x61861800
-                                       0x0606003f
-                                       0x00000000
+                                       0x51451400
+                                       0x0000003f
+                                       0x000000c6
                                        0x00000000
                                        0x00000100
-                                       0x00f7000e
+                                       0x015b000e
                                        0x00000000
-                                       0x00000004
-                                       0x00004080
-                                       0x80003012
-                                       0x0000000f
+                                       0x00000003
+                                       0x000052a3
+                                       0x8000188b
+                                       0x00000009
                                >;
                        };
 
-                       timing-924000000 {
-                               clock-frequency = <924000000>;
+                       timing-528000000 {
+                               clock-frequency = <528000000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430303>;
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
                                nvidia,emc-cfg-2 = <0x0000089d>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
                                nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200020>;
+                               nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000f15>;
-                               nvidia,emc-mrs-wait-cnt = <0x00cd000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
-                               nvidia,emc-zcal-cnt-long = <0x0000004c>;
+                               nvidia,emc-mode-reset = <0x80000941>;
+                               nvidia,emc-mrs-wait-cnt = <0x0139000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0123133d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
                                nvidia,emc-zcal-interval = <0x00020000>;
 
                                nvidia,emc-configuration = <
-                                       0x0000002b
-                                       0x000000f0
+                                       0x00000018
+                                       0x00000088
                                        0x00000000
-                                       0x0000001e
-                                       0x0000000b
+                                       0x00000010
+                                       0x00000006
+                                       0x00000006
                                        0x00000009
-                                       0x0000000f
-                                       0x00000005
-                                       0x00000016
-                                       0x0000000b
-                                       0x0000000b
-                                       0x00000004
                                        0x00000002
-                                       0x00000000
-                                       0x00000007
-                                       0x00000007
                                        0x0000000d
+                                       0x00000006
+                                       0x00000006
+                                       0x00000002
                                        0x00000002
                                        0x00000000
+                                       0x00000003
+                                       0x00000003
+                                       0x00000006
                                        0x00000002
-                                       0x0000000f
-                                       0x000a0000
-                                       0x00000004
                                        0x00000000
+                                       0x00000001
+                                       0x00000009
+                                       0x00030000
+                                       0x00000003
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00000001
-                                       0x00000016
-                                       0x0000001a
-                                       0x0000001c
-                                       0x00001be7
                                        0x00000000
-                                       0x000006f9
-                                       0x00000004
-                                       0x00000015
+                                       0x00000000
+                                       0x00000010
+                                       0x00000012
+                                       0x00000014
+                                       0x00000fd6
+                                       0x00000000
+                                       0x000003f5
+                                       0x00000002
+                                       0x0000000b
                                        0x00000001
                                        0x00000000
-                                       0x000000e7
-                                       0x0000001b
-                                       0x000000fb
+                                       0x00000085
+                                       0x00000012
+                                       0x00000090
                                        0x00000200
+                                       0x00000004
+                                       0x00000005
+                                       0x00000004
+                                       0x00000010
+                                       0x00000000
                                        0x00000006
-                                       0x00000007
                                        0x00000006
-                                       0x0000001e
+                                       0x00001017
+                                       0x00000000
                                        0x00000000
+                                       0x00000000
+                                       0x104ab098
+                                       0xe01200b1
+                                       0x00008000
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
                                        0x0000000a
                                        0x0000000a
-                                       0x00001c28
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x104ab898
-                                       0xe00400b1
-                                       0x00008000
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
-                                       0x007f800a
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
+                                       0x00054000
+                                       0x00054000
                                        0x00000000
+                                       0x00054000
+                                       0x00054000
                                        0x00000000
                                        0x00000000
-                                       0x0002c000
-                                       0x0002c000
                                        0x00000000
-                                       0x0002c000
-                                       0x0002c000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000004
-                                       0x00000008
-                                       0x00000008
-                                       0x00000008
-                                       0x00000008
-                                       0x00000008
-                                       0x00000008
-                                       0x00000008
-                                       0x00000008
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x0000000c
+                                       0x0000000c
+                                       0x0000000c
+                                       0x0000000c
+                                       0x0000000c
+                                       0x0000000c
+                                       0x0000000c
+                                       0x0000000c
                                        0x100002a0
                                        0x00000000
                                        0x00111111
                                        0x00000000
                                        0x00000000
                                        0x77ffc085
-                                       0x00000000
+                                       0x00000505
                                        0x81f1f108
                                        0x07070004
                                        0x00000000
                                        0x016eeeee
-                                       0x5d75d720
+                                       0x51451420
                                        0x00514514
                                        0x00514514
-                                       0x5d75d700
+                                       0x51451400
                                        0x0606003f
                                        0x00000000
                                        0x00000000
-                                       0x00000128
-                                       0x00cd000e
+                                       0x00000100
+                                       0x0139000e
                                        0x00000000
-                                       0x00000004
-                                       0x00004080
-                                       0x800037ea
-                                       0x00000011
+                                       0x00000003
+                                       0x000042a0
+                                       0x80002062
+                                       0x0000000a
                                >;
                        };
 
-               };
-       };
-
-       memory-controller@70019000 {
-               emc-timings-3 {
-                       nvidia,ram-code = <3>;
+                       timing-600000000 {
+                               clock-frequency = <600000000>;
 
-                       timing-12750000 {
-                               clock-frequency = <12750000>;
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200010>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000b61>;
+                               nvidia,emc-mrs-wait-cnt = <0x0127000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0121113d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
 
-                               nvidia,emem-configuration = <
-                                       0x40040001
-                                       0x8000000a
-                                       0x00000001
-                                       0x00000001
-                                       0x00000002
+                               nvidia,emc-configuration = <
+                                       0x0000001b
+                                       0x0000009b
                                        0x00000000
-                                       0x00000002
-                                       0x00000001
-                                       0x00000003
-                                       0x00000008
+                                       0x00000013
+                                       0x00000007
+                                       0x00000007
+                                       0x0000000b
                                        0x00000003
+                                       0x00000010
+                                       0x00000007
+                                       0x00000007
                                        0x00000002
-                                       0x00000003
-                                       0x00000006
-                                       0x06030203
-                                       0x000a0502
-                                       0x77e30303
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-20400000 {
-                               clock-frequency = <20400000>;
-
-                               nvidia,emem-configuration = <
-                                       0x40020001
-                                       0x80000012
-                                       0x00000001
-                                       0x00000001
                                        0x00000002
                                        0x00000000
-                                       0x00000002
-                                       0x00000001
-                                       0x00000003
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000003
-                                       0x00000006
-                                       0x06030203
-                                       0x000a0502
-                                       0x76230303
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-40800000 {
-                               clock-frequency = <40800000>;
-
-                               nvidia,emem-configuration = <
-                                       0xa0000001
-                                       0x80000017
-                                       0x00000001
-                                       0x00000001
+                                       0x00000005
+                                       0x00000005
+                                       0x0000000a
                                        0x00000002
                                        0x00000000
-                                       0x00000002
-                                       0x00000001
-                                       0x00000003
-                                       0x00000008
                                        0x00000003
-                                       0x00000002
+                                       0x0000000b
+                                       0x00070000
                                        0x00000003
-                                       0x00000006
-                                       0x06030203
-                                       0x000a0502
-                                       0x74a30303
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-68000000 {
-                               clock-frequency = <68000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x00000001
-                                       0x8000001e
-                                       0x00000001
-                                       0x00000001
-                                       0x00000002
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
                                        0x00000000
                                        0x00000002
-                                       0x00000001
-                                       0x00000003
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000003
-                                       0x00000006
-                                       0x06030203
-                                       0x000a0502
-                                       0x74230403
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-102000000 {
-                               clock-frequency = <102000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x08000001
-                                       0x80000026
-                                       0x00000001
-                                       0x00000001
-                                       0x00000003
+                                       0x00000012
+                                       0x00000016
+                                       0x00000018
+                                       0x00001208
                                        0x00000000
+                                       0x00000482
                                        0x00000002
+                                       0x0000000d
                                        0x00000001
-                                       0x00000003
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000003
+                                       0x00000000
+                                       0x00000097
+                                       0x00000015
+                                       0x000000a3
+                                       0x00000200
+                                       0x00000004
+                                       0x00000005
+                                       0x00000004
+                                       0x00000013
+                                       0x00000000
                                        0x00000006
-                                       0x06030203
-                                       0x000a0503
-                                       0x73c30504
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-204000000 {
-                               clock-frequency = <204000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x01000003
-                                       0x80000040
-                                       0x00000001
-                                       0x00000001
-                                       0x00000004
-                                       0x00000002
-                                       0x00000003
-                                       0x00000001
-                                       0x00000003
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000004
                                        0x00000006
-                                       0x06040203
-                                       0x000a0504
-                                       0x73840a05
-                                       0x70000f03
-                                       0x001f0000
+                                       0x00001248
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x104ab098
+                                       0xe00e00b1
+                                       0x00008000
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00048000
+                                       0x00048000
+                                       0x00000000
+                                       0x00048000
+                                       0x00048000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x0000000d
+                                       0x0000000d
+                                       0x0000000d
+                                       0x0000000d
+                                       0x0000000d
+                                       0x0000000d
+                                       0x0000000d
+                                       0x0000000d
+                                       0x100002a0
+                                       0x00000000
+                                       0x00111111
+                                       0x00000000
+                                       0x00000000
+                                       0x77ffc085
+                                       0x00000505
+                                       0x81f1f108
+                                       0x07070004
+                                       0x00000000
+                                       0x016eeeee
+                                       0x51451420
+                                       0x00514514
+                                       0x00514514
+                                       0x51451400
+                                       0x0606003f
+                                       0x00000000
+                                       0x00000000
+                                       0x00000100
+                                       0x0127000e
+                                       0x00000000
+                                       0x00000003
+                                       0x000040a0
+                                       0x800024aa
+                                       0x0000000e
                                >;
                        };
 
-                       timing-300000000 {
-                               clock-frequency = <300000000>;
+                       timing-792000000 {
+                               clock-frequency = <792000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x08000004
-                                       0x80000040
-                                       0x00000001
-                                       0x00000002
-                                       0x00000007
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000d71>;
+                               nvidia,emc-mrs-wait-cnt = <0x00f7000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000024
+                                       0x000000cd
+                                       0x00000000
+                                       0x00000019
+                                       0x0000000a
+                                       0x00000008
+                                       0x0000000d
                                        0x00000004
+                                       0x00000013
+                                       0x0000000a
+                                       0x0000000a
                                        0x00000004
-                                       0x00000001
-                                       0x00000002
-                                       0x00000007
                                        0x00000002
-                                       0x00000002
-                                       0x00000004
+                                       0x00000000
                                        0x00000006
-                                       0x06040202
-                                       0x000b0607
-                                       0x77450e08
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-396000000 {
-                               clock-frequency = <396000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0f000005
-                                       0x80000040
-                                       0x00000001
-                                       0x00000002
-                                       0x00000009
-                                       0x00000005
                                        0x00000006
-                                       0x00000001
-                                       0x00000002
-                                       0x00000008
+                                       0x0000000b
                                        0x00000002
+                                       0x00000000
                                        0x00000002
+                                       0x0000000d
+                                       0x00080000
                                        0x00000004
-                                       0x00000006
-                                       0x06040202
-                                       0x000d0709
-                                       0x7586120a
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-528000000 {
-                               clock-frequency = <528000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0f000007
-                                       0x80000040
-                                       0x00000002
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000001
+                                       0x00000014
+                                       0x00000018
+                                       0x0000001a
+                                       0x000017e2
+                                       0x00000000
+                                       0x000005f8
                                        0x00000003
-                                       0x0000000c
-                                       0x00000007
-                                       0x00000008
+                                       0x00000011
                                        0x00000001
-                                       0x00000002
-                                       0x00000009
-                                       0x00000002
-                                       0x00000002
+                                       0x00000000
+                                       0x000000c7
+                                       0x00000018
+                                       0x000000d7
+                                       0x00000200
                                        0x00000005
                                        0x00000006
-                                       0x06050202
-                                       0x0010090c
-                                       0x7428180d
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-600000000 {
-                               clock-frequency = <600000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x00000009
-                                       0x80000040
-                                       0x00000003
-                                       0x00000004
-                                       0x0000000e
-                                       0x00000009
-                                       0x0000000a
-                                       0x00000001
-                                       0x00000003
-                                       0x0000000b
-                                       0x00000002
-                                       0x00000002
                                        0x00000005
-                                       0x00000007
-                                       0x07050202
-                                       0x00130b0e
-                                       0x73a91b0f
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-792000000 {
-                               clock-frequency = <792000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0e00000b
-                                       0x80000040
-                                       0x00000004
-                                       0x00000005
-                                       0x00000013
-                                       0x0000000c
-                                       0x0000000d
-                                       0x00000002
-                                       0x00000003
-                                       0x0000000c
-                                       0x00000002
-                                       0x00000002
-                                       0x00000006
+                                       0x00000019
+                                       0x00000000
                                        0x00000008
-                                       0x08060202
-                                       0x00170e13
-                                       0x736c2414
-                                       0x70000f02
-                                       0x001f0000
+                                       0x00000008
+                                       0x00001822
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x104ab098
+                                       0xe00700b1
+                                       0x00008000
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x007fc008
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00034000
+                                       0x00034000
+                                       0x00000000
+                                       0x00034000
+                                       0x00034000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x00000005
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x0000000a
+                                       0x100002a0
+                                       0x00000000
+                                       0x00111111
+                                       0x00000000
+                                       0x00000000
+                                       0x77ffc085
+                                       0x00000000
+                                       0x81f1f108
+                                       0x07070004
+                                       0x00000000
+                                       0x016eeeee
+                                       0x61861820
+                                       0x00514514
+                                       0x00514514
+                                       0x61861800
+                                       0x0606003f
+                                       0x00000000
+                                       0x00000000
+                                       0x00000100
+                                       0x00f7000e
+                                       0x00000000
+                                       0x00000004
+                                       0x00004080
+                                       0x80003012
+                                       0x0000000f
                                >;
                        };
 
                        timing-924000000 {
                                clock-frequency = <924000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0e00000d
-                                       0x80000040
+                               nvidia,emc-auto-cal-config = <0xa1430303>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200020>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000f15>;
+                               nvidia,emc-mrs-wait-cnt = <0x00cd000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
+                               nvidia,emc-zcal-cnt-long = <0x0000004c>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x0000002b
+                                       0x000000f0
+                                       0x00000000
+                                       0x0000001e
+                                       0x0000000b
+                                       0x00000009
+                                       0x0000000f
                                        0x00000005
-                                       0x00000006
                                        0x00000016
-                                       0x0000000e
-                                       0x0000000f
-                                       0x00000002
+                                       0x0000000b
+                                       0x0000000b
                                        0x00000004
-                                       0x0000000e
                                        0x00000002
+                                       0x00000000
+                                       0x00000007
+                                       0x00000007
+                                       0x0000000d
+                                       0x00000002
+                                       0x00000000
                                        0x00000002
+                                       0x0000000f
+                                       0x000a0000
+                                       0x00000004
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000001
+                                       0x00000016
+                                       0x0000001a
+                                       0x0000001c
+                                       0x00001be7
+                                       0x00000000
+                                       0x000006f9
+                                       0x00000004
+                                       0x00000015
+                                       0x00000001
+                                       0x00000000
+                                       0x000000e7
+                                       0x0000001b
+                                       0x000000fb
+                                       0x00000200
                                        0x00000006
-                                       0x00000009
-                                       0x09060202
-                                       0x001a1016
-                                       0x734e2a17
-                                       0x70000f02
-                                       0x001f0000
+                                       0x00000007
+                                       0x00000006
+                                       0x0000001e
+                                       0x00000000
+                                       0x0000000a
+                                       0x0000000a
+                                       0x00001c28
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x104ab898
+                                       0xe00400b1
+                                       0x00008000
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x007f800a
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x0002c000
+                                       0x0002c000
+                                       0x00000000
+                                       0x0002c000
+                                       0x0002c000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000004
+                                       0x00000008
+                                       0x00000008
+                                       0x00000008
+                                       0x00000008
+                                       0x00000008
+                                       0x00000008
+                                       0x00000008
+                                       0x00000008
+                                       0x100002a0
+                                       0x00000000
+                                       0x00111111
+                                       0x00000000
+                                       0x00000000
+                                       0x77ffc085
+                                       0x00000000
+                                       0x81f1f108
+                                       0x07070004
+                                       0x00000000
+                                       0x016eeeee
+                                       0x5d75d720
+                                       0x00514514
+                                       0x00514514
+                                       0x5d75d700
+                                       0x0606003f
+                                       0x00000000
+                                       0x00000000
+                                       0x00000128
+                                       0x00cd000e
+                                       0x00000000
+                                       0x00000004
+                                       0x00004080
+                                       0x800037ea
+                                       0x00000011
                                >;
                        };
                };
 };
 
 &emc_icc_dvfs_opp_table {
-       /delete-node/ opp@1200000000,1100;
+       /delete-node/ opp-1200000000-1100;
 };
 
 &emc_bw_dfs_opp_table {
-       /delete-node/ opp@1200000000;
+       /delete-node/ opp-1200000000;
 };
index 35ab296..28b889e 100644 (file)
@@ -72,7 +72,7 @@
                status = "okay";
        };
 
-       gpu@0,57000000 {
+       gpu@57000000 {
                /*
                 * Node left disabled on purpose - the bootloader will enable
                 * it after having set the VPR up
         */
        serial@70006000 {
                compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
                status = "okay";
        };
 
         */
        serial@70006040 {
                compatible = "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
                status = "okay";
        };
 
        spi@7000da00 {
                status = "okay";
                spi-max-frequency = <25000000>;
-               spi-flash@0 {
+
+               flash@0 {
                        compatible = "winbond,w25q32dw", "jedec,spi-nor";
                        reg = <0>;
                        spi-max-frequency = <20000000>;
                vbus-supply = <&vdd_usb3_vbus>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                };
        };
 
-       vdd_mux: regulator@0 {
+       vdd_mux: regulator-mux {
                compatible = "regulator-fixed";
                regulator-name = "+VDD_MUX";
                regulator-min-microvolt = <12000000>;
                regulator-boot-on;
        };
 
-       vdd_5v0_sys: regulator@1 {
+       vdd_5v0_sys: regulator-5v0sys {
                compatible = "regulator-fixed";
                regulator-name = "+5V_SYS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_3v3_sys: regulator@2 {
+       vdd_3v3_sys: regulator-3v3sys {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_SYS";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_3v3_run: regulator@3 {
+       vdd_3v3_run: regulator-3v3run {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_RUN";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_3v3_hdmi: regulator@4 {
+       vdd_3v3_hdmi: regulator-3v3hdmi {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_AVDD_HDMI_AP_GATED";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_run>;
        };
 
-       vdd_usb1_vbus: regulator@5 {
+       vdd_usb1_vbus: regulator-usb1 {
                compatible = "regulator-fixed";
                regulator-name = "+USB0_VBUS_SW";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_usb3_vbus: regulator@6 {
+       vdd_usb3_vbus: regulator-usb3 {
                compatible = "regulator-fixed";
                regulator-name = "+5V_USB_HS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_3v3_lp0: regulator@7 {
+       vdd_3v3_lp0: regulator-lp0 {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_LP0";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_hdmi_pll: regulator@8 {
+       vdd_hdmi_pll: regulator-hdmipll {
                compatible = "regulator-fixed";
                regulator-name = "+1.05V_RUN_AVDD_HDMI_PLL";
                regulator-min-microvolt = <1050000>;
                vin-supply = <&vdd_1v05_run>;
        };
 
-       vdd_5v0_hdmi: regulator@9 {
+       vdd_5v0_hdmi: regulator-hdmicon {
                compatible = "regulator-fixed";
                regulator-name = "+5V_HDMI_CON";
                regulator-min-microvolt = <5000000>;
        };
 
        /* Molex power connector */
-       vdd_5v0_sata: regulator@10 {
+       vdd_5v0_sata: regulator-5v0sata {
                compatible = "regulator-fixed";
                regulator-name = "+5V_SATA";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_12v0_sata: regulator@11 {
+       vdd_12v0_sata: regulator-12v0sata {
                compatible = "regulator-fixed";
                regulator-name = "+12V_SATA";
                regulator-min-microvolt = <12000000>;
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        trips {
                                cpu-shutdown-trip {
                                        temperature = <101000>;
                        };
                };
 
-               mem {
+               mem-thermal {
                        trips {
                                mem-shutdown-trip {
                                        temperature = <101000>;
                        };
                };
 
-               gpu {
+               gpu-thermal {
                        trips {
                                gpu-shutdown-trip {
                                        temperature = <101000>;
index a0f56cc..31b2e26 100644 (file)
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-20400000 {
                                clock-frequency = <20400000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-40800000 {
                                clock-frequency = <40800000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-68000000 {
                                clock-frequency = <68000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-102000000 {
                                clock-frequency = <102000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-204000000 {
                                clock-frequency = <204000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-300000000 {
                                clock-frequency = <300000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C>;
                                clock-names = "emc-parent";
                        };
+
                        timing-396000000 {
                                clock-frequency = <396000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M>;
                                clock-names = "emc-parent";
                        };
+
                        timing-528000000 {
                                clock-frequency = <528000000>;
                                nvidia,parent-clock-frequency = <528000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-600000000 {
                                clock-frequency = <600000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-792000000 {
                                clock-frequency = <792000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-20400000 {
                                clock-frequency = <20400000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-40800000 {
                                clock-frequency = <40800000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-68000000 {
                                clock-frequency = <68000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-102000000 {
                                clock-frequency = <102000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-204000000 {
                                clock-frequency = <204000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-300000000 {
                                clock-frequency = <300000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C>;
                                clock-names = "emc-parent";
                        };
+
                        timing-396000000 {
                                clock-frequency = <396000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M>;
                                clock-names = "emc-parent";
                        };
+
                        timing-528000000 {
                                clock-frequency = <528000000>;
                                nvidia,parent-clock-frequency = <528000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-600000000 {
                                clock-frequency = <600000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-792000000 {
                                clock-frequency = <792000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-20400000 {
                                clock-frequency = <20400000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-40800000 {
                                clock-frequency = <40800000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-68000000 {
                                clock-frequency = <68000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-102000000 {
                                clock-frequency = <102000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-204000000 {
                                clock-frequency = <204000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-300000000 {
                                clock-frequency = <300000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C>;
                                clock-names = "emc-parent";
                        };
+
                        timing-396000000 {
                                clock-frequency = <396000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M>;
                                clock-names = "emc-parent";
                        };
+
                        timing-528000000 {
                                clock-frequency = <528000000>;
                                nvidia,parent-clock-frequency = <528000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-600000000 {
                                clock-frequency = <600000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-792000000 {
                                clock-frequency = <792000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                };
        };
 
-       external-memory-controller@7001b000 {
+       memory-controller@70019000 {
                emc-timings-1 {
                        nvidia,ram-code = <1>;
 
                        timing-12750000 {
                                clock-frequency = <12750000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000000 /* EMC_RC */
-                                       0x00000003 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000000 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000060 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000018 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000007 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000005 /* EMC_TXSR */
-                                       0x00000005 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000000 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000064 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000007 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x800001c5 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
+                               nvidia,emem-configuration = <
+                                       0x40040001 /* MC_EMEM_ARB_CFG */
+                                       0x8000000a /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x77e30303 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
 
                        timing-20400000 {
                                clock-frequency = <20400000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
+                               nvidia,emem-configuration = <
+                                       0x40020001 /* MC_EMEM_ARB_CFG */
+                                       0x80000012 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x76230303 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
 
-                               nvidia,emc-configuration = <
-                                       0x00000000 /* EMC_RC */
-                                       0x00000005 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000000 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x0000009a /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000026 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000007 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000006 /* EMC_TXSR */
-                                       0x00000006 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000000 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x000000a0 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x0000000b /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x8000023a /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-40800000 {
-                               clock-frequency = <40800000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000001 /* EMC_RC */
-                                       0x0000000a /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000001 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000134 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x0000004d /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000008 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x0000000c /* EMC_TXSR */
-                                       0x0000000c /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000000 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x0000013f /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000015 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x80000370 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-68000000 {
-                               clock-frequency = <68000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000003 /* EMC_RC */
-                                       0x00000011 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000002 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000202 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000080 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x0000000f /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000013 /* EMC_TXSR */
-                                       0x00000013 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000001 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000213 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000022 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x8000050e /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-102000000 {
-                               clock-frequency = <102000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000004 /* EMC_RC */
-                                       0x0000001a /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000003 /* EMC_RAS */
-                                       0x00000001 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000001 /* EMC_RD_RCD */
-                                       0x00000001 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000304 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000000c1 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000018 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x0000001c /* EMC_TXSR */
-                                       0x0000001c /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000003 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x0000031c /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000033 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-204000000 {
-                               clock-frequency = <204000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x0000088d>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000009 /* EMC_RC */
-                                       0x00000035 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000007 /* EMC_RAS */
-                                       0x00000002 /* EMC_RP */
-                                       0x00000005 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000002 /* EMC_RD_RCD */
-                                       0x00000002 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000005 /* EMC_WDV */
-                                       0x00000005 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000004 /* EMC_EINPUT */
-                                       0x00000006 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000003 /* EMC_QRST */
-                                       0x0000000d /* EMC_QSAFE */
-                                       0x0000000f /* EMC_RDV */
-                                       0x00000011 /* EMC_RDV_MASK */
-                                       0x00000607 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000032 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000038 /* EMC_TXSR */
-                                       0x00000038 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000007 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000638 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00090000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00090000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00094000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00094000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00009400 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00009000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00009000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00009000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000066 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000d2b3 /* EMC_CFG_PIPE */
-                                       0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-300000000 {
-                               clock-frequency = <300000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73340000>;
-                               nvidia,emc-cfg-2 = <0x000008d5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200000>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000321>;
-                               nvidia,emc-mrs-wait-cnt = <0x0174000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
-
-                               nvidia,emc-configuration = <
-                                       0x0000000d /* EMC_RC */
-                                       0x0000004c /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000009 /* EMC_RAS */
-                                       0x00000003 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x00000008 /* EMC_W2R */
-                                       0x00000002 /* EMC_R2P */
-                                       0x00000009 /* EMC_W2P */
-                                       0x00000003 /* EMC_RD_RCD */
-                                       0x00000003 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000003 /* EMC_WDV */
-                                       0x00000003 /* EMC_WDV_MASK */
-                                       0x00000005 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000002 /* EMC_EINPUT */
-                                       0x00000007 /* EMC_EINPUT_DURATION */
-                                       0x00020000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000001 /* EMC_QRST */
-                                       0x0000000e /* EMC_QSAFE */
-                                       0x00000010 /* EMC_RDV */
-                                       0x00000012 /* EMC_RDV_MASK */
-                                       0x000008e4 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000239 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000001 /* EMC_PDEX2WR */
-                                       0x00000008 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x0000004a /* EMC_AR2PDEN */
-                                       0x0000000e /* EMC_RW2PDEN */
-                                       0x00000051 /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000009 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000924 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000096 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x0174000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x000052a3 /* EMC_CFG_PIPE */
-                                       0x800012d7 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x00000009 /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-396000000 {
-                               clock-frequency = <396000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73340000>;
-                               nvidia,emc-cfg-2 = <0x00000895>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200000>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000521>;
-                               nvidia,emc-mrs-wait-cnt = <0x015b000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000012 /* EMC_RC */
-                                       0x00000065 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x0000000c /* EMC_RAS */
-                                       0x00000004 /* EMC_RP */
-                                       0x00000005 /* EMC_R2W */
-                                       0x00000008 /* EMC_W2R */
-                                       0x00000002 /* EMC_R2P */
-                                       0x0000000a /* EMC_W2P */
-                                       0x00000004 /* EMC_RD_RCD */
-                                       0x00000004 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000003 /* EMC_WDV */
-                                       0x00000003 /* EMC_WDV_MASK */
-                                       0x00000005 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000001 /* EMC_EINPUT */
-                                       0x00000008 /* EMC_EINPUT_DURATION */
-                                       0x00020000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000000 /* EMC_QRST */
-                                       0x0000000f /* EMC_QSAFE */
-                                       0x00000010 /* EMC_RDV */
-                                       0x00000012 /* EMC_RDV_MASK */
-                                       0x00000bd1 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000002f4 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000001 /* EMC_PDEX2WR */
-                                       0x00000008 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000063 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x0000006b /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x0000000d /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000c11 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x000000c6 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x015b000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x000052a3 /* EMC_CFG_PIPE */
-                                       0x8000188b /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x00000009 /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-528000000 {
-                               clock-frequency = <528000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0000089d>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000941>;
-                               nvidia,emc-mrs-wait-cnt = <0x013a000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0123133d>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000018 /* EMC_RC */
-                                       0x00000088 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000011 /* EMC_RAS */
-                                       0x00000006 /* EMC_RP */
-                                       0x00000006 /* EMC_R2W */
-                                       0x00000009 /* EMC_W2R */
-                                       0x00000002 /* EMC_R2P */
-                                       0x0000000d /* EMC_W2P */
-                                       0x00000006 /* EMC_RD_RCD */
-                                       0x00000006 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000003 /* EMC_WDV */
-                                       0x00000003 /* EMC_WDV_MASK */
-                                       0x00000007 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000002 /* EMC_EINPUT */
-                                       0x00000009 /* EMC_EINPUT_DURATION */
-                                       0x00040000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000001 /* EMC_QRST */
-                                       0x00000010 /* EMC_QSAFE */
-                                       0x00000013 /* EMC_RDV */
-                                       0x00000015 /* EMC_RDV_MASK */
-                                       0x00000fd6 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000003f5 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x0000000b /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000084 /* EMC_AR2PDEN */
-                                       0x00000012 /* EMC_RW2PDEN */
-                                       0x0000008f /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000013 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000006 /* EMC_TCLKSTABLE */
-                                       0x00000006 /* EMC_TCLKSTOP */
-                                       0x00001017 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0xe01200b1 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000001 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000001 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
-                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000000 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x013a000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x000042a0 /* EMC_CFG_PIPE */
-                                       0x80002062 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000b /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-600000000 {
-                               clock-frequency = <600000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0000089d>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200010>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000b61>;
-                               nvidia,emc-mrs-wait-cnt = <0x0128000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0121113d>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
-
-                               nvidia,emc-configuration = <
-                                       0x0000001c /* EMC_RC */
-                                       0x0000009a /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000013 /* EMC_RAS */
-                                       0x00000007 /* EMC_RP */
-                                       0x00000007 /* EMC_R2W */
-                                       0x0000000b /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x00000010 /* EMC_W2P */
-                                       0x00000007 /* EMC_RD_RCD */
-                                       0x00000007 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000005 /* EMC_WDV */
-                                       0x00000005 /* EMC_WDV_MASK */
-                                       0x0000000a /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000003 /* EMC_EINPUT */
-                                       0x0000000b /* EMC_EINPUT_DURATION */
-                                       0x00070000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000002 /* EMC_QRST */
-                                       0x00000012 /* EMC_QSAFE */
-                                       0x00000016 /* EMC_RDV */
-                                       0x00000018 /* EMC_RDV_MASK */
-                                       0x00001208 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000482 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x0000000d /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000096 /* EMC_AR2PDEN */
-                                       0x00000015 /* EMC_RW2PDEN */
-                                       0x000000a2 /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000015 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000006 /* EMC_TCLKSTABLE */
-                                       0x00000006 /* EMC_TCLKSTOP */
-                                       0x00001249 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0xe00e00b1 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
-                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000000 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x0128000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x000040a0 /* EMC_CFG_PIPE */
-                                       0x800024aa /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000e /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-792000000 {
-                               clock-frequency = <792000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0080089d>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200418>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000d71>;
-                               nvidia,emc-mrs-wait-cnt = <0x00f8000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000025 /* EMC_RC */
-                                       0x000000cc /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x0000001a /* EMC_RAS */
-                                       0x00000009 /* EMC_RP */
-                                       0x00000008 /* EMC_R2W */
-                                       0x0000000d /* EMC_W2R */
-                                       0x00000004 /* EMC_R2P */
-                                       0x00000013 /* EMC_W2P */
-                                       0x00000009 /* EMC_RD_RCD */
-                                       0x00000009 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x0000000b /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000002 /* EMC_EINPUT */
-                                       0x0000000d /* EMC_EINPUT_DURATION */
-                                       0x00080000 /* EMC_PUTERM_EXTRA */
-                                       0x00000004 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000001 /* EMC_QRST */
-                                       0x00000014 /* EMC_QSAFE */
-                                       0x00000018 /* EMC_RDV */
-                                       0x0000001a /* EMC_RDV_MASK */
-                                       0x000017e2 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000005f8 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000003 /* EMC_PDEX2WR */
-                                       0x00000011 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x000000c6 /* EMC_AR2PDEN */
-                                       0x00000018 /* EMC_RW2PDEN */
-                                       0x000000d6 /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000005 /* EMC_TCKE */
-                                       0x00000006 /* EMC_TCKESR */
-                                       0x00000005 /* EMC_TPD */
-                                       0x0000001d /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000008 /* EMC_TCLKSTABLE */
-                                       0x00000008 /* EMC_TCLKSTOP */
-                                       0x00001822 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x80000005 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab198 /* EMC_FBIO_CFG5 */
-                                       0xe00700b1 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00000005 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00034000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00034000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00034000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00034000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000007 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000007 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQ0 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQ1 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQ2 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQ7 */
-                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x61861820 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x61861800 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000000 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x00f8000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000007 /* EMC_CTT */
-                                       0x00000004 /* EMC_CTT_DURATION */
-                                       0x00004080 /* EMC_CFG_PIPE */
-                                       0x80003012 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000f /* EMC_QPOP */
-                               >;
-                       };
-               };
-
-               emc-timings-4 {
-                       nvidia,ram-code = <4>;
-
-                       timing-12750000 {
-                               clock-frequency = <12750000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100003>;
-                               nvidia,emc-mode-2 = <0x00200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000000 /* EMC_RC */
-                                       0x00000004 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000000 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000005 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000060 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000018 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000007 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000005 /* EMC_TXSR */
-                                       0x00000005 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000000 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000064 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000007 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x800001c5 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-20400000 {
-                               clock-frequency = <20400000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100003>;
-                               nvidia,emc-mode-2 = <0x00200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000000 /* EMC_RC */
-                                       0x00000007 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000000 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000005 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x0000009a /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000026 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000007 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000008 /* EMC_TXSR */
-                                       0x00000008 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000000 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x000000a0 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x0000000b /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x8000023a /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-40800000 {
-                               clock-frequency = <40800000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100003>;
-                               nvidia,emc-mode-2 = <0x00200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000001 /* EMC_RC */
-                                       0x0000000e /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000001 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000005 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000134 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x0000004d /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x0000000c /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x0000000f /* EMC_TXSR */
-                                       0x0000000f /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000000 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x0000013f /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000015 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x80000370 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-68000000 {
-                               clock-frequency = <68000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100003>;
-                               nvidia,emc-mode-2 = <0x00200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000003 /* EMC_RC */
-                                       0x00000017 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000002 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000005 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000202 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000080 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000015 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000019 /* EMC_TXSR */
-                                       0x00000019 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000001 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000213 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000022 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x8000050e /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-102000000 {
-                               clock-frequency = <102000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100003>;
-                               nvidia,emc-mode-2 = <0x00200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000004 /* EMC_RC */
-                                       0x00000023 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000003 /* EMC_RAS */
-                                       0x00000001 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000005 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000001 /* EMC_RD_RCD */
-                                       0x00000001 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000304 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000000c1 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000021 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000025 /* EMC_TXSR */
-                                       0x00000025 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000003 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x0000031c /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000033 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-204000000 {
-                               clock-frequency = <204000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x0000088d>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100003>;
-                               nvidia,emc-mode-2 = <0x00200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000009 /* EMC_RC */
-                                       0x00000047 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000006 /* EMC_RAS */
-                                       0x00000002 /* EMC_RP */
-                                       0x00000005 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000005 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000002 /* EMC_RD_RCD */
-                                       0x00000002 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000005 /* EMC_WDV */
-                                       0x00000005 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000004 /* EMC_EINPUT */
-                                       0x00000006 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000003 /* EMC_QRST */
-                                       0x0000000d /* EMC_QSAFE */
-                                       0x0000000f /* EMC_RDV */
-                                       0x00000011 /* EMC_RDV_MASK */
-                                       0x00000607 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000044 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x0000004a /* EMC_TXSR */
-                                       0x0000004a /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000007 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000638 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00090000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00090000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00094000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00094000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00009400 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00009000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00009000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00009000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000066 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000d2b3 /* EMC_CFG_PIPE */
-                                       0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
+                       timing-40800000 {
+                               clock-frequency = <40800000>;
+
+                               nvidia,emem-configuration = <
+                                       0xa0000001 /* MC_EMEM_ARB_CFG */
+                                       0x80000017 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74a30303 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
 
-                       timing-300000000 {
-                               clock-frequency = <300000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73340000>;
-                               nvidia,emc-cfg-2 = <0x000008d5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100002>;
-                               nvidia,emc-mode-2 = <0x00200000>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00000321>;
-                               nvidia,emc-mrs-wait-cnt = <0x0117000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                       timing-68000000 {
+                               clock-frequency = <68000000>;
 
-                               nvidia,emc-configuration = <
-                                       0x0000000d /* EMC_RC */
-                                       0x00000067 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000009 /* EMC_RAS */
-                                       0x00000003 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x00000008 /* EMC_W2R */
-                                       0x00000002 /* EMC_R2P */
-                                       0x00000009 /* EMC_W2P */
-                                       0x00000003 /* EMC_RD_RCD */
-                                       0x00000003 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000003 /* EMC_WDV */
-                                       0x00000003 /* EMC_WDV_MASK */
-                                       0x00000005 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000002 /* EMC_EINPUT */
-                                       0x00000007 /* EMC_EINPUT_DURATION */
-                                       0x00020000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000001 /* EMC_QRST */
-                                       0x0000000e /* EMC_QSAFE */
-                                       0x00000010 /* EMC_RDV */
-                                       0x00000012 /* EMC_RDV_MASK */
-                                       0x000008e4 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000239 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000001 /* EMC_PDEX2WR */
-                                       0x00000008 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000065 /* EMC_AR2PDEN */
-                                       0x0000000e /* EMC_RW2PDEN */
-                                       0x0000006c /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000009 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000924 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000096 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x0117000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x000052a3 /* EMC_CFG_PIPE */
-                                       0x800012d7 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x00000009 /* EMC_QPOP */
+                               nvidia,emem-configuration = <
+                                       0x00000001 /* MC_EMEM_ARB_CFG */
+                                       0x8000001e /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74230403 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000001 /* MC_EMEM_ARB_CFG */
+                                       0x80000026 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0403 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73c30504 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x01000003 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06040203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0405 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73840a06 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-300000000 {
+                               clock-frequency = <300000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000004 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000b0607 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x77450e08 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
 
                        timing-396000000 {
                                clock-frequency = <396000000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73340000>;
-                               nvidia,emc-cfg-2 = <0x00000895>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100002>;
-                               nvidia,emc-mode-2 = <0x00200000>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00000521>;
-                               nvidia,emc-mrs-wait-cnt = <0x00f5000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000011 /* EMC_RC */
-                                       0x00000089 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x0000000c /* EMC_RAS */
-                                       0x00000004 /* EMC_RP */
-                                       0x00000005 /* EMC_R2W */
-                                       0x00000008 /* EMC_W2R */
-                                       0x00000002 /* EMC_R2P */
-                                       0x0000000a /* EMC_W2P */
-                                       0x00000004 /* EMC_RD_RCD */
-                                       0x00000004 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000003 /* EMC_WDV */
-                                       0x00000003 /* EMC_WDV_MASK */
-                                       0x00000005 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000001 /* EMC_EINPUT */
-                                       0x00000008 /* EMC_EINPUT_DURATION */
-                                       0x00020000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000000 /* EMC_QRST */
-                                       0x0000000f /* EMC_QSAFE */
-                                       0x00000010 /* EMC_RDV */
-                                       0x00000012 /* EMC_RDV_MASK */
-                                       0x00000bd1 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000002f4 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000001 /* EMC_PDEX2WR */
-                                       0x00000008 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000087 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x0000008f /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x0000000d /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000c11 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x000000c6 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x00f5000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x000052a3 /* EMC_CFG_PIPE */
-                                       0x8000188b /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x00000009 /* EMC_QPOP */
+                               nvidia,emem-configuration = <
+                                       0x0f000005 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x7586120a /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
 
                        timing-528000000 {
                                clock-frequency = <528000000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0000089d>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100002>;
-                               nvidia,emc-mode-2 = <0x00200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00000941>;
-                               nvidia,emc-mrs-wait-cnt = <0x00c8000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0123133d>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emem-configuration = <
+                                       0x0f000007 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x0000000d /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000a /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06050202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x0010090d /* MC_EMEM_ARB_DA_COVERS */
+                                       0x7428180e /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
 
-                               nvidia,emc-configuration = <
-                                       0x00000018 /* EMC_RC */
-                                       0x000000b7 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000010 /* EMC_RAS */
-                                       0x00000006 /* EMC_RP */
-                                       0x00000006 /* EMC_R2W */
-                                       0x00000009 /* EMC_W2R */
-                                       0x00000002 /* EMC_R2P */
-                                       0x0000000d /* EMC_W2P */
-                                       0x00000006 /* EMC_RD_RCD */
-                                       0x00000006 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000003 /* EMC_WDV */
-                                       0x00000003 /* EMC_WDV_MASK */
-                                       0x00000007 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000002 /* EMC_EINPUT */
-                                       0x00000009 /* EMC_EINPUT_DURATION */
-                                       0x00040000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000001 /* EMC_QRST */
-                                       0x00000010 /* EMC_QSAFE */
-                                       0x00000013 /* EMC_RDV */
-                                       0x00000015 /* EMC_RDV_MASK */
-                                       0x00000fd6 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000003f5 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x0000000b /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x000000b4 /* EMC_AR2PDEN */
-                                       0x00000012 /* EMC_RW2PDEN */
-                                       0x000000bf /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000013 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000006 /* EMC_TCLKSTABLE */
-                                       0x00000006 /* EMC_TCLKSTOP */
-                                       0x00001017 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0xe01200b1 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000001 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000001 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
-                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000000 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x00c8000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x000042a0 /* EMC_CFG_PIPE */
-                                       0x80002062 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000b /* EMC_QPOP */
+                       timing-600000000 {
+                               clock-frequency = <600000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000009 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x0000000e /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000b /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x0000000b /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x07050202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x00130b0e /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73a91b0f /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-792000000 {
+                               clock-frequency = <792000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0e00000b /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000013 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x08060202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x734c2414 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f02 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+               };
+
+               emc-timings-4 {
+                       nvidia,ram-code = <4>;
+
+                       timing-12750000 {
+                               clock-frequency = <12750000>;
+
+                               nvidia,emem-configuration = <
+                                       0x40040001 /* MC_EMEM_ARB_CFG */
+                                       0x8000000a /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x77e30303 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
 
-                       timing-600000000 {
-                               clock-frequency = <600000000>;
+                       timing-20400000 {
+                               clock-frequency = <20400000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0000089d>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100002>;
-                               nvidia,emc-mode-2 = <0x00200010>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00000b61>;
-                               nvidia,emc-mrs-wait-cnt = <0x00b0000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0121113d>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emem-configuration = <
+                                       0x40020001 /* MC_EMEM_ARB_CFG */
+                                       0x80000012 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x77430303 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
 
-                               nvidia,emc-configuration = <
-                                       0x0000001b /* EMC_RC */
-                                       0x000000d0 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000013 /* EMC_RAS */
-                                       0x00000007 /* EMC_RP */
-                                       0x00000007 /* EMC_R2W */
-                                       0x0000000b /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x00000010 /* EMC_W2P */
-                                       0x00000007 /* EMC_RD_RCD */
-                                       0x00000007 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000005 /* EMC_WDV */
-                                       0x00000005 /* EMC_WDV_MASK */
-                                       0x0000000a /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000003 /* EMC_EINPUT */
-                                       0x0000000b /* EMC_EINPUT_DURATION */
-                                       0x00070000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000002 /* EMC_QRST */
-                                       0x00000012 /* EMC_QSAFE */
-                                       0x00000016 /* EMC_RDV */
-                                       0x00000018 /* EMC_RDV_MASK */
-                                       0x00001208 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000482 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x0000000d /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x000000cc /* EMC_AR2PDEN */
-                                       0x00000015 /* EMC_RW2PDEN */
-                                       0x000000d8 /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000015 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000006 /* EMC_TCLKSTABLE */
-                                       0x00000006 /* EMC_TCLKSTOP */
-                                       0x00001249 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0xe00e00b1 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
-                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000000 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x00b0000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x000040a0 /* EMC_CFG_PIPE */
-                                       0x800024aa /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000e /* EMC_QPOP */
+                       timing-40800000 {
+                               clock-frequency = <40800000>;
+
+                               nvidia,emem-configuration = <
+                                       0xa0000001 /* MC_EMEM_ARB_CFG */
+                                       0x80000017 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x75e30303 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-68000000 {
+                               clock-frequency = <68000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000001 /* MC_EMEM_ARB_CFG */
+                                       0x8000001e /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x75430403 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
 
-                       timing-792000000 {
-                               clock-frequency = <792000000>;
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0080089d>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x00100002>;
-                               nvidia,emc-mode-2 = <0x00200418>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x00000d71>;
-                               nvidia,emc-mrs-wait-cnt = <0x006f000e>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emem-configuration = <
+                                       0x08000001 /* MC_EMEM_ARB_CFG */
+                                       0x80000026 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0503 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74e30504 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
 
-                               nvidia,emc-configuration = <
-                                       0x00000024 /* EMC_RC */
-                                       0x00000114 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000019 /* EMC_RAS */
-                                       0x0000000a /* EMC_RP */
-                                       0x00000008 /* EMC_R2W */
-                                       0x0000000d /* EMC_W2R */
-                                       0x00000004 /* EMC_R2P */
-                                       0x00000013 /* EMC_W2P */
-                                       0x0000000a /* EMC_RD_RCD */
-                                       0x0000000a /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x0000000b /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000002 /* EMC_EINPUT */
-                                       0x0000000d /* EMC_EINPUT_DURATION */
-                                       0x00080000 /* EMC_PUTERM_EXTRA */
-                                       0x00000004 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000001 /* EMC_QRST */
-                                       0x00000014 /* EMC_QSAFE */
-                                       0x00000018 /* EMC_RDV */
-                                       0x0000001a /* EMC_RDV_MASK */
-                                       0x000017e2 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000005f8 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000003 /* EMC_PDEX2WR */
-                                       0x00000011 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x0000010d /* EMC_AR2PDEN */
-                                       0x00000018 /* EMC_RW2PDEN */
-                                       0x0000011e /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000005 /* EMC_TCKE */
-                                       0x00000006 /* EMC_TCKESR */
-                                       0x00000005 /* EMC_TPD */
-                                       0x0000001d /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000008 /* EMC_TCLKSTABLE */
-                                       0x00000008 /* EMC_TCLKSTOP */
-                                       0x00001822 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x80000005 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab198 /* EMC_FBIO_CFG5 */
-                                       0xe00700b1 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x007fc007 /* EMC_DLL_XFORM_DQS0 */
-                                       0x007fc008 /* EMC_DLL_XFORM_DQS1 */
-                                       0x007f400c /* EMC_DLL_XFORM_DQS2 */
-                                       0x007fc007 /* EMC_DLL_XFORM_DQS3 */
-                                       0x007f4006 /* EMC_DLL_XFORM_DQS4 */
-                                       0x007f8004 /* EMC_DLL_XFORM_DQS5 */
-                                       0x007f8005 /* EMC_DLL_XFORM_DQS6 */
-                                       0x007f8004 /* EMC_DLL_XFORM_DQS7 */
-                                       0x007fc007 /* EMC_DLL_XFORM_DQS8 */
-                                       0x007fc008 /* EMC_DLL_XFORM_DQS9 */
-                                       0x007f400c /* EMC_DLL_XFORM_DQS10 */
-                                       0x007fc007 /* EMC_DLL_XFORM_DQS11 */
-                                       0x007f4006 /* EMC_DLL_XFORM_DQS12 */
-                                       0x007f8004 /* EMC_DLL_XFORM_DQS13 */
-                                       0x007f8005 /* EMC_DLL_XFORM_DQS14 */
-                                       0x007f8004 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00034000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00034000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00034000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00034000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000007 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000007 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
-                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x61861820 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00492492 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00492492 /* EMC_XM2DQSPADCTRL5 */
-                                       0x61861800 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000000 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x006f000e /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000007 /* EMC_CTT */
-                                       0x00000004 /* EMC_CTT_DURATION */
-                                       0x00004080 /* EMC_CFG_PIPE */
-                                       0x80003012 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000f /* EMC_QPOP */
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x01000003 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06040203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0504 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74a40a05 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-300000000 {
+                               clock-frequency = <300000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000004 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000b0607 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x77450e08 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-396000000 {
+                               clock-frequency = <396000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000005 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x7586120a /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-528000000 {
+                               clock-frequency = <528000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000007 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000a /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06050202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x0010090c /* MC_EMEM_ARB_DA_COVERS */
+                                       0x7488180d /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-600000000 {
+                               clock-frequency = <600000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000009 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x0000000e /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000b /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x0000000b /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x07050202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x00130b0e /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74691b0f /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-792000000 {
+                               clock-frequency = <792000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0e00000b /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000013 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x08060202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x00170e13 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x746c2414 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f02 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
                };
                        timing-12750000 {
                                clock-frequency = <12750000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
-                                       0x00000000 /* EMC_RC */
-                                       0x00000003 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000000 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000060 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000018 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000007 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000005 /* EMC_TXSR */
-                                       0x00000005 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000000 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000064 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000007 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x800001c5 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
+                               nvidia,emem-configuration = <
+                                       0x40040001 /* MC_EMEM_ARB_CFG */
+                                       0x8000000a /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x77e30303 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
 
                        timing-20400000 {
                                clock-frequency = <20400000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
+                               nvidia,emem-configuration = <
+                                       0x40020001 /* MC_EMEM_ARB_CFG */
+                                       0x80000012 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x76230303 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
 
-                               nvidia,emc-configuration = <
-                                       0x00000000 /* EMC_RC */
-                                       0x00000005 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000000 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x0000009a /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000026 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000007 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000006 /* EMC_TXSR */
-                                       0x00000006 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000000 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x000000a0 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x0000000b /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x8000023a /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
+                       timing-40800000 {
+                               clock-frequency = <40800000>;
+
+                               nvidia,emem-configuration = <
+                                       0xa0000001 /* MC_EMEM_ARB_CFG */
+                                       0x80000017 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74a30303 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-68000000 {
+                               clock-frequency = <68000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000001 /* MC_EMEM_ARB_CFG */
+                                       0x8000001e /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74230403 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000001 /* MC_EMEM_ARB_CFG */
+                                       0x80000026 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0403 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73c30504 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
 
-                       timing-40800000 {
-                               clock-frequency = <40800000>;
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
+                               nvidia,emem-configuration = <
+                                       0x01000003 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06040203 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0405 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73840a06 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
 
-                               nvidia,emc-configuration = <
-                                       0x00000001 /* EMC_RC */
-                                       0x0000000a /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000001 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000134 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x0000004d /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000008 /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x0000000c /* EMC_TXSR */
-                                       0x0000000c /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000000 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x0000013f /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000015 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x80000370 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
+                       timing-300000000 {
+                               clock-frequency = <300000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000004 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000b0607 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x77450e08 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-396000000 {
+                               clock-frequency = <396000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000005 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x7586120a /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-528000000 {
+                               clock-frequency = <528000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000007 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x0000000d /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000a /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06050202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x0010090d /* MC_EMEM_ARB_DA_COVERS */
+                                       0x7428180e /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
 
-                       timing-68000000 {
-                               clock-frequency = <68000000>;
+                       timing-600000000 {
+                               clock-frequency = <600000000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000009 /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x0000000e /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000b /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x0000000b /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x07050202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x00130b0e /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73a91b0f /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
 
-                               nvidia,emc-configuration = <
-                                       0x00000003 /* EMC_RC */
-                                       0x00000011 /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000002 /* EMC_RAS */
-                                       0x00000000 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x0000000a /* EMC_W2R */
-                                       0x00000003 /* EMC_R2P */
-                                       0x0000000b /* EMC_W2P */
-                                       0x00000000 /* EMC_RD_RCD */
-                                       0x00000000 /* EMC_WR_RCD */
-                                       0x00000003 /* EMC_RRD */
-                                       0x00000003 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x00000006 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000005 /* EMC_EINPUT */
-                                       0x00000005 /* EMC_EINPUT_DURATION */
-                                       0x00010000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000004 /* EMC_QRST */
-                                       0x0000000c /* EMC_QSAFE */
-                                       0x0000000d /* EMC_RDV */
-                                       0x0000000f /* EMC_RDV_MASK */
-                                       0x00000202 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000080 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000002 /* EMC_PDEX2WR */
-                                       0x00000002 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x0000000f /* EMC_AR2PDEN */
-                                       0x0000000f /* EMC_RW2PDEN */
-                                       0x00000013 /* EMC_TXSR */
-                                       0x00000013 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000001 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000213 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x106aa298 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000022 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x8000050e /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
+                       timing-792000000 {
+                               clock-frequency = <792000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0e00000b /* MC_EMEM_ARB_CFG */
+                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000013 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x08060202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x734c2414 /* MC_EMEM_ARB_MISC0 */
+                                       0x70000f02 /* MC_EMEM_ARB_MISC1 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
                                >;
                        };
+               };
+       };
 
-                       timing-102000000 {
-                               clock-frequency = <102000000>;
+       external-memory-controller@7001b000 {
+               emc-timings-1 {
+                       nvidia,ram-code = <1>;
+
+                       timing-12750000 {
+                               clock-frequency = <12750000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000004 /* EMC_RC */
-                                       0x0000001a /* EMC_RFC */
+                                       0x00000000 /* EMC_RC */
+                                       0x00000003 /* EMC_RFC */
                                        0x00000000 /* EMC_RFC_SLR */
-                                       0x00000003 /* EMC_RAS */
-                                       0x00000001 /* EMC_RP */
+                                       0x00000000 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
                                        0x00000004 /* EMC_R2W */
                                        0x0000000a /* EMC_W2R */
                                        0x00000003 /* EMC_R2P */
                                        0x0000000b /* EMC_W2P */
-                                       0x00000001 /* EMC_RD_RCD */
-                                       0x00000001 /* EMC_WR_RCD */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
                                        0x00000003 /* EMC_RRD */
                                        0x00000003 /* EMC_REXT */
                                        0x00000000 /* EMC_WEXT */
                                        0x0000000c /* EMC_QSAFE */
                                        0x0000000d /* EMC_RDV */
                                        0x0000000f /* EMC_RDV_MASK */
-                                       0x00000304 /* EMC_REFRESH */
+                                       0x00000060 /* EMC_REFRESH */
                                        0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000000c1 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000018 /* EMC_PRE_REFRESH_REQ_CNT */
                                        0x00000002 /* EMC_PDEX2WR */
                                        0x00000002 /* EMC_PDEX2RD */
                                        0x00000001 /* EMC_PCHG2PDEN */
                                        0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000018 /* EMC_AR2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
                                        0x0000000f /* EMC_RW2PDEN */
-                                       0x0000001c /* EMC_TXSR */
-                                       0x0000001c /* EMC_TXSRDLL */
+                                       0x00000005 /* EMC_TXSR */
+                                       0x00000005 /* EMC_TXSRDLL */
                                        0x00000004 /* EMC_TCKE */
                                        0x00000005 /* EMC_TCKESR */
                                        0x00000004 /* EMC_TPD */
-                                       0x00000003 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TFAW */
                                        0x00000000 /* EMC_TRPAB */
                                        0x00000005 /* EMC_TCLKSTABLE */
                                        0x00000005 /* EMC_TCLKSTOP */
-                                       0x0000031c /* EMC_TREFBW */
+                                       0x00000064 /* EMC_TREFBW */
                                        0x00000000 /* EMC_FBIO_CFG6 */
                                        0x00000000 /* EMC_ODT_WRITE */
                                        0x00000000 /* EMC_ODT_READ */
                                        0x00514514 /* EMC_XM2DQSPADCTRL5 */
                                        0x51451400 /* EMC_XM2DQSPADCTRL6 */
                                        0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000033 /* EMC_TXDSRVTTGEN */
+                                       0x00000007 /* EMC_TXDSRVTTGEN */
                                        0x00000000 /* EMC_FBIO_SPARE */
                                        0x00000042 /* EMC_ZCAL_WAIT_CNT */
                                        0x000c000c /* EMC_MRS_WAIT_CNT2 */
                                        0x00000000 /* EMC_CTT */
                                        0x00000003 /* EMC_CTT_DURATION */
                                        0x0000f2f3 /* EMC_CFG_PIPE */
-                                       0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x800001c5 /* EMC_DYN_SELF_REF_CONTROL */
                                        0x0000000a /* EMC_QPOP */
                                >;
                        };
 
-                       timing-204000000 {
-                               clock-frequency = <204000000>;
+                       timing-20400000 {
+                               clock-frequency = <20400000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
                                nvidia,emc-bgbias-ctl0 = <0x00000008>;
                                nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x0000088d>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
                                nvidia,emc-mode-1 = <0x80100003>;
                                nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-mode-4 = <0x00000000>;
                                nvidia,emc-mode-reset = <0x80001221>;
                                nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
                                nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000009 /* EMC_RC */
-                                       0x00000035 /* EMC_RFC */
+                                       0x00000000 /* EMC_RC */
+                                       0x00000005 /* EMC_RFC */
                                        0x00000000 /* EMC_RFC_SLR */
-                                       0x00000007 /* EMC_RAS */
-                                       0x00000002 /* EMC_RP */
-                                       0x00000005 /* EMC_R2W */
+                                       0x00000000 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
                                        0x0000000a /* EMC_W2R */
                                        0x00000003 /* EMC_R2P */
                                        0x0000000b /* EMC_W2P */
-                                       0x00000002 /* EMC_RD_RCD */
-                                       0x00000002 /* EMC_WR_RCD */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
                                        0x00000003 /* EMC_RRD */
                                        0x00000003 /* EMC_REXT */
                                        0x00000000 /* EMC_WEXT */
-                                       0x00000005 /* EMC_WDV */
-                                       0x00000005 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
                                        0x00000006 /* EMC_QUSE */
                                        0x00000002 /* EMC_QUSE_WIDTH */
                                        0x00000000 /* EMC_IBDLY */
-                                       0x00000004 /* EMC_EINPUT */
-                                       0x00000006 /* EMC_EINPUT_DURATION */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
                                        0x00010000 /* EMC_PUTERM_EXTRA */
                                        0x00000003 /* EMC_PUTERM_WIDTH */
                                        0x00000000 /* EMC_PUTERM_ADJ */
                                        0x00000000 /* EMC_CDB_CNTL_1 */
                                        0x00000000 /* EMC_CDB_CNTL_2 */
                                        0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000003 /* EMC_QRST */
-                                       0x0000000d /* EMC_QSAFE */
-                                       0x0000000f /* EMC_RDV */
-                                       0x00000011 /* EMC_RDV_MASK */
-                                       0x00000607 /* EMC_REFRESH */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x0000009a /* EMC_REFRESH */
                                        0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000026 /* EMC_PRE_REFRESH_REQ_CNT */
                                        0x00000002 /* EMC_PDEX2WR */
                                        0x00000002 /* EMC_PDEX2RD */
                                        0x00000001 /* EMC_PCHG2PDEN */
                                        0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000032 /* EMC_AR2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
                                        0x0000000f /* EMC_RW2PDEN */
-                                       0x00000038 /* EMC_TXSR */
-                                       0x00000038 /* EMC_TXSRDLL */
+                                       0x00000006 /* EMC_TXSR */
+                                       0x00000006 /* EMC_TXSRDLL */
                                        0x00000004 /* EMC_TCKE */
                                        0x00000005 /* EMC_TCKESR */
                                        0x00000004 /* EMC_TPD */
-                                       0x00000007 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TFAW */
                                        0x00000000 /* EMC_TRPAB */
                                        0x00000005 /* EMC_TCLKSTABLE */
                                        0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000638 /* EMC_TREFBW */
+                                       0x000000a0 /* EMC_TREFBW */
                                        0x00000000 /* EMC_FBIO_CFG6 */
                                        0x00000000 /* EMC_ODT_WRITE */
                                        0x00000000 /* EMC_ODT_READ */
                                        0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
                                        0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
                                        0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00090000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00090000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00094000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00094000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00009400 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00009000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00009000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00009000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
                                        0x10000280 /* EMC_XM2CMDPADCTRL */
                                        0x00000000 /* EMC_XM2CMDPADCTRL4 */
                                        0x00111111 /* EMC_XM2CMDPADCTRL5 */
                                        0x00514514 /* EMC_XM2DQSPADCTRL5 */
                                        0x51451400 /* EMC_XM2DQSPADCTRL6 */
                                        0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000066 /* EMC_TXDSRVTTGEN */
-                                       0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000000 /* EMC_CTT */
-                                       0x00000003 /* EMC_CTT_DURATION */
-                                       0x0000d2b3 /* EMC_CFG_PIPE */
-                                       0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000a /* EMC_QPOP */
-                               >;
-                       };
-
-                       timing-300000000 {
-                               clock-frequency = <300000000>;
-
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73340000>;
-                               nvidia,emc-cfg-2 = <0x000008d5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200000>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000321>;
-                               nvidia,emc-mrs-wait-cnt = <0x0174000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
-
-                               nvidia,emc-configuration = <
-                                       0x0000000d /* EMC_RC */
-                                       0x0000004c /* EMC_RFC */
-                                       0x00000000 /* EMC_RFC_SLR */
-                                       0x00000009 /* EMC_RAS */
-                                       0x00000003 /* EMC_RP */
-                                       0x00000004 /* EMC_R2W */
-                                       0x00000008 /* EMC_W2R */
-                                       0x00000002 /* EMC_R2P */
-                                       0x00000009 /* EMC_W2P */
-                                       0x00000003 /* EMC_RD_RCD */
-                                       0x00000003 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
-                                       0x00000000 /* EMC_WEXT */
-                                       0x00000003 /* EMC_WDV */
-                                       0x00000003 /* EMC_WDV_MASK */
-                                       0x00000005 /* EMC_QUSE */
-                                       0x00000002 /* EMC_QUSE_WIDTH */
-                                       0x00000000 /* EMC_IBDLY */
-                                       0x00000002 /* EMC_EINPUT */
-                                       0x00000007 /* EMC_EINPUT_DURATION */
-                                       0x00020000 /* EMC_PUTERM_EXTRA */
-                                       0x00000003 /* EMC_PUTERM_WIDTH */
-                                       0x00000000 /* EMC_PUTERM_ADJ */
-                                       0x00000000 /* EMC_CDB_CNTL_1 */
-                                       0x00000000 /* EMC_CDB_CNTL_2 */
-                                       0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000001 /* EMC_QRST */
-                                       0x0000000e /* EMC_QSAFE */
-                                       0x00000010 /* EMC_RDV */
-                                       0x00000012 /* EMC_RDV_MASK */
-                                       0x000008e4 /* EMC_REFRESH */
-                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000239 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000001 /* EMC_PDEX2WR */
-                                       0x00000008 /* EMC_PDEX2RD */
-                                       0x00000001 /* EMC_PCHG2PDEN */
-                                       0x00000000 /* EMC_ACT2PDEN */
-                                       0x0000004a /* EMC_AR2PDEN */
-                                       0x0000000e /* EMC_RW2PDEN */
-                                       0x00000051 /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000004 /* EMC_TCKE */
-                                       0x00000005 /* EMC_TCKESR */
-                                       0x00000004 /* EMC_TPD */
-                                       0x00000009 /* EMC_TFAW */
-                                       0x00000000 /* EMC_TRPAB */
-                                       0x00000005 /* EMC_TCLKSTABLE */
-                                       0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000924 /* EMC_TREFBW */
-                                       0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x00000000 /* EMC_ODT_WRITE */
-                                       0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
-                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00098000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
-                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00060000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00006000 /* EMC_DLL_XFORM_DQ7 */
-                                       0x10000280 /* EMC_XM2CMDPADCTRL */
-                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
-                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
-                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
-                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
-                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
-                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
-                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
-                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000096 /* EMC_TXDSRVTTGEN */
+                                       0x0000000b /* EMC_TXDSRVTTGEN */
                                        0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x0174000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
                                        0x00000000 /* EMC_CTT */
                                        0x00000003 /* EMC_CTT_DURATION */
-                                       0x000052a3 /* EMC_CFG_PIPE */
-                                       0x800012d7 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x00000009 /* EMC_QPOP */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x8000023a /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
-                       timing-396000000 {
-                               clock-frequency = <396000000>;
+                       timing-40800000 {
+                               clock-frequency = <40800000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73340000>;
-                               nvidia,emc-cfg-2 = <0x00000895>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000521>;
-                               nvidia,emc-mrs-wait-cnt = <0x015b000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000012 /* EMC_RC */
-                                       0x00000065 /* EMC_RFC */
+                                       0x00000001 /* EMC_RC */
+                                       0x0000000a /* EMC_RFC */
                                        0x00000000 /* EMC_RFC_SLR */
-                                       0x0000000c /* EMC_RAS */
-                                       0x00000004 /* EMC_RP */
-                                       0x00000005 /* EMC_R2W */
-                                       0x00000008 /* EMC_W2R */
-                                       0x00000002 /* EMC_R2P */
-                                       0x0000000a /* EMC_W2P */
-                                       0x00000004 /* EMC_RD_RCD */
-                                       0x00000004 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
+                                       0x00000001 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
                                        0x00000000 /* EMC_WEXT */
-                                       0x00000003 /* EMC_WDV */
-                                       0x00000003 /* EMC_WDV_MASK */
-                                       0x00000005 /* EMC_QUSE */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
                                        0x00000002 /* EMC_QUSE_WIDTH */
                                        0x00000000 /* EMC_IBDLY */
-                                       0x00000001 /* EMC_EINPUT */
-                                       0x00000008 /* EMC_EINPUT_DURATION */
-                                       0x00020000 /* EMC_PUTERM_EXTRA */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
                                        0x00000003 /* EMC_PUTERM_WIDTH */
                                        0x00000000 /* EMC_PUTERM_ADJ */
                                        0x00000000 /* EMC_CDB_CNTL_1 */
                                        0x00000000 /* EMC_CDB_CNTL_2 */
                                        0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000000 /* EMC_QRST */
-                                       0x0000000f /* EMC_QSAFE */
-                                       0x00000010 /* EMC_RDV */
-                                       0x00000012 /* EMC_RDV_MASK */
-                                       0x00000bd1 /* EMC_REFRESH */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000134 /* EMC_REFRESH */
                                        0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000002f4 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000001 /* EMC_PDEX2WR */
-                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x0000004d /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
                                        0x00000001 /* EMC_PCHG2PDEN */
                                        0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000063 /* EMC_AR2PDEN */
+                                       0x00000008 /* EMC_AR2PDEN */
                                        0x0000000f /* EMC_RW2PDEN */
-                                       0x0000006b /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x0000000c /* EMC_TXSR */
+                                       0x0000000c /* EMC_TXSRDLL */
                                        0x00000004 /* EMC_TCKE */
                                        0x00000005 /* EMC_TCKESR */
                                        0x00000004 /* EMC_TPD */
-                                       0x0000000d /* EMC_TFAW */
+                                       0x00000000 /* EMC_TFAW */
                                        0x00000000 /* EMC_TRPAB */
                                        0x00000005 /* EMC_TCLKSTABLE */
                                        0x00000005 /* EMC_TCLKSTOP */
-                                       0x00000c11 /* EMC_TREFBW */
+                                       0x0000013f /* EMC_TREFBW */
                                        0x00000000 /* EMC_FBIO_CFG6 */
                                        0x00000000 /* EMC_ODT_WRITE */
                                        0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
                                        0x002c00a0 /* EMC_CFG_DIG_DLL */
                                        0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE0 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE1 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE2 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE5 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE6 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00070000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE8 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE9 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE10 */
                                        0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
                                        0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
                                        0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ0 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ1 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ2 */
-                                       0x00048000 /* EMC_DLL_XFORM_DQ3 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ4 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ5 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ6 */
-                                       0x00004800 /* EMC_DLL_XFORM_DQ7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
                                        0x10000280 /* EMC_XM2CMDPADCTRL */
                                        0x00000000 /* EMC_XM2CMDPADCTRL4 */
                                        0x00111111 /* EMC_XM2CMDPADCTRL5 */
                                        0x00000000 /* EMC_XM2DQPADCTRL2 */
                                        0x00000000 /* EMC_XM2DQPADCTRL3 */
                                        0x77ffc081 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
                                        0x81f1f108 /* EMC_XM2COMPPADCTRL */
                                        0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
                                        0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
                                        0x00514514 /* EMC_XM2DQSPADCTRL4 */
                                        0x00514514 /* EMC_XM2DQSPADCTRL5 */
                                        0x51451400 /* EMC_XM2DQSPADCTRL6 */
                                        0x0000003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x000000c6 /* EMC_TXDSRVTTGEN */
+                                       0x00000015 /* EMC_TXDSRVTTGEN */
                                        0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x015b000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
                                        0x00000000 /* EMC_CTT */
                                        0x00000003 /* EMC_CTT_DURATION */
-                                       0x000052a3 /* EMC_CFG_PIPE */
-                                       0x8000188b /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x00000009 /* EMC_QPOP */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x80000370 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
-                       timing-528000000 {
-                               clock-frequency = <528000000>;
+                       timing-68000000 {
+                               clock-frequency = <68000000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-1 = <0x80100003>;
                                nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000941>;
-                               nvidia,emc-mrs-wait-cnt = <0x013a000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0123133d>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000018 /* EMC_RC */
-                                       0x00000088 /* EMC_RFC */
+                                       0x00000003 /* EMC_RC */
+                                       0x00000011 /* EMC_RFC */
                                        0x00000000 /* EMC_RFC_SLR */
-                                       0x00000011 /* EMC_RAS */
-                                       0x00000006 /* EMC_RP */
-                                       0x00000006 /* EMC_R2W */
-                                       0x00000009 /* EMC_W2R */
-                                       0x00000002 /* EMC_R2P */
-                                       0x0000000d /* EMC_W2P */
-                                       0x00000006 /* EMC_RD_RCD */
-                                       0x00000006 /* EMC_WR_RCD */
-                                       0x00000002 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
+                                       0x00000002 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
                                        0x00000000 /* EMC_WEXT */
-                                       0x00000003 /* EMC_WDV */
-                                       0x00000003 /* EMC_WDV_MASK */
-                                       0x00000007 /* EMC_QUSE */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
                                        0x00000002 /* EMC_QUSE_WIDTH */
                                        0x00000000 /* EMC_IBDLY */
-                                       0x00000002 /* EMC_EINPUT */
-                                       0x00000009 /* EMC_EINPUT_DURATION */
-                                       0x00040000 /* EMC_PUTERM_EXTRA */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
                                        0x00000003 /* EMC_PUTERM_WIDTH */
                                        0x00000000 /* EMC_PUTERM_ADJ */
                                        0x00000000 /* EMC_CDB_CNTL_1 */
                                        0x00000000 /* EMC_CDB_CNTL_2 */
                                        0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000001 /* EMC_QRST */
-                                       0x00000010 /* EMC_QSAFE */
-                                       0x00000013 /* EMC_RDV */
-                                       0x00000015 /* EMC_RDV_MASK */
-                                       0x00000fd6 /* EMC_REFRESH */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000202 /* EMC_REFRESH */
                                        0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000003f5 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000080 /* EMC_PRE_REFRESH_REQ_CNT */
                                        0x00000002 /* EMC_PDEX2WR */
-                                       0x0000000b /* EMC_PDEX2RD */
+                                       0x00000002 /* EMC_PDEX2RD */
                                        0x00000001 /* EMC_PCHG2PDEN */
                                        0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000084 /* EMC_AR2PDEN */
-                                       0x00000012 /* EMC_RW2PDEN */
-                                       0x0000008f /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x0000000f /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000013 /* EMC_TXSR */
+                                       0x00000013 /* EMC_TXSRDLL */
                                        0x00000004 /* EMC_TCKE */
                                        0x00000005 /* EMC_TCKESR */
                                        0x00000004 /* EMC_TPD */
-                                       0x00000013 /* EMC_TFAW */
+                                       0x00000001 /* EMC_TFAW */
                                        0x00000000 /* EMC_TRPAB */
-                                       0x00000006 /* EMC_TCLKSTABLE */
-                                       0x00000006 /* EMC_TCLKSTOP */
-                                       0x00001017 /* EMC_TREFBW */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000213 /* EMC_TREFBW */
                                        0x00000000 /* EMC_FBIO_CFG6 */
                                        0x00000000 /* EMC_ODT_WRITE */
                                        0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0xe01200b1 /* EMC_CFG_DIG_DLL */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
                                        0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE0 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE1 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE2 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE5 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE6 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00050000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE8 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE9 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE10 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE13 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE14 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
                                        0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000001 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
                                        0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000001 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
-                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
                                        0x00000000 /* EMC_XM2CMDPADCTRL4 */
                                        0x00111111 /* EMC_XM2CMDPADCTRL5 */
                                        0x00000000 /* EMC_XM2DQPADCTRL2 */
                                        0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
                                        0x81f1f108 /* EMC_XM2COMPPADCTRL */
                                        0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
                                        0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
                                        0x00514514 /* EMC_XM2DQSPADCTRL4 */
                                        0x00514514 /* EMC_XM2DQSPADCTRL5 */
                                        0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000022 /* EMC_TXDSRVTTGEN */
                                        0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x013a000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
                                        0x00000000 /* EMC_CTT */
                                        0x00000003 /* EMC_CTT_DURATION */
-                                       0x000042a0 /* EMC_CFG_PIPE */
-                                       0x80002062 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000b /* EMC_QPOP */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x8000050e /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
-                       timing-600000000 {
-                               clock-frequency = <600000000>;
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200010>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000b61>;
-                               nvidia,emc-mrs-wait-cnt = <0x0128000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0121113d>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00020000>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
 
                                nvidia,emc-configuration = <
-                                       0x0000001c /* EMC_RC */
-                                       0x0000009a /* EMC_RFC */
+                                       0x00000004 /* EMC_RC */
+                                       0x0000001a /* EMC_RFC */
                                        0x00000000 /* EMC_RFC_SLR */
-                                       0x00000013 /* EMC_RAS */
-                                       0x00000007 /* EMC_RP */
-                                       0x00000007 /* EMC_R2W */
-                                       0x0000000b /* EMC_W2R */
+                                       0x00000003 /* EMC_RAS */
+                                       0x00000001 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
                                        0x00000003 /* EMC_R2P */
-                                       0x00000010 /* EMC_W2P */
-                                       0x00000007 /* EMC_RD_RCD */
-                                       0x00000007 /* EMC_WR_RCD */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000001 /* EMC_RD_RCD */
+                                       0x00000001 /* EMC_WR_RCD */
                                        0x00000003 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
+                                       0x00000003 /* EMC_REXT */
                                        0x00000000 /* EMC_WEXT */
-                                       0x00000005 /* EMC_WDV */
-                                       0x00000005 /* EMC_WDV_MASK */
-                                       0x0000000a /* EMC_QUSE */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
                                        0x00000002 /* EMC_QUSE_WIDTH */
                                        0x00000000 /* EMC_IBDLY */
-                                       0x00000003 /* EMC_EINPUT */
-                                       0x0000000b /* EMC_EINPUT_DURATION */
-                                       0x00070000 /* EMC_PUTERM_EXTRA */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
                                        0x00000003 /* EMC_PUTERM_WIDTH */
                                        0x00000000 /* EMC_PUTERM_ADJ */
                                        0x00000000 /* EMC_CDB_CNTL_1 */
                                        0x00000000 /* EMC_CDB_CNTL_2 */
                                        0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000002 /* EMC_QRST */
-                                       0x00000012 /* EMC_QSAFE */
-                                       0x00000016 /* EMC_RDV */
-                                       0x00000018 /* EMC_RDV_MASK */
-                                       0x00001208 /* EMC_REFRESH */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000304 /* EMC_REFRESH */
                                        0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x00000482 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x000000c1 /* EMC_PRE_REFRESH_REQ_CNT */
                                        0x00000002 /* EMC_PDEX2WR */
-                                       0x0000000d /* EMC_PDEX2RD */
+                                       0x00000002 /* EMC_PDEX2RD */
                                        0x00000001 /* EMC_PCHG2PDEN */
                                        0x00000000 /* EMC_ACT2PDEN */
-                                       0x00000096 /* EMC_AR2PDEN */
-                                       0x00000015 /* EMC_RW2PDEN */
-                                       0x000000a2 /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000018 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000001c /* EMC_TXSR */
+                                       0x0000001c /* EMC_TXSRDLL */
                                        0x00000004 /* EMC_TCKE */
                                        0x00000005 /* EMC_TCKESR */
                                        0x00000004 /* EMC_TPD */
-                                       0x00000015 /* EMC_TFAW */
+                                       0x00000003 /* EMC_TFAW */
                                        0x00000000 /* EMC_TRPAB */
-                                       0x00000006 /* EMC_TCLKSTABLE */
-                                       0x00000006 /* EMC_TCLKSTOP */
-                                       0x00001249 /* EMC_TREFBW */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000031c /* EMC_TREFBW */
                                        0x00000000 /* EMC_FBIO_CFG6 */
                                        0x00000000 /* EMC_ODT_WRITE */
                                        0x00000000 /* EMC_ODT_READ */
-                                       0x104ab098 /* EMC_FBIO_CFG5 */
-                                       0xe00e00b1 /* EMC_CFG_DIG_DLL */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
                                        0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
-                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE0 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE1 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE2 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE5 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE6 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00048000 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE8 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE9 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE10 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE13 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE14 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000004 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000002 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000003 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000006 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
-                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
                                        0x00000000 /* EMC_XM2CMDPADCTRL4 */
                                        0x00111111 /* EMC_XM2CMDPADCTRL5 */
                                        0x00000000 /* EMC_XM2DQPADCTRL2 */
                                        0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
                                        0x81f1f108 /* EMC_XM2COMPPADCTRL */
                                        0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
                                        0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
                                        0x00514514 /* EMC_XM2DQSPADCTRL4 */
                                        0x00514514 /* EMC_XM2DQSPADCTRL5 */
                                        0x51451400 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000033 /* EMC_TXDSRVTTGEN */
                                        0x00000000 /* EMC_FBIO_SPARE */
-                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x0128000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
                                        0x00000000 /* EMC_CTT */
                                        0x00000003 /* EMC_CTT_DURATION */
-                                       0x000040a0 /* EMC_CFG_PIPE */
-                                       0x800024aa /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000e /* EMC_QPOP */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
-                       timing-792000000 {
-                               clock-frequency = <792000000>;
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
 
                                nvidia,emc-auto-cal-config = <0xa1430000>;
                                nvidia,emc-auto-cal-config2 = <0x00000000>;
                                nvidia,emc-auto-cal-config3 = <0x00000000>;
                                nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
-                               nvidia,emc-cfg = <0x73300000>;
-                               nvidia,emc-cfg-2 = <0x0080089d>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x0000088d>;
                                nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100002>;
-                               nvidia,emc-mode-2 = <0x80200418>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
                                nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80000d71>;
-                               nvidia,emc-mrs-wait-cnt = <0x00f8000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
                                nvidia,emc-zcal-cnt-long = <0x00000042>;
                                nvidia,emc-zcal-interval = <0x00020000>;
 
                                nvidia,emc-configuration = <
-                                       0x00000025 /* EMC_RC */
-                                       0x000000cc /* EMC_RFC */
+                                       0x00000009 /* EMC_RC */
+                                       0x00000035 /* EMC_RFC */
                                        0x00000000 /* EMC_RFC_SLR */
-                                       0x0000001a /* EMC_RAS */
-                                       0x00000009 /* EMC_RP */
-                                       0x00000008 /* EMC_R2W */
-                                       0x0000000d /* EMC_W2R */
-                                       0x00000004 /* EMC_R2P */
-                                       0x00000013 /* EMC_W2P */
-                                       0x00000009 /* EMC_RD_RCD */
-                                       0x00000009 /* EMC_WR_RCD */
-                                       0x00000004 /* EMC_RRD */
-                                       0x00000002 /* EMC_REXT */
+                                       0x00000007 /* EMC_RAS */
+                                       0x00000002 /* EMC_RP */
+                                       0x00000005 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000002 /* EMC_RD_RCD */
+                                       0x00000002 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
                                        0x00000000 /* EMC_WEXT */
-                                       0x00000006 /* EMC_WDV */
-                                       0x00000006 /* EMC_WDV_MASK */
-                                       0x0000000b /* EMC_QUSE */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
                                        0x00000002 /* EMC_QUSE_WIDTH */
                                        0x00000000 /* EMC_IBDLY */
-                                       0x00000002 /* EMC_EINPUT */
-                                       0x0000000d /* EMC_EINPUT_DURATION */
-                                       0x00080000 /* EMC_PUTERM_EXTRA */
-                                       0x00000004 /* EMC_PUTERM_WIDTH */
+                                       0x00000004 /* EMC_EINPUT */
+                                       0x00000006 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
                                        0x00000000 /* EMC_PUTERM_ADJ */
                                        0x00000000 /* EMC_CDB_CNTL_1 */
                                        0x00000000 /* EMC_CDB_CNTL_2 */
                                        0x00000000 /* EMC_CDB_CNTL_3 */
-                                       0x00000001 /* EMC_QRST */
-                                       0x00000014 /* EMC_QSAFE */
-                                       0x00000018 /* EMC_RDV */
-                                       0x0000001a /* EMC_RDV_MASK */
-                                       0x000017e2 /* EMC_REFRESH */
+                                       0x00000003 /* EMC_QRST */
+                                       0x0000000d /* EMC_QSAFE */
+                                       0x0000000f /* EMC_RDV */
+                                       0x00000011 /* EMC_RDV_MASK */
+                                       0x00000607 /* EMC_REFRESH */
                                        0x00000000 /* EMC_BURST_REFRESH_NUM */
-                                       0x000005f8 /* EMC_PRE_REFRESH_REQ_CNT */
-                                       0x00000003 /* EMC_PDEX2WR */
-                                       0x00000011 /* EMC_PDEX2RD */
+                                       0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
                                        0x00000001 /* EMC_PCHG2PDEN */
                                        0x00000000 /* EMC_ACT2PDEN */
-                                       0x000000c6 /* EMC_AR2PDEN */
-                                       0x00000018 /* EMC_RW2PDEN */
-                                       0x000000d6 /* EMC_TXSR */
-                                       0x00000200 /* EMC_TXSRDLL */
-                                       0x00000005 /* EMC_TCKE */
-                                       0x00000006 /* EMC_TCKESR */
-                                       0x00000005 /* EMC_TPD */
-                                       0x0000001d /* EMC_TFAW */
+                                       0x00000032 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000038 /* EMC_TXSR */
+                                       0x00000038 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000007 /* EMC_TFAW */
                                        0x00000000 /* EMC_TRPAB */
-                                       0x00000008 /* EMC_TCLKSTABLE */
-                                       0x00000008 /* EMC_TCLKSTOP */
-                                       0x00001822 /* EMC_TREFBW */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000638 /* EMC_TREFBW */
                                        0x00000000 /* EMC_FBIO_CFG6 */
-                                       0x80000005 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_WRITE */
                                        0x00000000 /* EMC_ODT_READ */
-                                       0x104ab198 /* EMC_FBIO_CFG5 */
-                                       0xe00700b1 /* EMC_CFG_DIG_DLL */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
                                        0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                                       0x00000009 /* EMC_DLL_XFORM_DQS0 */
-                                       0x00000009 /* EMC_DLL_XFORM_DQS1 */
-                                       0x00000009 /* EMC_DLL_XFORM_DQS2 */
-                                       0x00000007 /* EMC_DLL_XFORM_DQS3 */
-                                       0x00000006 /* EMC_DLL_XFORM_DQS4 */
-                                       0x00000006 /* EMC_DLL_XFORM_DQS5 */
-                                       0x007fc009 /* EMC_DLL_XFORM_DQS6 */
-                                       0x00000006 /* EMC_DLL_XFORM_DQS7 */
-                                       0x00000009 /* EMC_DLL_XFORM_DQS8 */
-                                       0x00000009 /* EMC_DLL_XFORM_DQS9 */
-                                       0x00000009 /* EMC_DLL_XFORM_DQS10 */
-                                       0x00000007 /* EMC_DLL_XFORM_DQS11 */
-                                       0x00000006 /* EMC_DLL_XFORM_DQS12 */
-                                       0x00000007 /* EMC_DLL_XFORM_DQS13 */
-                                       0x00000009 /* EMC_DLL_XFORM_DQS14 */
-                                       0x00000007 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE0 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE1 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE2 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE5 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE6 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                                       0x00034002 /* EMC_DLL_XFORM_ADDR0 */
-                                       0x00034002 /* EMC_DLL_XFORM_ADDR1 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
-                                       0x00034002 /* EMC_DLL_XFORM_ADDR3 */
-                                       0x00034002 /* EMC_DLL_XFORM_ADDR4 */
-                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE8 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE9 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE10 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE13 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE14 */
                                        0x00000000 /* EMC_DLL_XFORM_QUSE15 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS0 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS1 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS2 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS3 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS4 */
-                                       0x00000007 /* EMC_DLI_TRIM_TXDQS5 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS6 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS7 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS8 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS9 */
-                                       0x00000005 /* EMC_DLI_TRIM_TXDQS10 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS11 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS12 */
-                                       0x00000007 /* EMC_DLI_TRIM_TXDQS13 */
-                                       0x00000009 /* EMC_DLI_TRIM_TXDQS14 */
-                                       0x00000008 /* EMC_DLI_TRIM_TXDQS15 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
-                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
-                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00090000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00090000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00094000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00094000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00009400 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00009000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00009000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00009000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
                                        0x00000000 /* EMC_XM2CMDPADCTRL4 */
                                        0x00111111 /* EMC_XM2CMDPADCTRL5 */
                                        0x00000000 /* EMC_XM2DQPADCTRL2 */
                                        0x00000000 /* EMC_XM2DQPADCTRL3 */
-                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
-                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
                                        0x81f1f108 /* EMC_XM2COMPPADCTRL */
                                        0x07070004 /* EMC_XM2VTTGENPADCTRL */
-                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
                                        0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
-                                       0x61861820 /* EMC_XM2DQSPADCTRL3 */
-                                       0x004d34d3 /* EMC_XM2DQSPADCTRL4 */
-                                       0x004d34d3 /* EMC_XM2DQSPADCTRL5 */
-                                       0x61861800 /* EMC_XM2DQSPADCTRL6 */
-                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
-                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000066 /* EMC_TXDSRVTTGEN */
                                        0x00000000 /* EMC_FBIO_SPARE */
                                        0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                                       0x00f8000c /* EMC_MRS_WAIT_CNT2 */
-                                       0x00000007 /* EMC_CTT */
-                                       0x00000004 /* EMC_CTT_DURATION */
-                                       0x00004080 /* EMC_CFG_PIPE */
-                                       0x80003012 /* EMC_DYN_SELF_REF_CONTROL */
-                                       0x0000000f /* EMC_QPOP */
-                               >;
-                       };
-               };
-       };
-
-       memory-controller@70019000 {
-               emc-timings-1 {
-                       nvidia,ram-code = <1>;
-
-                       timing-12750000 {
-                               clock-frequency = <12750000>;
-
-                               nvidia,emem-configuration = <
-                                       0x40040001 /* MC_EMEM_ARB_CFG */
-                                       0x8000000a /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x77e30303 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                               >;
-                       };
-
-                       timing-20400000 {
-                               clock-frequency = <20400000>;
-
-                               nvidia,emem-configuration = <
-                                       0x40020001 /* MC_EMEM_ARB_CFG */
-                                       0x80000012 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x76230303 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                               >;
-                       };
-
-                       timing-40800000 {
-                               clock-frequency = <40800000>;
-
-                               nvidia,emem-configuration = <
-                                       0xa0000001 /* MC_EMEM_ARB_CFG */
-                                       0x80000017 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x74a30303 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                               >;
-                       };
-
-                       timing-68000000 {
-                               clock-frequency = <68000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x00000001 /* MC_EMEM_ARB_CFG */
-                                       0x8000001e /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x74230403 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                               >;
-                       };
-
-                       timing-102000000 {
-                               clock-frequency = <102000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x08000001 /* MC_EMEM_ARB_CFG */
-                                       0x80000026 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0403 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x73c30504 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                               >;
-                       };
-
-                       timing-204000000 {
-                               clock-frequency = <204000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x01000003 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06040203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0405 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x73840a06 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000d2b3 /* EMC_CFG_PIPE */
+                                       0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-300000000 {
                                clock-frequency = <300000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x08000004 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000b0607 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x77450e08 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73340000>;
+                               nvidia,emc-cfg-2 = <0x000008d5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000321>;
+                               nvidia,emc-mrs-wait-cnt = <0x0174000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x0000000d /* EMC_RC */
+                                       0x0000004c /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000009 /* EMC_RAS */
+                                       0x00000003 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x00000008 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x00000009 /* EMC_W2P */
+                                       0x00000003 /* EMC_RD_RCD */
+                                       0x00000003 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000003 /* EMC_WDV */
+                                       0x00000003 /* EMC_WDV_MASK */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000002 /* EMC_EINPUT */
+                                       0x00000007 /* EMC_EINPUT_DURATION */
+                                       0x00020000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000001 /* EMC_QRST */
+                                       0x0000000e /* EMC_QSAFE */
+                                       0x00000010 /* EMC_RDV */
+                                       0x00000012 /* EMC_RDV_MASK */
+                                       0x000008e4 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000239 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000001 /* EMC_PDEX2WR */
+                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x0000004a /* EMC_AR2PDEN */
+                                       0x0000000e /* EMC_RW2PDEN */
+                                       0x00000051 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000009 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000924 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000096 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x0174000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000052a3 /* EMC_CFG_PIPE */
+                                       0x800012d7 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x00000009 /* EMC_QPOP */
                                >;
                        };
 
                        timing-396000000 {
                                clock-frequency = <396000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0f000005 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000009 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x7586120a /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73340000>;
+                               nvidia,emc-cfg-2 = <0x00000895>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000521>;
+                               nvidia,emc-mrs-wait-cnt = <0x015b000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000012 /* EMC_RC */
+                                       0x00000065 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x0000000c /* EMC_RAS */
+                                       0x00000004 /* EMC_RP */
+                                       0x00000005 /* EMC_R2W */
+                                       0x00000008 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x0000000a /* EMC_W2P */
+                                       0x00000004 /* EMC_RD_RCD */
+                                       0x00000004 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000003 /* EMC_WDV */
+                                       0x00000003 /* EMC_WDV_MASK */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000001 /* EMC_EINPUT */
+                                       0x00000008 /* EMC_EINPUT_DURATION */
+                                       0x00020000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000000 /* EMC_QRST */
+                                       0x0000000f /* EMC_QSAFE */
+                                       0x00000010 /* EMC_RDV */
+                                       0x00000012 /* EMC_RDV_MASK */
+                                       0x00000bd1 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000002f4 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000001 /* EMC_PDEX2WR */
+                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000063 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000006b /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x0000000d /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000c11 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x000000c6 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x015b000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000052a3 /* EMC_CFG_PIPE */
+                                       0x8000188b /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x00000009 /* EMC_QPOP */
                                >;
                        };
 
                        timing-528000000 {
                                clock-frequency = <528000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0f000007 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x0000000d /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x0000000a /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000009 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06050202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x0010090d /* MC_EMEM_ARB_DA_COVERS */
-                                       0x7428180e /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000941>;
+                               nvidia,emc-mrs-wait-cnt = <0x013a000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0123133d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000018 /* EMC_RC */
+                                       0x00000088 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000011 /* EMC_RAS */
+                                       0x00000006 /* EMC_RP */
+                                       0x00000006 /* EMC_R2W */
+                                       0x00000009 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x0000000d /* EMC_W2P */
+                                       0x00000006 /* EMC_RD_RCD */
+                                       0x00000006 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000003 /* EMC_WDV */
+                                       0x00000003 /* EMC_WDV_MASK */
+                                       0x00000007 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000002 /* EMC_EINPUT */
+                                       0x00000009 /* EMC_EINPUT_DURATION */
+                                       0x00040000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000001 /* EMC_QRST */
+                                       0x00000010 /* EMC_QSAFE */
+                                       0x00000013 /* EMC_RDV */
+                                       0x00000015 /* EMC_RDV_MASK */
+                                       0x00000fd6 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000003f5 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x0000000b /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000084 /* EMC_AR2PDEN */
+                                       0x00000012 /* EMC_RW2PDEN */
+                                       0x0000008f /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000013 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000006 /* EMC_TCLKSTABLE */
+                                       0x00000006 /* EMC_TCLKSTOP */
+                                       0x00001017 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0xe01200b1 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000001 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000001 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
+                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x013a000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000042a0 /* EMC_CFG_PIPE */
+                                       0x80002062 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000b /* EMC_QPOP */
                                >;
                        };
 
                        timing-600000000 {
                                clock-frequency = <600000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x00000009 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x0000000e /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000009 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x0000000b /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x0000000b /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x07050202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x00130b0e /* MC_EMEM_ARB_DA_COVERS */
-                                       0x73a91b0f /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200010>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000b61>;
+                               nvidia,emc-mrs-wait-cnt = <0x0128000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0121113d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x0000001c /* EMC_RC */
+                                       0x0000009a /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000013 /* EMC_RAS */
+                                       0x00000007 /* EMC_RP */
+                                       0x00000007 /* EMC_R2W */
+                                       0x0000000b /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x00000010 /* EMC_W2P */
+                                       0x00000007 /* EMC_RD_RCD */
+                                       0x00000007 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_WDV_MASK */
+                                       0x0000000a /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000003 /* EMC_EINPUT */
+                                       0x0000000b /* EMC_EINPUT_DURATION */
+                                       0x00070000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000002 /* EMC_QRST */
+                                       0x00000012 /* EMC_QSAFE */
+                                       0x00000016 /* EMC_RDV */
+                                       0x00000018 /* EMC_RDV_MASK */
+                                       0x00001208 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000482 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x0000000d /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000096 /* EMC_AR2PDEN */
+                                       0x00000015 /* EMC_RW2PDEN */
+                                       0x000000a2 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000015 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000006 /* EMC_TCLKSTABLE */
+                                       0x00000006 /* EMC_TCLKSTOP */
+                                       0x00001249 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0xe00e00b1 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
+                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x0128000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000040a0 /* EMC_CFG_PIPE */
+                                       0x800024aa /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000e /* EMC_QPOP */
                                >;
                        };
 
                        timing-792000000 {
                                clock-frequency = <792000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0e00000b /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000013 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x08060202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x734c2414 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f02 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0080089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200418>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000d71>;
+                               nvidia,emc-mrs-wait-cnt = <0x00f8000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000025 /* EMC_RC */
+                                       0x000000cc /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x0000001a /* EMC_RAS */
+                                       0x00000009 /* EMC_RP */
+                                       0x00000008 /* EMC_R2W */
+                                       0x0000000d /* EMC_W2R */
+                                       0x00000004 /* EMC_R2P */
+                                       0x00000013 /* EMC_W2P */
+                                       0x00000009 /* EMC_RD_RCD */
+                                       0x00000009 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x0000000b /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000002 /* EMC_EINPUT */
+                                       0x0000000d /* EMC_EINPUT_DURATION */
+                                       0x00080000 /* EMC_PUTERM_EXTRA */
+                                       0x00000004 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000001 /* EMC_QRST */
+                                       0x00000014 /* EMC_QSAFE */
+                                       0x00000018 /* EMC_RDV */
+                                       0x0000001a /* EMC_RDV_MASK */
+                                       0x000017e2 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000005f8 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000003 /* EMC_PDEX2WR */
+                                       0x00000011 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x000000c6 /* EMC_AR2PDEN */
+                                       0x00000018 /* EMC_RW2PDEN */
+                                       0x000000d6 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000005 /* EMC_TCKE */
+                                       0x00000006 /* EMC_TCKESR */
+                                       0x00000005 /* EMC_TPD */
+                                       0x0000001d /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000008 /* EMC_TCLKSTABLE */
+                                       0x00000008 /* EMC_TCLKSTOP */
+                                       0x00001822 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x80000005 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab198 /* EMC_FBIO_CFG5 */
+                                       0xe00700b1 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00000005 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00034000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00034000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00034000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00034000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000007 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000007 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ7 */
+                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x61861820 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x61861800 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x00f8000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000007 /* EMC_CTT */
+                                       0x00000004 /* EMC_CTT_DURATION */
+                                       0x00004080 /* EMC_CFG_PIPE */
+                                       0x80003012 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000f /* EMC_QPOP */
                                >;
                        };
                };
                        timing-12750000 {
                                clock-frequency = <12750000>;
 
-                               nvidia,emem-configuration = <
-                                       0x40040001 /* MC_EMEM_ARB_CFG */
-                                       0x8000000a /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x77e30303 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100003>;
+                               nvidia,emc-mode-2 = <0x00200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000000 /* EMC_RC */
+                                       0x00000004 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000000 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000060 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000018 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000005 /* EMC_TXSR */
+                                       0x00000005 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000000 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000064 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000007 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x800001c5 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-20400000 {
                                clock-frequency = <20400000>;
 
-                               nvidia,emem-configuration = <
-                                       0x40020001 /* MC_EMEM_ARB_CFG */
-                                       0x80000012 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x77430303 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100003>;
+                               nvidia,emc-mode-2 = <0x00200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000000 /* EMC_RC */
+                                       0x00000007 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000000 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x0000009a /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000026 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000008 /* EMC_TXSR */
+                                       0x00000008 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000000 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x000000a0 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x0000000b /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x8000023a /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-40800000 {
                                clock-frequency = <40800000>;
 
-                               nvidia,emem-configuration = <
-                                       0xa0000001 /* MC_EMEM_ARB_CFG */
-                                       0x80000017 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x75e30303 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100003>;
+                               nvidia,emc-mode-2 = <0x00200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000001 /* EMC_RC */
+                                       0x0000000e /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000001 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000134 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x0000004d /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x0000000c /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000000f /* EMC_TXSR */
+                                       0x0000000f /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000000 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000013f /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000015 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x80000370 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-68000000 {
                                clock-frequency = <68000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x00000001 /* MC_EMEM_ARB_CFG */
-                                       0x8000001e /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x75430403 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100003>;
+                               nvidia,emc-mode-2 = <0x00200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000003 /* EMC_RC */
+                                       0x00000017 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000002 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000202 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000080 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000015 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000019 /* EMC_TXSR */
+                                       0x00000019 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000001 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000213 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000022 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x8000050e /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-102000000 {
                                clock-frequency = <102000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x08000001 /* MC_EMEM_ARB_CFG */
-                                       0x80000026 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0503 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x74e30504 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100003>;
+                               nvidia,emc-mode-2 = <0x00200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000004 /* EMC_RC */
+                                       0x00000023 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000003 /* EMC_RAS */
+                                       0x00000001 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000001 /* EMC_RD_RCD */
+                                       0x00000001 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000304 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000000c1 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000021 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000025 /* EMC_TXSR */
+                                       0x00000025 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000003 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000031c /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00008000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000033 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-204000000 {
                                clock-frequency = <204000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x01000003 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06040203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0504 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x74a40a05 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x0000088d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100003>;
+                               nvidia,emc-mode-2 = <0x00200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000e000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000009 /* EMC_RC */
+                                       0x00000047 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000006 /* EMC_RAS */
+                                       0x00000002 /* EMC_RP */
+                                       0x00000005 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000002 /* EMC_RD_RCD */
+                                       0x00000002 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000004 /* EMC_EINPUT */
+                                       0x00000006 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000003 /* EMC_QRST */
+                                       0x0000000d /* EMC_QSAFE */
+                                       0x0000000f /* EMC_RDV */
+                                       0x00000011 /* EMC_RDV_MASK */
+                                       0x00000607 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000044 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000004a /* EMC_TXSR */
+                                       0x0000004a /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000007 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000638 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00090000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00090000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00094000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00094000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00009400 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00009000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00009000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00009000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000066 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000e000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000d2b3 /* EMC_CFG_PIPE */
+                                       0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-300000000 {
                                clock-frequency = <300000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x08000004 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000b0607 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x77450e08 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73340000>;
+                               nvidia,emc-cfg-2 = <0x000008d5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100002>;
+                               nvidia,emc-mode-2 = <0x00200000>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00000321>;
+                               nvidia,emc-mrs-wait-cnt = <0x0117000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x0000000d /* EMC_RC */
+                                       0x00000067 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000009 /* EMC_RAS */
+                                       0x00000003 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x00000008 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x00000009 /* EMC_W2P */
+                                       0x00000003 /* EMC_RD_RCD */
+                                       0x00000003 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000003 /* EMC_WDV */
+                                       0x00000003 /* EMC_WDV_MASK */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000002 /* EMC_EINPUT */
+                                       0x00000007 /* EMC_EINPUT_DURATION */
+                                       0x00020000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000001 /* EMC_QRST */
+                                       0x0000000e /* EMC_QSAFE */
+                                       0x00000010 /* EMC_RDV */
+                                       0x00000012 /* EMC_RDV_MASK */
+                                       0x000008e4 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000239 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000001 /* EMC_PDEX2WR */
+                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000065 /* EMC_AR2PDEN */
+                                       0x0000000e /* EMC_RW2PDEN */
+                                       0x0000006c /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000009 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000924 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000096 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x0117000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000052a3 /* EMC_CFG_PIPE */
+                                       0x800012d7 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x00000009 /* EMC_QPOP */
                                >;
                        };
 
                        timing-396000000 {
                                clock-frequency = <396000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0f000005 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000009 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x7586120a /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73340000>;
+                               nvidia,emc-cfg-2 = <0x00000895>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100002>;
+                               nvidia,emc-mode-2 = <0x00200000>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00000521>;
+                               nvidia,emc-mrs-wait-cnt = <0x00f5000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000011 /* EMC_RC */
+                                       0x00000089 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x0000000c /* EMC_RAS */
+                                       0x00000004 /* EMC_RP */
+                                       0x00000005 /* EMC_R2W */
+                                       0x00000008 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x0000000a /* EMC_W2P */
+                                       0x00000004 /* EMC_RD_RCD */
+                                       0x00000004 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000003 /* EMC_WDV */
+                                       0x00000003 /* EMC_WDV_MASK */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000001 /* EMC_EINPUT */
+                                       0x00000008 /* EMC_EINPUT_DURATION */
+                                       0x00020000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000000 /* EMC_QRST */
+                                       0x0000000f /* EMC_QSAFE */
+                                       0x00000010 /* EMC_RDV */
+                                       0x00000012 /* EMC_RDV_MASK */
+                                       0x00000bd1 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000002f4 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000001 /* EMC_PDEX2WR */
+                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000087 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000008f /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x0000000d /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000c11 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x000000c6 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x00f5000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000052a3 /* EMC_CFG_PIPE */
+                                       0x8000188b /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x00000009 /* EMC_QPOP */
                                >;
                        };
 
                        timing-528000000 {
                                clock-frequency = <528000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0f000007 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x0000000c /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x0000000a /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000009 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06050202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x0010090c /* MC_EMEM_ARB_DA_COVERS */
-                                       0x7488180d /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100002>;
+                               nvidia,emc-mode-2 = <0x00200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00000941>;
+                               nvidia,emc-mrs-wait-cnt = <0x00c8000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0123133d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000018 /* EMC_RC */
+                                       0x000000b7 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000010 /* EMC_RAS */
+                                       0x00000006 /* EMC_RP */
+                                       0x00000006 /* EMC_R2W */
+                                       0x00000009 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x0000000d /* EMC_W2P */
+                                       0x00000006 /* EMC_RD_RCD */
+                                       0x00000006 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000003 /* EMC_WDV */
+                                       0x00000003 /* EMC_WDV_MASK */
+                                       0x00000007 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000002 /* EMC_EINPUT */
+                                       0x00000009 /* EMC_EINPUT_DURATION */
+                                       0x00040000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000001 /* EMC_QRST */
+                                       0x00000010 /* EMC_QSAFE */
+                                       0x00000013 /* EMC_RDV */
+                                       0x00000015 /* EMC_RDV_MASK */
+                                       0x00000fd6 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000003f5 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x0000000b /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x000000b4 /* EMC_AR2PDEN */
+                                       0x00000012 /* EMC_RW2PDEN */
+                                       0x000000bf /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000013 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000006 /* EMC_TCLKSTABLE */
+                                       0x00000006 /* EMC_TCLKSTOP */
+                                       0x00001017 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0xe01200b1 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000001 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000001 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
+                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x00c8000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000042a0 /* EMC_CFG_PIPE */
+                                       0x80002062 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000b /* EMC_QPOP */
                                >;
                        };
 
                        timing-600000000 {
                                clock-frequency = <600000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x00000009 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x0000000e /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000009 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x0000000b /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x0000000b /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x07050202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x00130b0e /* MC_EMEM_ARB_DA_COVERS */
-                                       0x74691b0f /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100002>;
+                               nvidia,emc-mode-2 = <0x00200010>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00000b61>;
+                               nvidia,emc-mrs-wait-cnt = <0x00b0000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0121113d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x0000001b /* EMC_RC */
+                                       0x000000d0 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000013 /* EMC_RAS */
+                                       0x00000007 /* EMC_RP */
+                                       0x00000007 /* EMC_R2W */
+                                       0x0000000b /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x00000010 /* EMC_W2P */
+                                       0x00000007 /* EMC_RD_RCD */
+                                       0x00000007 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_WDV_MASK */
+                                       0x0000000a /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000003 /* EMC_EINPUT */
+                                       0x0000000b /* EMC_EINPUT_DURATION */
+                                       0x00070000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000002 /* EMC_QRST */
+                                       0x00000012 /* EMC_QSAFE */
+                                       0x00000016 /* EMC_RDV */
+                                       0x00000018 /* EMC_RDV_MASK */
+                                       0x00001208 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000482 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x0000000d /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x000000cc /* EMC_AR2PDEN */
+                                       0x00000015 /* EMC_RW2PDEN */
+                                       0x000000d8 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000015 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000006 /* EMC_TCLKSTABLE */
+                                       0x00000006 /* EMC_TCLKSTOP */
+                                       0x00001249 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0xe00e00b1 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
+                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x00b0000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000040a0 /* EMC_CFG_PIPE */
+                                       0x800024aa /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000e /* EMC_QPOP */
                                >;
                        };
 
                        timing-792000000 {
                                clock-frequency = <792000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0e00000b /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000013 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x08060202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x00170e13 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x746c2414 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f02 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0080089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x00100002>;
+                               nvidia,emc-mode-2 = <0x00200418>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x00000d71>;
+                               nvidia,emc-mrs-wait-cnt = <0x006f000e>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000024 /* EMC_RC */
+                                       0x00000114 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000019 /* EMC_RAS */
+                                       0x0000000a /* EMC_RP */
+                                       0x00000008 /* EMC_R2W */
+                                       0x0000000d /* EMC_W2R */
+                                       0x00000004 /* EMC_R2P */
+                                       0x00000013 /* EMC_W2P */
+                                       0x0000000a /* EMC_RD_RCD */
+                                       0x0000000a /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x0000000b /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000002 /* EMC_EINPUT */
+                                       0x0000000d /* EMC_EINPUT_DURATION */
+                                       0x00080000 /* EMC_PUTERM_EXTRA */
+                                       0x00000004 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000001 /* EMC_QRST */
+                                       0x00000014 /* EMC_QSAFE */
+                                       0x00000018 /* EMC_RDV */
+                                       0x0000001a /* EMC_RDV_MASK */
+                                       0x000017e2 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000005f8 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000003 /* EMC_PDEX2WR */
+                                       0x00000011 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x0000010d /* EMC_AR2PDEN */
+                                       0x00000018 /* EMC_RW2PDEN */
+                                       0x0000011e /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000005 /* EMC_TCKE */
+                                       0x00000006 /* EMC_TCKESR */
+                                       0x00000005 /* EMC_TPD */
+                                       0x0000001d /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000008 /* EMC_TCLKSTABLE */
+                                       0x00000008 /* EMC_TCLKSTOP */
+                                       0x00001822 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x80000005 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab198 /* EMC_FBIO_CFG5 */
+                                       0xe00700b1 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x007fc007 /* EMC_DLL_XFORM_DQS0 */
+                                       0x007fc008 /* EMC_DLL_XFORM_DQS1 */
+                                       0x007f400c /* EMC_DLL_XFORM_DQS2 */
+                                       0x007fc007 /* EMC_DLL_XFORM_DQS3 */
+                                       0x007f4006 /* EMC_DLL_XFORM_DQS4 */
+                                       0x007f8004 /* EMC_DLL_XFORM_DQS5 */
+                                       0x007f8005 /* EMC_DLL_XFORM_DQS6 */
+                                       0x007f8004 /* EMC_DLL_XFORM_DQS7 */
+                                       0x007fc007 /* EMC_DLL_XFORM_DQS8 */
+                                       0x007fc008 /* EMC_DLL_XFORM_DQS9 */
+                                       0x007f400c /* EMC_DLL_XFORM_DQS10 */
+                                       0x007fc007 /* EMC_DLL_XFORM_DQS11 */
+                                       0x007f4006 /* EMC_DLL_XFORM_DQS12 */
+                                       0x007f8004 /* EMC_DLL_XFORM_DQS13 */
+                                       0x007f8005 /* EMC_DLL_XFORM_DQS14 */
+                                       0x007f8004 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00034000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00034000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00034000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00034000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000007 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000007 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
+                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x61861820 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00492492 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00492492 /* EMC_XM2DQSPADCTRL5 */
+                                       0x61861800 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x006f000e /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000007 /* EMC_CTT */
+                                       0x00000004 /* EMC_CTT_DURATION */
+                                       0x00004080 /* EMC_CFG_PIPE */
+                                       0x80003012 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000f /* EMC_QPOP */
                                >;
                        };
                };
                        timing-12750000 {
                                clock-frequency = <12750000>;
 
-                               nvidia,emem-configuration = <
-                                       0x40040001 /* MC_EMEM_ARB_CFG */
-                                       0x8000000a /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x77e30303 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000000 /* EMC_RC */
+                                       0x00000003 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000000 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000060 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000018 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000005 /* EMC_TXSR */
+                                       0x00000005 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000000 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000064 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000007 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x800001c5 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-20400000 {
                                clock-frequency = <20400000>;
 
-                               nvidia,emem-configuration = <
-                                       0x40020001 /* MC_EMEM_ARB_CFG */
-                                       0x80000012 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x76230303 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000000 /* EMC_RC */
+                                       0x00000005 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000000 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x0000009a /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000026 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000006 /* EMC_TXSR */
+                                       0x00000006 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000000 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x000000a0 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x0000000b /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x8000023a /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-40800000 {
                                clock-frequency = <40800000>;
 
-                               nvidia,emem-configuration = <
-                                       0xa0000001 /* MC_EMEM_ARB_CFG */
-                                       0x80000017 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x74a30303 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000001 /* EMC_RC */
+                                       0x0000000a /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000001 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000134 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x0000004d /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000008 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000000c /* EMC_TXSR */
+                                       0x0000000c /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000000 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000013f /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000015 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x80000370 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-68000000 {
                                clock-frequency = <68000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x00000001 /* MC_EMEM_ARB_CFG */
-                                       0x8000001e /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0402 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x74230403 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000003 /* EMC_RC */
+                                       0x00000011 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000002 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000202 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000080 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x0000000f /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000013 /* EMC_TXSR */
+                                       0x00000013 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000001 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000213 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000022 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x8000050e /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-102000000 {
                                clock-frequency = <102000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x08000001 /* MC_EMEM_ARB_CFG */
-                                       0x80000026 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06030203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0403 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x73c30504 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000004 /* EMC_RC */
+                                       0x0000001a /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000003 /* EMC_RAS */
+                                       0x00000001 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000001 /* EMC_RD_RCD */
+                                       0x00000001 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000005 /* EMC_EINPUT */
+                                       0x00000005 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000c /* EMC_QSAFE */
+                                       0x0000000d /* EMC_RDV */
+                                       0x0000000f /* EMC_RDV_MASK */
+                                       0x00000304 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000000c1 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000018 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000001c /* EMC_TXSR */
+                                       0x0000001c /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000003 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000031c /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000fc00 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000033 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000042 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000f2f3 /* EMC_CFG_PIPE */
+                                       0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-204000000 {
                                clock-frequency = <204000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x01000003 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06040203 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000a0405 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x73840a06 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x0000088d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000009 /* EMC_RC */
+                                       0x00000035 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000007 /* EMC_RAS */
+                                       0x00000002 /* EMC_RP */
+                                       0x00000005 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000002 /* EMC_RD_RCD */
+                                       0x00000002 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000003 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_WDV_MASK */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000004 /* EMC_EINPUT */
+                                       0x00000006 /* EMC_EINPUT_DURATION */
+                                       0x00010000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000003 /* EMC_QRST */
+                                       0x0000000d /* EMC_QSAFE */
+                                       0x0000000f /* EMC_RDV */
+                                       0x00000011 /* EMC_RDV_MASK */
+                                       0x00000607 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000032 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000038 /* EMC_TXSR */
+                                       0x00000038 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000007 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000638 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x106aa298 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00064000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00004000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00090000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00090000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00094000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00094000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00009400 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00009000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00009000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00009000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000303 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x0000003f /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000066 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x0000d2b3 /* EMC_CFG_PIPE */
+                                       0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000a /* EMC_QPOP */
                                >;
                        };
 
                        timing-300000000 {
                                clock-frequency = <300000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x08000004 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000b0607 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x77450e08 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73340000>;
+                               nvidia,emc-cfg-2 = <0x000008d5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000321>;
+                               nvidia,emc-mrs-wait-cnt = <0x0174000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x0000000d /* EMC_RC */
+                                       0x0000004c /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000009 /* EMC_RAS */
+                                       0x00000003 /* EMC_RP */
+                                       0x00000004 /* EMC_R2W */
+                                       0x00000008 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x00000009 /* EMC_W2P */
+                                       0x00000003 /* EMC_RD_RCD */
+                                       0x00000003 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000003 /* EMC_WDV */
+                                       0x00000003 /* EMC_WDV_MASK */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000002 /* EMC_EINPUT */
+                                       0x00000007 /* EMC_EINPUT_DURATION */
+                                       0x00020000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000001 /* EMC_QRST */
+                                       0x0000000e /* EMC_QSAFE */
+                                       0x00000010 /* EMC_RDV */
+                                       0x00000012 /* EMC_RDV_MASK */
+                                       0x000008e4 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000239 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000001 /* EMC_PDEX2WR */
+                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x0000004a /* EMC_AR2PDEN */
+                                       0x0000000e /* EMC_RW2PDEN */
+                                       0x00000051 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000009 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000924 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00098000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00060000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00006000 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000096 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x0174000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000052a3 /* EMC_CFG_PIPE */
+                                       0x800012d7 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x00000009 /* EMC_QPOP */
                                >;
                        };
 
                        timing-396000000 {
                                clock-frequency = <396000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0f000005 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000009 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06040202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x7586120a /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73340000>;
+                               nvidia,emc-cfg-2 = <0x00000895>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000521>;
+                               nvidia,emc-mrs-wait-cnt = <0x015b000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000012 /* EMC_RC */
+                                       0x00000065 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x0000000c /* EMC_RAS */
+                                       0x00000004 /* EMC_RP */
+                                       0x00000005 /* EMC_R2W */
+                                       0x00000008 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x0000000a /* EMC_W2P */
+                                       0x00000004 /* EMC_RD_RCD */
+                                       0x00000004 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000003 /* EMC_WDV */
+                                       0x00000003 /* EMC_WDV_MASK */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000001 /* EMC_EINPUT */
+                                       0x00000008 /* EMC_EINPUT_DURATION */
+                                       0x00020000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000000 /* EMC_QRST */
+                                       0x0000000f /* EMC_QSAFE */
+                                       0x00000010 /* EMC_RDV */
+                                       0x00000012 /* EMC_RDV_MASK */
+                                       0x00000bd1 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000002f4 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000001 /* EMC_PDEX2WR */
+                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000063 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000006b /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x0000000d /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000005 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000c11 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0x002c00a0 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00030000 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00070000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ4 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ5 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ6 */
+                                       0x00004800 /* EMC_DLL_XFORM_DQ7 */
+                                       0x10000280 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc081 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0000003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x000000c6 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x015b000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000052a3 /* EMC_CFG_PIPE */
+                                       0x8000188b /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x00000009 /* EMC_QPOP */
                                >;
                        };
 
                        timing-528000000 {
                                clock-frequency = <528000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0f000007 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x0000000d /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x0000000a /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x00000009 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x06050202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x0010090d /* MC_EMEM_ARB_DA_COVERS */
-                                       0x7428180e /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000941>;
+                               nvidia,emc-mrs-wait-cnt = <0x013a000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0123133d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000018 /* EMC_RC */
+                                       0x00000088 /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000011 /* EMC_RAS */
+                                       0x00000006 /* EMC_RP */
+                                       0x00000006 /* EMC_R2W */
+                                       0x00000009 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x0000000d /* EMC_W2P */
+                                       0x00000006 /* EMC_RD_RCD */
+                                       0x00000006 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000003 /* EMC_WDV */
+                                       0x00000003 /* EMC_WDV_MASK */
+                                       0x00000007 /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000002 /* EMC_EINPUT */
+                                       0x00000009 /* EMC_EINPUT_DURATION */
+                                       0x00040000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000001 /* EMC_QRST */
+                                       0x00000010 /* EMC_QSAFE */
+                                       0x00000013 /* EMC_RDV */
+                                       0x00000015 /* EMC_RDV_MASK */
+                                       0x00000fd6 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000003f5 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x0000000b /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000084 /* EMC_AR2PDEN */
+                                       0x00000012 /* EMC_RW2PDEN */
+                                       0x0000008f /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000013 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000006 /* EMC_TCLKSTABLE */
+                                       0x00000006 /* EMC_TCLKSTOP */
+                                       0x00001017 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0xe01200b1 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00050000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000001 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000001 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
+                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x013a000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000042a0 /* EMC_CFG_PIPE */
+                                       0x80002062 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000b /* EMC_QPOP */
                                >;
                        };
 
                        timing-600000000 {
                                clock-frequency = <600000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x00000009 /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x0000000e /* MC_EMEM_ARB_TIMING_RC */
-                                       0x00000009 /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x0000000b /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x0000000b /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000007 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x07050202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x00130b0e /* MC_EMEM_ARB_DA_COVERS */
-                                       0x73a91b0f /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f03 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0000089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200010>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000b61>;
+                               nvidia,emc-mrs-wait-cnt = <0x0128000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040008>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0121113d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x0000001c /* EMC_RC */
+                                       0x0000009a /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x00000013 /* EMC_RAS */
+                                       0x00000007 /* EMC_RP */
+                                       0x00000007 /* EMC_R2W */
+                                       0x0000000b /* EMC_W2R */
+                                       0x00000003 /* EMC_R2P */
+                                       0x00000010 /* EMC_W2P */
+                                       0x00000007 /* EMC_RD_RCD */
+                                       0x00000007 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_WDV_MASK */
+                                       0x0000000a /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000003 /* EMC_EINPUT */
+                                       0x0000000b /* EMC_EINPUT_DURATION */
+                                       0x00070000 /* EMC_PUTERM_EXTRA */
+                                       0x00000003 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000002 /* EMC_QRST */
+                                       0x00000012 /* EMC_QSAFE */
+                                       0x00000016 /* EMC_RDV */
+                                       0x00000018 /* EMC_RDV_MASK */
+                                       0x00001208 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000482 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x0000000d /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000096 /* EMC_AR2PDEN */
+                                       0x00000015 /* EMC_RW2PDEN */
+                                       0x000000a2 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TCKESR */
+                                       0x00000004 /* EMC_TPD */
+                                       0x00000015 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000006 /* EMC_TCLKSTABLE */
+                                       0x00000006 /* EMC_TCLKSTOP */
+                                       0x00001249 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab098 /* EMC_FBIO_CFG5 */
+                                       0xe00e00b1 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS8 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS9 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS10 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS11 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS12 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS13 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS14 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00048000 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000004 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000002 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000003 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000006 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
+                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x51451420 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL4 */
+                                       0x00514514 /* EMC_XM2DQSPADCTRL5 */
+                                       0x51451400 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x0128000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000003 /* EMC_CTT_DURATION */
+                                       0x000040a0 /* EMC_CFG_PIPE */
+                                       0x800024aa /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000e /* EMC_QPOP */
                                >;
                        };
 
                        timing-792000000 {
                                clock-frequency = <792000000>;
 
-                               nvidia,emem-configuration = <
-                                       0x0e00000b /* MC_EMEM_ARB_CFG */
-                                       0x80000040 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                                       0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
-                                       0x00000005 /* MC_EMEM_ARB_TIMING_RP */
-                                       0x00000013 /* MC_EMEM_ARB_TIMING_RC */
-                                       0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
-                                       0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
-                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                                       0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                                       0x00000006 /* MC_EMEM_ARB_TIMING_R2W */
-                                       0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
-                                       0x08060202 /* MC_EMEM_ARB_DA_TURNS */
-                                       0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
-                                       0x734c2414 /* MC_EMEM_ARB_MISC0 */
-                                       0x70000f02 /* MC_EMEM_ARB_MISC1 */
-                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000000>;
+                               nvidia,emc-cfg = <0x73300000>;
+                               nvidia,emc-cfg-2 = <0x0080089d>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200418>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80000d71>;
+                               nvidia,emc-mrs-wait-cnt = <0x00f8000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040000>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00020000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000025 /* EMC_RC */
+                                       0x000000cc /* EMC_RFC */
+                                       0x00000000 /* EMC_RFC_SLR */
+                                       0x0000001a /* EMC_RAS */
+                                       0x00000009 /* EMC_RP */
+                                       0x00000008 /* EMC_R2W */
+                                       0x0000000d /* EMC_W2R */
+                                       0x00000004 /* EMC_R2P */
+                                       0x00000013 /* EMC_W2P */
+                                       0x00000009 /* EMC_RD_RCD */
+                                       0x00000009 /* EMC_WR_RCD */
+                                       0x00000004 /* EMC_RRD */
+                                       0x00000002 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000006 /* EMC_WDV */
+                                       0x00000006 /* EMC_WDV_MASK */
+                                       0x0000000b /* EMC_QUSE */
+                                       0x00000002 /* EMC_QUSE_WIDTH */
+                                       0x00000000 /* EMC_IBDLY */
+                                       0x00000002 /* EMC_EINPUT */
+                                       0x0000000d /* EMC_EINPUT_DURATION */
+                                       0x00080000 /* EMC_PUTERM_EXTRA */
+                                       0x00000004 /* EMC_PUTERM_WIDTH */
+                                       0x00000000 /* EMC_PUTERM_ADJ */
+                                       0x00000000 /* EMC_CDB_CNTL_1 */
+                                       0x00000000 /* EMC_CDB_CNTL_2 */
+                                       0x00000000 /* EMC_CDB_CNTL_3 */
+                                       0x00000001 /* EMC_QRST */
+                                       0x00000014 /* EMC_QSAFE */
+                                       0x00000018 /* EMC_RDV */
+                                       0x0000001a /* EMC_RDV_MASK */
+                                       0x000017e2 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000005f8 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000003 /* EMC_PDEX2WR */
+                                       0x00000011 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x000000c6 /* EMC_AR2PDEN */
+                                       0x00000018 /* EMC_RW2PDEN */
+                                       0x000000d6 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000005 /* EMC_TCKE */
+                                       0x00000006 /* EMC_TCKESR */
+                                       0x00000005 /* EMC_TPD */
+                                       0x0000001d /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000008 /* EMC_TCLKSTABLE */
+                                       0x00000008 /* EMC_TCLKSTOP */
+                                       0x00001822 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_FBIO_CFG6 */
+                                       0x80000005 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x104ab198 /* EMC_FBIO_CFG5 */
+                                       0xe00700b1 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00000009 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00000009 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00000009 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00000007 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00000006 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00000006 /* EMC_DLL_XFORM_DQS5 */
+                                       0x007fc009 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00000006 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000009 /* EMC_DLL_XFORM_DQS8 */
+                                       0x00000009 /* EMC_DLL_XFORM_DQS9 */
+                                       0x00000009 /* EMC_DLL_XFORM_DQS10 */
+                                       0x00000007 /* EMC_DLL_XFORM_DQS11 */
+                                       0x00000006 /* EMC_DLL_XFORM_DQS12 */
+                                       0x00000007 /* EMC_DLL_XFORM_DQS13 */
+                                       0x00000009 /* EMC_DLL_XFORM_DQS14 */
+                                       0x00000007 /* EMC_DLL_XFORM_DQS15 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00034002 /* EMC_DLL_XFORM_ADDR0 */
+                                       0x00034002 /* EMC_DLL_XFORM_ADDR1 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR2 */
+                                       0x00034002 /* EMC_DLL_XFORM_ADDR3 */
+                                       0x00034002 /* EMC_DLL_XFORM_ADDR4 */
+                                       0x00000000 /* EMC_DLL_XFORM_ADDR5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE8 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE9 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE10 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE11 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE12 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE13 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE14 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE15 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000007 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS8 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS9 */
+                                       0x00000005 /* EMC_DLI_TRIM_TXDQS10 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS11 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS12 */
+                                       0x00000007 /* EMC_DLI_TRIM_TXDQS13 */
+                                       0x00000009 /* EMC_DLI_TRIM_TXDQS14 */
+                                       0x00000008 /* EMC_DLI_TRIM_TXDQS15 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ3 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ4 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ5 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ6 */
+                                       0x0000000e /* EMC_DLL_XFORM_DQ7 */
+                                       0x100002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x00000000 /* EMC_XM2CMDPADCTRL4 */
+                                       0x00111111 /* EMC_XM2CMDPADCTRL5 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL3 */
+                                       0x77ffc085 /* EMC_XM2CLKPADCTRL */
+                                       0x00000101 /* EMC_XM2CLKPADCTRL2 */
+                                       0x81f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x07070004 /* EMC_XM2VTTGENPADCTRL */
+                                       0x00000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x016eeeee /* EMC_XM2VTTGENPADCTRL3 */
+                                       0x61861820 /* EMC_XM2DQSPADCTRL3 */
+                                       0x004d34d3 /* EMC_XM2DQSPADCTRL4 */
+                                       0x004d34d3 /* EMC_XM2DQSPADCTRL5 */
+                                       0x61861800 /* EMC_XM2DQSPADCTRL6 */
+                                       0x0606003f /* EMC_DSR_VTTGEN_DRV */
+                                       0x00000000 /* EMC_TXDSRVTTGEN */
+                                       0x00000000 /* EMC_FBIO_SPARE */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x00f8000c /* EMC_MRS_WAIT_CNT2 */
+                                       0x00000007 /* EMC_CTT */
+                                       0x00000004 /* EMC_CTT_DURATION */
+                                       0x00004080 /* EMC_CFG_PIPE */
+                                       0x80003012 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0x0000000f /* EMC_QPOP */
                                >;
                        };
                };
 };
 
 &emc_icc_dvfs_opp_table {
-       /delete-node/ opp@924000000,1100;
-       /delete-node/ opp@1200000000,1100;
+       /delete-node/ opp-924000000-1100;
+       /delete-node/ opp-1200000000-1100;
 };
 
 &emc_bw_dfs_opp_table {
-       /delete-node/ opp@924000000;
-       /delete-node/ opp@1200000000;
+       /delete-node/ opp-924000000;
+       /delete-node/ opp-1200000000;
 };
diff --git a/arch/arm/boot/dts/tegra124-nyan-big-fhd.dts b/arch/arm/boot/dts/tegra124-nyan-big-fhd.dts
new file mode 100644 (file)
index 0000000..d35fb79
--- /dev/null
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "tegra124-nyan-big.dts"
+
+/ {
+       /* Version of Nyan Big with 1080p panel */
+       panel {
+               compatible = "auo,b133htn01";
+       };
+};
index 35c9873..2ce1b12 100644 (file)
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-20400000 {
                                clock-frequency = <20400000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-40800000 {
                                clock-frequency = <40800000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-68000000 {
                                clock-frequency = <68000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-102000000 {
                                clock-frequency = <102000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-204000000 {
                                clock-frequency = <204000000>;
                                nvidia,parent-clock-frequency = <408000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
                                clock-names = "emc-parent";
                        };
+
                        timing-300000000 {
                                clock-frequency = <300000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C>;
                                clock-names = "emc-parent";
                        };
+
                        timing-396000000 {
                                clock-frequency = <396000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_M>;
                                clock-names = "emc-parent";
                        };
+
                        /* TODO: Add 528MHz frequency */
+
                        timing-600000000 {
                                clock-frequency = <600000000>;
                                nvidia,parent-clock-frequency = <600000000>;
                                clocks = <&tegra_car TEGRA124_CLK_PLL_C_UD>;
                                clock-names = "emc-parent";
                        };
+
                        timing-792000000 {
                                clock-frequency = <792000000>;
                                nvidia,parent-clock-frequency = <792000000>;
                };
        };
 
-       external-memory-controller@7001b000 {
+       memory-controller@70019000 {
                emc-timings-1 {
                        nvidia,ram-code = <1>;
 
                        timing-12750000 {
                                clock-frequency = <12750000>;
 
-                               nvidia,emc-auto-cal-config = <0xa1430000>;
-                               nvidia,emc-auto-cal-config2 = <0x00000000>;
-                               nvidia,emc-auto-cal-config3 = <0x00000000>;
-                               nvidia,emc-auto-cal-interval = <0x001fffff>;
-                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
-                               nvidia,emc-cfg = <0x73240000>;
-                               nvidia,emc-cfg-2 = <0x000008c5>;
-                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
-                               nvidia,emc-mode-1 = <0x80100003>;
-                               nvidia,emc-mode-2 = <0x80200008>;
-                               nvidia,emc-mode-4 = <0x00000000>;
-                               nvidia,emc-mode-reset = <0x80001221>;
-                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
-                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
-                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
-                               nvidia,emc-zcal-cnt-long = <0x00000042>;
-                               nvidia,emc-zcal-interval = <0x00000000>;
-
-                               nvidia,emc-configuration = <
+                               nvidia,emem-configuration = <
+                                       0x40040001
+                                       0x8000000a
+                                       0x00000001
+                                       0x00000001
+                                       0x00000002
                                        0x00000000
+                                       0x00000002
+                                       0x00000001
+                                       0x00000002
+                                       0x00000008
                                        0x00000003
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000004
-                                       0x0000000a
+                                       0x00000002
                                        0x00000003
-                                       0x0000000b
-                                       0x00000000
+                                       0x00000006
+                                       0x06030203
+                                       0x000a0402
+                                       0x77e30303
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-20400000 {
+                               clock-frequency = <20400000>;
+
+                               nvidia,emem-configuration = <
+                                       0x40020001
+                                       0x80000012
+                                       0x00000001
+                                       0x00000001
+                                       0x00000002
                                        0x00000000
+                                       0x00000002
+                                       0x00000001
+                                       0x00000002
+                                       0x00000008
                                        0x00000003
+                                       0x00000002
                                        0x00000003
-                                       0x00000000
-                                       0x00000006
-                                       0x00000006
                                        0x00000006
+                                       0x06030203
+                                       0x000a0402
+                                       0x76230303
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-40800000 {
+                               clock-frequency = <40800000>;
+
+                               nvidia,emem-configuration = <
+                                       0xa0000001
+                                       0x80000017
+                                       0x00000001
+                                       0x00000001
                                        0x00000002
                                        0x00000000
-                                       0x00000005
-                                       0x00000005
-                                       0x00010000
+                                       0x00000002
+                                       0x00000001
+                                       0x00000002
+                                       0x00000008
                                        0x00000003
+                                       0x00000002
+                                       0x00000003
+                                       0x00000006
+                                       0x06030203
+                                       0x000a0402
+                                       0x74a30303
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-68000000 {
+                               clock-frequency = <68000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000001
+                                       0x8000001e
+                                       0x00000001
+                                       0x00000001
+                                       0x00000002
                                        0x00000000
+                                       0x00000002
+                                       0x00000001
+                                       0x00000002
+                                       0x00000008
+                                       0x00000003
+                                       0x00000002
+                                       0x00000003
+                                       0x00000006
+                                       0x06030203
+                                       0x000a0402
+                                       0x74230403
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000001
+                                       0x80000026
+                                       0x00000001
+                                       0x00000001
+                                       0x00000003
                                        0x00000000
-                                       0x00000000
-                                       0x00000000
+                                       0x00000002
+                                       0x00000001
+                                       0x00000002
+                                       0x00000008
+                                       0x00000003
+                                       0x00000002
+                                       0x00000003
+                                       0x00000006
+                                       0x06030203
+                                       0x000a0403
+                                       0x73c30504
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x01000003
+                                       0x80000040
+                                       0x00000001
+                                       0x00000001
+                                       0x00000005
+                                       0x00000002
                                        0x00000004
-                                       0x0000000c
-                                       0x0000000d
-                                       0x0000000f
-                                       0x00000060
-                                       0x00000000
-                                       0x00000018
+                                       0x00000001
                                        0x00000002
+                                       0x00000008
+                                       0x00000003
                                        0x00000002
+                                       0x00000004
+                                       0x00000006
+                                       0x06040203
+                                       0x000a0405
+                                       0x73840a06
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-300000000 {
+                               clock-frequency = <300000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x08000004
+                                       0x80000040
                                        0x00000001
-                                       0x00000000
+                                       0x00000002
                                        0x00000007
-                                       0x0000000f
-                                       0x00000005
-                                       0x00000005
                                        0x00000004
                                        0x00000005
+                                       0x00000001
+                                       0x00000002
+                                       0x00000007
+                                       0x00000002
+                                       0x00000002
                                        0x00000004
-                                       0x00000000
-                                       0x00000000
-                                       0x00000005
+                                       0x00000006
+                                       0x06040202
+                                       0x000b0607
+                                       0x77450e08
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-396000000 {
+                               clock-frequency = <396000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000005
+                                       0x80000040
+                                       0x00000001
+                                       0x00000002
+                                       0x00000009
                                        0x00000005
-                                       0x00000064
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x106aa298
-                                       0x002c00a0
-                                       0x00008000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00064000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
-                                       0x00000000
+                                       0x00000007
+                                       0x00000001
+                                       0x00000002
+                                       0x00000008
+                                       0x00000002
+                                       0x00000002
+                                       0x00000004
+                                       0x00000006
+                                       0x06040202
+                                       0x000d0709
+                                       0x7586120a
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-528000000 {
+                               clock-frequency = <528000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0f000007
+                                       0x80000040
+                                       0x00000002
+                                       0x00000003
+                                       0x0000000d
+                                       0x00000008
+                                       0x0000000a
+                                       0x00000001
+                                       0x00000002
+                                       0x00000009
+                                       0x00000002
+                                       0x00000002
+                                       0x00000005
+                                       0x00000006
+                                       0x06050202
+                                       0x0010090d
+                                       0x7428180e
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-600000000 {
+                               clock-frequency = <600000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x00000009
+                                       0x80000040
+                                       0x00000003
+                                       0x00000004
+                                       0x0000000e
+                                       0x00000009
+                                       0x0000000b
+                                       0x00000001
+                                       0x00000003
+                                       0x0000000b
+                                       0x00000002
+                                       0x00000002
+                                       0x00000005
+                                       0x00000007
+                                       0x07050202
+                                       0x00130b0e
+                                       0x73a91b0f
+                                       0x70000f03
+                                       0x001f0000
+                               >;
+                       };
+
+                       timing-792000000 {
+                               clock-frequency = <792000000>;
+
+                               nvidia,emem-configuration = <
+                                       0x0e00000b
+                                       0x80000040
+                                       0x00000004
+                                       0x00000005
+                                       0x00000013
+                                       0x0000000c
+                                       0x0000000f
+                                       0x00000002
+                                       0x00000003
+                                       0x0000000c
+                                       0x00000002
+                                       0x00000002
+                                       0x00000006
+                                       0x00000008
+                                       0x08060202
+                                       0x00160d13
+                                       0x734c2414
+                                       0x70000f02
+                                       0x001f0000
+                               >;
+                       };
+               };
+       };
+
+       external-memory-controller@7001b000 {
+               emc-timings-1 {
+                       nvidia,ram-code = <1>;
+
+                       timing-12750000 {
+                               clock-frequency = <12750000>;
+
+                               nvidia,emc-auto-cal-config = <0xa1430000>;
+                               nvidia,emc-auto-cal-config2 = <0x00000000>;
+                               nvidia,emc-auto-cal-config3 = <0x00000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-bgbias-ctl0 = <0x00000008>;
+                               nvidia,emc-cfg = <0x73240000>;
+                               nvidia,emc-cfg-2 = <0x000008c5>;
+                               nvidia,emc-ctt-term-ctrl = <0x00000802>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-4 = <0x00000000>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-mrs-wait-cnt = <0x000c000c>;
+                               nvidia,emc-sel-dpd-ctrl = <0x00040128>;
+                               nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
+                               nvidia,emc-zcal-cnt-long = <0x00000042>;
+                               nvidia,emc-zcal-interval = <0x00000000>;
+
+                               nvidia,emc-configuration = <
+                                       0x00000000
+                                       0x00000003
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000004
+                                       0x0000000a
+                                       0x00000003
+                                       0x0000000b
+                                       0x00000000
+                                       0x00000000
+                                       0x00000003
+                                       0x00000003
+                                       0x00000000
+                                       0x00000006
+                                       0x00000006
+                                       0x00000006
+                                       0x00000002
+                                       0x00000000
+                                       0x00000005
+                                       0x00000005
+                                       0x00010000
+                                       0x00000003
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000004
+                                       0x0000000c
+                                       0x0000000d
+                                       0x0000000f
+                                       0x00000060
+                                       0x00000000
+                                       0x00000018
+                                       0x00000002
+                                       0x00000002
+                                       0x00000001
+                                       0x00000000
+                                       0x00000007
+                                       0x0000000f
+                                       0x00000005
+                                       0x00000005
+                                       0x00000004
+                                       0x00000005
+                                       0x00000004
+                                       0x00000000
+                                       0x00000000
+                                       0x00000005
+                                       0x00000005
+                                       0x00000064
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x106aa298
+                                       0x002c00a0
+                                       0x00008000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00064000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
+                                       0x00000000
                                        0x00000000
                                        0x00000000
                                        0x00000000
                                        0x0000000f
                                >;
                        };
-
-               };
-       };
-
-       memory-controller@70019000 {
-               emc-timings-1 {
-                       nvidia,ram-code = <1>;
-
-
-                       timing-12750000 {
-                               clock-frequency = <12750000>;
-
-                               nvidia,emem-configuration = <
-                                       0x40040001
-                                       0x8000000a
-                                       0x00000001
-                                       0x00000001
-                                       0x00000002
-                                       0x00000000
-                                       0x00000002
-                                       0x00000001
-                                       0x00000002
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000003
-                                       0x00000006
-                                       0x06030203
-                                       0x000a0402
-                                       0x77e30303
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-20400000 {
-                               clock-frequency = <20400000>;
-
-                               nvidia,emem-configuration = <
-                                       0x40020001
-                                       0x80000012
-                                       0x00000001
-                                       0x00000001
-                                       0x00000002
-                                       0x00000000
-                                       0x00000002
-                                       0x00000001
-                                       0x00000002
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000003
-                                       0x00000006
-                                       0x06030203
-                                       0x000a0402
-                                       0x76230303
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-40800000 {
-                               clock-frequency = <40800000>;
-
-                               nvidia,emem-configuration = <
-                                       0xa0000001
-                                       0x80000017
-                                       0x00000001
-                                       0x00000001
-                                       0x00000002
-                                       0x00000000
-                                       0x00000002
-                                       0x00000001
-                                       0x00000002
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000003
-                                       0x00000006
-                                       0x06030203
-                                       0x000a0402
-                                       0x74a30303
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-68000000 {
-                               clock-frequency = <68000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x00000001
-                                       0x8000001e
-                                       0x00000001
-                                       0x00000001
-                                       0x00000002
-                                       0x00000000
-                                       0x00000002
-                                       0x00000001
-                                       0x00000002
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000003
-                                       0x00000006
-                                       0x06030203
-                                       0x000a0402
-                                       0x74230403
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-102000000 {
-                               clock-frequency = <102000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x08000001
-                                       0x80000026
-                                       0x00000001
-                                       0x00000001
-                                       0x00000003
-                                       0x00000000
-                                       0x00000002
-                                       0x00000001
-                                       0x00000002
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000003
-                                       0x00000006
-                                       0x06030203
-                                       0x000a0403
-                                       0x73c30504
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-204000000 {
-                               clock-frequency = <204000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x01000003
-                                       0x80000040
-                                       0x00000001
-                                       0x00000001
-                                       0x00000005
-                                       0x00000002
-                                       0x00000004
-                                       0x00000001
-                                       0x00000002
-                                       0x00000008
-                                       0x00000003
-                                       0x00000002
-                                       0x00000004
-                                       0x00000006
-                                       0x06040203
-                                       0x000a0405
-                                       0x73840a06
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-300000000 {
-                               clock-frequency = <300000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x08000004
-                                       0x80000040
-                                       0x00000001
-                                       0x00000002
-                                       0x00000007
-                                       0x00000004
-                                       0x00000005
-                                       0x00000001
-                                       0x00000002
-                                       0x00000007
-                                       0x00000002
-                                       0x00000002
-                                       0x00000004
-                                       0x00000006
-                                       0x06040202
-                                       0x000b0607
-                                       0x77450e08
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-396000000 {
-                               clock-frequency = <396000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0f000005
-                                       0x80000040
-                                       0x00000001
-                                       0x00000002
-                                       0x00000009
-                                       0x00000005
-                                       0x00000007
-                                       0x00000001
-                                       0x00000002
-                                       0x00000008
-                                       0x00000002
-                                       0x00000002
-                                       0x00000004
-                                       0x00000006
-                                       0x06040202
-                                       0x000d0709
-                                       0x7586120a
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-528000000 {
-                               clock-frequency = <528000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0f000007
-                                       0x80000040
-                                       0x00000002
-                                       0x00000003
-                                       0x0000000d
-                                       0x00000008
-                                       0x0000000a
-                                       0x00000001
-                                       0x00000002
-                                       0x00000009
-                                       0x00000002
-                                       0x00000002
-                                       0x00000005
-                                       0x00000006
-                                       0x06050202
-                                       0x0010090d
-                                       0x7428180e
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-600000000 {
-                               clock-frequency = <600000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x00000009
-                                       0x80000040
-                                       0x00000003
-                                       0x00000004
-                                       0x0000000e
-                                       0x00000009
-                                       0x0000000b
-                                       0x00000001
-                                       0x00000003
-                                       0x0000000b
-                                       0x00000002
-                                       0x00000002
-                                       0x00000005
-                                       0x00000007
-                                       0x07050202
-                                       0x00130b0e
-                                       0x73a91b0f
-                                       0x70000f03
-                                       0x001f0000
-                               >;
-                       };
-
-                       timing-792000000 {
-                               clock-frequency = <792000000>;
-
-                               nvidia,emem-configuration = <
-                                       0x0e00000b
-                                       0x80000040
-                                       0x00000004
-                                       0x00000005
-                                       0x00000013
-                                       0x0000000c
-                                       0x0000000f
-                                       0x00000002
-                                       0x00000003
-                                       0x0000000c
-                                       0x00000002
-                                       0x00000002
-                                       0x00000006
-                                       0x00000008
-                                       0x08060202
-                                       0x00160d13
-                                       0x734c2414
-                                       0x70000f02
-                                       0x001f0000
-                               >;
-                       };
                };
        };
 };
 
 &emc_icc_dvfs_opp_table {
-       /delete-node/ opp@924000000,1100;
-       /delete-node/ opp@1200000000,1100;
+       /delete-node/ opp-924000000-1100;
+       /delete-node/ opp-1200000000-1100;
 };
 
 &emc_bw_dfs_opp_table {
-       /delete-node/ opp@924000000;
-       /delete-node/ opp@1200000000;
+       /delete-node/ opp-924000000;
+       /delete-node/ opp-1200000000;
 };
index 63a8127..a93cfb4 100644 (file)
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/thermal/thermal.h>
 #include "tegra124.dtsi"
 
 / {
@@ -61,7 +62,7 @@
                };
        };
 
-       gpu@0,57000000 {
+       gpu@57000000 {
                status = "okay";
 
                vdd-supply = <&vdd_gpu>;
@@ -87,7 +88,7 @@
                        interrupts = <TEGRA_GPIO(H, 4) IRQ_TYPE_EDGE_FALLING>;
                };
 
-               temperature-sensor@4c {
+               tmp451: temperature-sensor@4c {
                        compatible = "ti,tmp451";
                        reg = <0x4c>;
                        interrupt-parent = <&gpio>;
                nvidia,sys-clock-req-active-high;
        };
 
+       cec@70015000 {
+               status = "okay";
+       };
+
        hda@70030000 {
                status = "okay";
        };
                                vbus-supply = <&vdd_usb1_vbus>;
                                status = "okay";
                                mode = "otg";
+                               usb-role-switch;
                        };
 
                        usb2-1 {
 
        /* CPU DFLL clock */
        clock@70110000 {
-               status = "disabled";
+               status = "okay";
                vdd-cpu-supply = <&vdd_cpu>;
                nvidia,i2c-fs-rate = <400000>;
        };
                         256>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                };
        };
 
-       vdd_mux: regulator@0 {
+       vdd_mux: regulator-mux {
                compatible = "regulator-fixed";
                regulator-name = "+VDD_MUX";
                regulator-min-microvolt = <12000000>;
                regulator-boot-on;
        };
 
-       vdd_5v0_sys: regulator@1 {
+       vdd_5v0_sys: regulator-5v0sys {
                compatible = "regulator-fixed";
                regulator-name = "+5V_SYS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_3v3_sys: regulator@2 {
+       vdd_3v3_sys: regulator-3v3sys {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_SYS";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_3v3_run: regulator@3 {
+       vdd_3v3_run: regulator-3v3run {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_RUN";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_3v3_hdmi: regulator@4 {
+       vdd_3v3_hdmi: regulator-3v3hdmi {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_AVDD_HDMI_AP_GATED";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_run>;
        };
 
-       vdd_led: regulator@5 {
+       vdd_led: regulator-led {
                compatible = "regulator-fixed";
                regulator-name = "+VDD_LED";
                gpio = <&gpio TEGRA_GPIO(P, 2) GPIO_ACTIVE_HIGH>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_5v0_ts: regulator@6 {
+       vdd_5v0_ts: regulator-ts {
                compatible = "regulator-fixed";
                regulator-name = "+5V_VDD_TS_SW";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_usb1_vbus: regulator@7 {
+       vdd_usb1_vbus: regulator-usb1 {
                compatible = "regulator-fixed";
                regulator-name = "+5V_USB_HS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_usb3_vbus: regulator@8 {
+       vdd_usb3_vbus: regulator-usb3 {
                compatible = "regulator-fixed";
                regulator-name = "+5V_USB_SS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_3v3_panel: regulator@9 {
+       vdd_3v3_panel: regulator-panel {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_PANEL";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_run>;
        };
 
-       vdd_3v3_lp0: regulator@10 {
+       vdd_3v3_lp0: regulator-lp0 {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_LP0";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_hdmi_pll: regulator@11 {
+       vdd_hdmi_pll: regulator-hdmipll {
                compatible = "regulator-fixed";
                regulator-name = "+1.05V_RUN_AVDD_HDMI_PLL";
                regulator-min-microvolt = <1050000>;
                vin-supply = <&vdd_1v05_run>;
        };
 
-       vdd_5v0_hdmi: regulator@12 {
+       vdd_5v0_hdmi: regulator-hdmicon {
                compatible = "regulator-fixed";
                regulator-name = "+5V_HDMI_CON";
                regulator-min-microvolt = <5000000>;
                gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
                priority = <200>;
        };
+
+       cpus {
+               cpu0: cpu@0 {
+                       #cooling-cells = <2>;
+               };
+
+               cpu1: cpu@1 {
+                       #cooling-cells = <2>;
+               };
+
+               cpu2: cpu@2 {
+                       #cooling-cells = <2>;
+               };
+
+               cpu3: cpu@3 {
+                       #cooling-cells = <2>;
+               };
+       };
+
+       thermal-zones {
+               cpu-skin-thermal {
+                       polling-delay-passive = <1000>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&tmp451 0>;
+
+                       trips {
+                               cpu_passive_trip: cpu-alert0 {
+                                       /* throttle at 70C until temperature drops to 69.8C */
+                                       temperature = <70000>;
+                                       hysteresis = <200>;
+                                       type = "passive";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_passive_trip>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
 };
 
 #include "cros-ec-keyboard.dtsi"
index 781ac86..b262c12 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
 / {
-       emc_icc_dvfs_opp_table: emc-dvfs-opp-table {
+       emc_icc_dvfs_opp_table: opp-table-emc {
                compatible = "operating-points-v2";
 
-               opp@12750000,800 {
+               opp-12750000-800 {
                        opp-microvolt = <800000 800000 1150000>;
                        opp-hz = /bits/ 64 <12750000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@12750000,950 {
+               opp-12750000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <12750000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@12750000,1050 {
+               opp-12750000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <12750000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@12750000,1110 {
+               opp-12750000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <12750000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@20400000,800 {
+               opp-20400000-800 {
                        opp-microvolt = <800000 800000 1150000>;
                        opp-hz = /bits/ 64 <20400000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@20400000,950 {
+               opp-20400000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <20400000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@20400000,1050 {
+               opp-20400000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <20400000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@20400000,1110 {
+               opp-20400000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <20400000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@40800000,800 {
+               opp-40800000-800 {
                        opp-microvolt = <800000 800000 1150000>;
                        opp-hz = /bits/ 64 <40800000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@40800000,950 {
+               opp-40800000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <40800000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@40800000,1050 {
+               opp-40800000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <40800000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@40800000,1110 {
+               opp-40800000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <40800000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@68000000,800 {
+               opp-68000000-800 {
                        opp-microvolt = <800000 800000 1150000>;
                        opp-hz = /bits/ 64 <68000000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@68000000,950 {
+               opp-68000000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <68000000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@68000000,1050 {
+               opp-68000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <68000000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@68000000,1110 {
+               opp-68000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <68000000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@102000000,800 {
+               opp-102000000-800 {
                        opp-microvolt = <800000 800000 1150000>;
                        opp-hz = /bits/ 64 <102000000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@102000000,950 {
+               opp-102000000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <102000000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@102000000,1050 {
+               opp-102000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <102000000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@102000000,1110 {
+               opp-102000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <102000000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@204000000,800 {
+               opp-204000000-800 {
                        opp-microvolt = <800000 800000 1150000>;
                        opp-hz = /bits/ 64 <204000000>;
                        opp-supported-hw = <0x0003>;
                        opp-suspend;
                };
 
-               opp@204000000,950 {
+               opp-204000000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <204000000>;
                        opp-supported-hw = <0x0008>;
                        opp-suspend;
                };
 
-               opp@204000000,1050 {
+               opp-204000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <204000000>;
                        opp-supported-hw = <0x0010>;
                        opp-suspend;
                };
 
-               opp@204000000,1110 {
+               opp-204000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <204000000>;
                        opp-supported-hw = <0x0004>;
                        opp-suspend;
                };
 
-               opp@264000000,800 {
+               opp-264000000-800 {
                        opp-microvolt = <800000 800000 1150000>;
                        opp-hz = /bits/ 64 <264000000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@264000000,950 {
+               opp-264000000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <264000000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@264000000,1050 {
+               opp-264000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <264000000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@264000000,1110 {
+               opp-264000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <264000000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@300000000,850 {
+               opp-300000000-850 {
                        opp-microvolt = <850000 850000 1150000>;
                        opp-hz = /bits/ 64 <300000000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@300000000,950 {
+               opp-300000000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <300000000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@300000000,1050 {
+               opp-300000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <300000000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@300000000,1110 {
+               opp-300000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <300000000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@348000000,850 {
+               opp-348000000-850 {
                        opp-microvolt = <850000 850000 1150000>;
                        opp-hz = /bits/ 64 <348000000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@348000000,950 {
+               opp-348000000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <348000000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@348000000,1050 {
+               opp-348000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <348000000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@348000000,1110 {
+               opp-348000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <348000000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@396000000,950 {
+               opp-396000000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <396000000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@396000000,1000 {
+               opp-396000000-1000 {
                        opp-microvolt = <1000000 1000000 1150000>;
                        opp-hz = /bits/ 64 <396000000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@396000000,1050 {
+               opp-396000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <396000000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@396000000,1110 {
+               opp-396000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <396000000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@528000000,950 {
+               opp-528000000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <528000000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@528000000,1000 {
+               opp-528000000-1000 {
                        opp-microvolt = <1000000 1000000 1150000>;
                        opp-hz = /bits/ 64 <528000000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@528000000,1050 {
+               opp-528000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <528000000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@528000000,1110 {
+               opp-528000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <528000000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@600000000,950 {
+               opp-600000000-950 {
                        opp-microvolt = <950000 950000 1150000>;
                        opp-hz = /bits/ 64 <600000000>;
                        opp-supported-hw = <0x0008>;
                };
 
-               opp@600000000,1000 {
+               opp-600000000-1000 {
                        opp-microvolt = <1000000 1000000 1150000>;
                        opp-hz = /bits/ 64 <600000000>;
                        opp-supported-hw = <0x0003>;
                };
 
-               opp@600000000,1050 {
+               opp-600000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <600000000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@600000000,1110 {
+               opp-600000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <600000000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@792000000,1000 {
+               opp-792000000-1000 {
                        opp-microvolt = <1000000 1000000 1150000>;
                        opp-hz = /bits/ 64 <792000000>;
                        opp-supported-hw = <0x000B>;
                };
 
-               opp@792000000,1050 {
+               opp-792000000-1050 {
                        opp-microvolt = <1050000 1050000 1150000>;
                        opp-hz = /bits/ 64 <792000000>;
                        opp-supported-hw = <0x0010>;
                };
 
-               opp@792000000,1110 {
+               opp-792000000-1110 {
                        opp-microvolt = <1110000 1110000 1150000>;
                        opp-hz = /bits/ 64 <792000000>;
                        opp-supported-hw = <0x0004>;
                };
 
-               opp@924000000,1100 {
+               opp-924000000-1100 {
                        opp-microvolt = <1100000 1100000 1150000>;
                        opp-hz = /bits/ 64 <924000000>;
                        opp-supported-hw = <0x0013>;
                };
 
-               opp@1200000000,1100 {
+               opp-1200000000-1100 {
                        opp-microvolt = <1100000 1100000 1150000>;
                        opp-hz = /bits/ 64 <1200000000>;
                        opp-supported-hw = <0x0003>;
                };
        };
 
-       emc_bw_dfs_opp_table: emc-bandwidth-opp-table {
+       emc_bw_dfs_opp_table: opp-table-actmon {
                compatible = "operating-points-v2";
 
-               opp@12750000 {
+               opp-12750000 {
                        opp-hz = /bits/ 64 <12750000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <204000>;
                };
 
-               opp@20400000 {
+               opp-20400000 {
                        opp-hz = /bits/ 64 <20400000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <326400>;
                };
 
-               opp@40800000 {
+               opp-40800000 {
                        opp-hz = /bits/ 64 <40800000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <652800>;
                };
 
-               opp@68000000 {
+               opp-68000000 {
                        opp-hz = /bits/ 64 <68000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <1088000>;
                };
 
-               opp@102000000 {
+               opp-102000000 {
                        opp-hz = /bits/ 64 <102000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <1632000>;
                };
 
-               opp@204000000 {
+               opp-204000000 {
                        opp-hz = /bits/ 64 <204000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <3264000>;
                        opp-suspend;
                };
 
-               opp@264000000 {
+               opp-264000000 {
                        opp-hz = /bits/ 64 <264000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <4224000>;
                };
 
-               opp@300000000 {
+               opp-300000000 {
                        opp-hz = /bits/ 64 <300000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <4800000>;
                };
 
-               opp@348000000 {
+               opp-348000000 {
                        opp-hz = /bits/ 64 <348000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <5568000>;
                };
 
-               opp@396000000 {
+               opp-396000000 {
                        opp-hz = /bits/ 64 <396000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <6336000>;
                };
 
-               opp@528000000 {
+               opp-528000000 {
                        opp-hz = /bits/ 64 <528000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <8448000>;
                };
 
-               opp@600000000 {
+               opp-600000000 {
                        opp-hz = /bits/ 64 <600000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <9600000>;
                };
 
-               opp@792000000 {
+               opp-792000000 {
                        opp-hz = /bits/ 64 <792000000>;
                        opp-supported-hw = <0x001F>;
                        opp-peak-kBps = <12672000>;
                };
 
-               opp@924000000 {
+               opp-924000000 {
                        opp-hz = /bits/ 64 <924000000>;
                        opp-supported-hw = <0x0013>;
                        opp-peak-kBps = <14784000>;
                };
 
-               opp@1200000000 {
+               opp-1200000000 {
                        opp-hz = /bits/ 64 <1200000000>;
                        opp-supported-hw = <0x0003>;
                        opp-peak-kBps = <19200000>;
index e6b54ac..232c906 100644 (file)
@@ -51,7 +51,7 @@
                };
        };
 
-       gpu@0,57000000 {
+       gpu@57000000 {
                /*
                 * Node left disabled on purpose - the bootloader will enable
                 * it after having set the VPR up
        spi@7000da00 {
                status = "okay";
                spi-max-frequency = <25000000>;
-               spi-flash@0 {
+
+               flash@0 {
                        compatible = "winbond,w25q32dw", "jedec,spi-nor";
                        reg = <0>;
                        spi-max-frequency = <20000000>;
                        usb2-0 {
                                status = "okay";
                                mode = "otg";
-
+                               usb-role-switch;
                                vbus-supply = <&vdd_usb1_vbus>;
                        };
 
                default-brightness-level = <6>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                ddc-i2c-bus = <&dpaux>;
        };
 
-       vdd_mux: regulator@0 {
+       vdd_mux: regulator-mux {
                compatible = "regulator-fixed";
                regulator-name = "+VDD_MUX";
                regulator-min-microvolt = <12000000>;
                regulator-boot-on;
        };
 
-       vdd_5v0_sys: regulator@1 {
+       vdd_5v0_sys: regulator-5v0sys {
                compatible = "regulator-fixed";
                regulator-name = "+5V_SYS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_3v3_sys: regulator@2 {
+       vdd_3v3_sys: regulator-3v3sys {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_SYS";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_3v3_run: regulator@3 {
+       vdd_3v3_run: regulator-3v3run {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_RUN";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_3v3_hdmi: regulator@4 {
+       vdd_3v3_hdmi: regulator-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_AVDD_HDMI_AP_GATED";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_run>;
        };
 
-       vdd_led: regulator@5 {
+       vdd_led: regulator-led {
                compatible = "regulator-fixed";
                regulator-name = "+VDD_LED";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_5v0_ts: regulator@6 {
+       vdd_5v0_ts: regulator-ts {
                compatible = "regulator-fixed";
                regulator-name = "+5V_VDD_TS_SW";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_usb1_vbus: regulator@7 {
+       vdd_usb1_vbus: regulator-usb1 {
                compatible = "regulator-fixed";
                regulator-name = "+5V_USB_HS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_usb3_vbus: regulator@8 {
+       vdd_usb3_vbus: regulator-usb3 {
                compatible = "regulator-fixed";
                regulator-name = "+5V_USB_SS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_3v3_panel: regulator@9 {
+       vdd_3v3_panel: regulator-panel {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_PANEL";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_run>;
        };
 
-       vdd_3v3_lp0: regulator@10 {
+       vdd_3v3_lp0: regulator-lp0 {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_LP0";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_hdmi_pll: regulator@11 {
+       vdd_hdmi_pll: regulator-hdmipll {
                compatible = "regulator-fixed";
                regulator-name = "+1.05V_RUN_AVDD_HDMI_PLL";
                regulator-min-microvolt = <1050000>;
                vin-supply = <&vdd_1v05_run>;
        };
 
-       vdd_5v0_hdmi: regulator@12 {
+       vdd_5v0_hdmi: regulator-hdmicon {
                compatible = "regulator-fixed";
                regulator-name = "+5V_HDMI_CON";
                regulator-min-microvolt = <5000000>;
index 63a6417..a9ab548 100644 (file)
@@ -94,8 +94,8 @@
                interrupt-names = "syncpt", "host1x";
                clocks = <&tegra_car TEGRA124_CLK_HOST1X>;
                clock-names = "host1x";
-               resets = <&tegra_car 28>;
-               reset-names = "host1x";
+               resets = <&tegra_car 28>, <&mc TEGRA124_MC_RESET_HC>;
+               reset-names = "host1x", "mc";
                iommus = <&mc TEGRA_SWGROUP_HC>;
 
                #address-cells = <2>;
                interrupt-parent = <&gic>;
        };
 
-       /*
-        * Please keep the following 0, notation in place as a former mainline
-        * U-Boot version was looking for that particular notation in order to
-        * perform required fix-ups on that GPU node.
-        */
-       gpu@0,57000000 {
+       gpu@57000000 {
                compatible = "nvidia,gk20a";
                reg = <0x0 0x57000000 0x0 0x01000000>,
                      <0x0 0x58000000 0x0 0x01000000>;
        };
 
        timer@60005000 {
-               compatible = "nvidia,tegra124-timer", "nvidia,tegra30-timer", "nvidia,tegra20-timer";
+               compatible = "nvidia,tegra124-timer", "nvidia,tegra30-timer";
                reg = <0x0 0x60005000 0x0 0x400>;
                interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
                gpio-controller;
                #interrupt-cells = <2>;
                interrupt-controller;
-               /*
                gpio-ranges = <&pinmux 0 0 251>;
-               */
        };
 
        apbdma: dma@60020000 {
        };
 
        i2c@7000c000 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000c000 0x0 0x100>;
                interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000c400 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000c400 0x0 0x100>;
                interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000c500 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000c500 0x0 0x100>;
                interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000c700 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000c700 0x0 0x100>;
                interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000d000 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000d000 0x0 0x100>;
                interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000d100 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000d100 0x0 0x100>;
                interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                      <0x0 0x70020000 0x0 0x7000>; /* SATA */
                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&tegra_car TEGRA124_CLK_SATA>,
-                        <&tegra_car TEGRA124_CLK_SATA_OOB>,
-                        <&tegra_car TEGRA124_CLK_CML1>,
-                        <&tegra_car TEGRA124_CLK_PLL_E>;
-               clock-names = "sata", "sata-oob", "cml1", "pll_e";
+                        <&tegra_car TEGRA124_CLK_SATA_OOB>;
+               clock-names = "sata", "sata-oob";
                resets = <&tegra_car 124>,
                         <&tegra_car 129>,
                         <&tegra_car 123>;
                         <&tegra_car TEGRA124_CLK_XUSB_HOST_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_FALCON_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_SS>,
-                        <&tegra_car TEGRA124_CLK_XUSB_SS_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_SS_DIV2>,
+                        <&tegra_car TEGRA124_CLK_XUSB_SS_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_HS_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_FS_SRC>,
                         <&tegra_car TEGRA124_CLK_PLL_U_480M>,
                         <&tegra_car TEGRA124_CLK_PLL_E>;
                clock-names = "xusb_host", "xusb_host_src",
                              "xusb_falcon_src", "xusb_ss",
-                             "xusb_ss_src", "xusb_ss_div2",
+                             "xusb_ss_div2", "xusb_ss_src",
                              "xusb_hs_src", "xusb_fs_src",
                              "pll_u_480m", "clk_m", "pll_e";
                resets = <&tegra_car 89>, <&tegra_car 156>,
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <1000>;
 
                        };
                };
 
-               mem {
+               mem-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <1000>;
 
                        };
                };
 
-               gpu {
+               gpu-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <1000>;
 
                        };
                };
 
-               pllx {
+               pllx-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <1000>;
 
index 23d3f8d..a170a4b 100644 (file)
                };
        };
 
+       tegra_spdif: spdif@70002400 {
+               status = "okay";
+
+               nvidia,fixed-parent-rate;
+       };
+
        tegra_i2s1: i2s@70002800 {
                status = "okay";
+
+               nvidia,fixed-parent-rate;
        };
 
        uartb: serial@70006040 {
                compatible = "nvidia,tegra20-hsuart";
+               /delete-property/ reg-shift;
                /* GPS BCM4751 */
        };
 
        uartc: serial@70006200 {
                compatible = "nvidia,tegra20-hsuart";
+               /delete-property/ reg-shift;
                status = "okay";
 
                /* Azurewave AW-NH665 BCM4329B1 */
                nvidia,core-pwr-good-time = <3845 3845>;
                nvidia,core-pwr-off-time = <458>;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
        };
 
        usb@c5000000 {
        };
 
        /* PMIC has a built-in 32KHz oscillator which is used by PMC */
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k-in {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32768>;
         * oscillator is used as a reference clock-source by the
         * Azurewave WiFi/BT module.
         */
-       rtc_32k_wifi: clock@1 {
+       rtc_32k_wifi: clock-32k-wifi {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32768>;
                };
        };
 
-       vdd_5v0_sys: regulator@0 {
+       vdd_5v0_sys: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v0";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       vdd_3v3_sys: regulator@1 {
+       vdd_3v3_sys: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_3v3_vs";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_1v8_sys: regulator@2 {
+       vdd_1v8_sys: regulator-1v8 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v8_vs";
                regulator-min-microvolt = <1800000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_pnl: regulator@3 {
+       vdd_pnl: regulator-panel {
                compatible = "regulator-fixed";
                regulator-name = "vdd_panel";
                regulator-min-microvolt = <3300000>;
 };
 
 &emc_icc_dvfs_opp_table {
-       /delete-node/ opp@666000000;
-       /delete-node/ opp@760000000;
+       /delete-node/ opp-666000000;
+       /delete-node/ opp-760000000;
 };
diff --git a/arch/arm/boot/dts/tegra20-asus-tf101.dts b/arch/arm/boot/dts/tegra20-asus-tf101.dts
new file mode 100644 (file)
index 0000000..020172e
--- /dev/null
@@ -0,0 +1,1280 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include <dt-bindings/input/atmel-maxtouch.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/thermal/thermal.h>
+
+#include "tegra20.dtsi"
+#include "tegra20-cpu-opp.dtsi"
+#include "tegra20-cpu-opp-microvolt.dtsi"
+
+/ {
+       model = "ASUS EeePad Transformer TF101";
+       compatible = "asus,tf101", "nvidia,tegra20";
+       chassis-type = "convertible";
+
+       aliases {
+               mmc0 = &sdmmc4; /* eMMC */
+               mmc1 = &sdmmc3; /* MicroSD */
+               mmc2 = &sdmmc1; /* WiFi */
+
+               rtc0 = &pmic;
+               rtc1 = "/rtc@7000e000";
+
+               serial0 = &uartd;
+               serial1 = &uartc; /* Bluetooth */
+               serial2 = &uartb; /* GPS */
+       };
+
+       /*
+        * The decompressor and also some bootloaders rely on a
+        * pre-existing /chosen node to be available to insert the
+        * command line and merge other ATAGS info.
+        */
+       chosen {};
+
+       memory@0 {
+               reg = <0x00000000 0x40000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               ramoops@2ffe0000 {
+                       compatible = "ramoops";
+                       reg = <0x2ffe0000 0x10000>;     /* 64kB */
+                       console-size = <0x8000>;        /* 32kB */
+                       record-size = <0x400>;          /*  1kB */
+                       ecc-size = <16>;
+               };
+
+               linux,cma@30000000 {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x30000000 0x10000000>;
+                       size = <0x10000000>; /* 256MiB */
+                       linux,cma-default;
+                       reusable;
+               };
+       };
+
+       host1x@50000000 {
+               dc@54200000 {
+                       rgb {
+                               status = "okay";
+
+                               port@0 {
+                                       lcd_output: endpoint {
+                                               remote-endpoint = <&lvds_encoder_input>;
+                                               bus-width = <18>;
+                                       };
+                               };
+                       };
+               };
+
+               hdmi@54280000 {
+                       status = "okay";
+
+                       vdd-supply = <&hdmi_vdd_reg>;
+                       pll-supply = <&hdmi_pll_reg>;
+                       hdmi-supply = <&vdd_hdmi_en>;
+
+                       nvidia,ddc-i2c-bus = <&hdmi_ddc>;
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
+                               GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       gpio@6000d000 {
+               charging-enable-hog {
+                       gpio-hog;
+                       gpios = <TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
+       };
+
+       pinmux@70000014 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+
+               state_default: pinmux {
+                       ata {
+                               nvidia,pins = "ata";
+                               nvidia,function = "ide";
+                       };
+
+                       atb {
+                               nvidia,pins = "atb", "gma", "gme";
+                               nvidia,function = "sdio4";
+                       };
+
+                       atc {
+                               nvidia,pins = "atc";
+                               nvidia,function = "nand";
+                       };
+
+                       atd {
+                               nvidia,pins = "atd", "ate", "gmb", "spia",
+                                       "spib", "spic";
+                               nvidia,function = "gmi";
+                       };
+
+                       cdev1 {
+                               nvidia,pins = "cdev1";
+                               nvidia,function = "plla_out";
+                       };
+
+                       cdev2 {
+                               nvidia,pins = "cdev2";
+                               nvidia,function = "pllp_out4";
+                       };
+
+                       crtp {
+                               nvidia,pins = "crtp";
+                               nvidia,function = "crt";
+                       };
+
+                       lm1 {
+                               nvidia,pins = "lm1";
+                               nvidia,function = "rsvd3";
+                       };
+
+                       csus {
+                               nvidia,pins = "csus";
+                               nvidia,function = "vi_sensor_clk";
+                       };
+
+                       dap1 {
+                               nvidia,pins = "dap1";
+                               nvidia,function = "dap1";
+                       };
+
+                       dap2 {
+                               nvidia,pins = "dap2";
+                               nvidia,function = "dap2";
+                       };
+
+                       dap3 {
+                               nvidia,pins = "dap3";
+                               nvidia,function = "dap3";
+                       };
+
+                       dap4 {
+                               nvidia,pins = "dap4";
+                               nvidia,function = "dap4";
+                       };
+
+                       dta {
+                               nvidia,pins = "dta", "dtb", "dtc", "dtd", "dte";
+                               nvidia,function = "vi";
+                       };
+
+                       dtf {
+                               nvidia,pins = "dtf";
+                               nvidia,function = "i2c3";
+                       };
+
+                       gmc {
+                               nvidia,pins = "gmc";
+                               nvidia,function = "uartd";
+                       };
+
+                       gmd {
+                               nvidia,pins = "gmd";
+                               nvidia,function = "sflash";
+                       };
+
+                       gpu {
+                               nvidia,pins = "gpu";
+                               nvidia,function = "pwm";
+                       };
+
+                       gpu7 {
+                               nvidia,pins = "gpu7";
+                               nvidia,function = "rtck";
+                       };
+
+                       gpv {
+                               nvidia,pins = "gpv", "slxa";
+                               nvidia,function = "pcie";
+                       };
+
+                       hdint {
+                               nvidia,pins = "hdint";
+                               nvidia,function = "hdmi";
+                       };
+
+                       i2cp {
+                               nvidia,pins = "i2cp";
+                               nvidia,function = "i2cp";
+                       };
+
+                       irrx {
+                               nvidia,pins = "irrx", "irtx";
+                               nvidia,function = "uartb";
+                       };
+
+                       kbca {
+                               nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
+                                       "kbce", "kbcf";
+                               nvidia,function = "kbc";
+                       };
+
+                       lcsn {
+                               nvidia,pins = "lcsn", "ldc", "lm0", "lpw1",
+                                       "lsdi", "lvp0";
+                               nvidia,function = "rsvd4";
+                       };
+
+                       ld0 {
+                               nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
+                                       "ld5", "ld6", "ld7", "ld8", "ld9",
+                                       "ld10", "ld11", "ld12", "ld13", "ld14",
+                                       "ld15", "ld16", "ld17", "ldi", "lhp0",
+                                       "lhp1", "lhp2", "lhs", "lpp", "lpw0",
+                                       "lpw2", "lsc0", "lsc1", "lsck", "lsda",
+                                       "lspi", "lvp1", "lvs";
+                               nvidia,function = "displaya";
+                       };
+
+                       owc {
+                               nvidia,pins = "owc", "spdi", "spdo", "uac";
+                               nvidia,function = "rsvd2";
+                       };
+
+                       pmc {
+                               nvidia,pins = "pmc";
+                               nvidia,function = "pwr_on";
+                       };
+
+                       rm {
+                               nvidia,pins = "rm";
+                               nvidia,function = "i2c1";
+                       };
+
+                       sdb {
+                               nvidia,pins = "sdb", "sdc", "sdd", "slxc", "slxk";
+                               nvidia,function = "sdio3";
+                       };
+
+                       sdio1 {
+                               nvidia,pins = "sdio1";
+                               nvidia,function = "sdio1";
+                       };
+
+                       slxd {
+                               nvidia,pins = "slxd";
+                               nvidia,function = "spdif";
+                       };
+
+                       spid {
+                               nvidia,pins = "spid", "spie", "spif";
+                               nvidia,function = "spi1";
+                       };
+
+                       spig {
+                               nvidia,pins = "spig", "spih";
+                               nvidia,function = "spi2_alt";
+                       };
+
+                       uaa {
+                               nvidia,pins = "uaa", "uab", "uda";
+                               nvidia,function = "ulpi";
+                       };
+
+                       uad {
+                               nvidia,pins = "uad";
+                               nvidia,function = "irda";
+                       };
+
+                       uca {
+                               nvidia,pins = "uca", "ucb";
+                               nvidia,function = "uartc";
+                       };
+
+                       conf_ata {
+                               nvidia,pins = "ata", "atb", "atc", "atd",
+                                       "cdev1", "cdev2", "dap1", "dap4",
+                                       "dte", "ddc", "dtf", "gma", "gmc",
+                                       "gme", "gpu", "gpu7", "gpv", "i2cp",
+                                       "irrx", "irtx", "pta", "rm", "sdc",
+                                       "sdd", "slxc", "slxd", "slxk", "spdi",
+                                       "spdo", "uac", "uad",
+                                       "uda", "csus";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       conf_ate {
+                               nvidia,pins = "ate", "dap2", "dap3", "gmb", "gmd",
+                                       "owc", "spia", "spib", "spic",
+                                       "spid", "spie", "spig", "slxa";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       conf_ck32 {
+                               nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
+                                       "pmcc", "pmcd", "pmce", "xm2c", "xm2d";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                       };
+
+                       conf_crtp {
+                               nvidia,pins = "crtp", "spih";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       conf_dta {
+                               nvidia,pins = "dta", "dtb", "dtc", "dtd";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       conf_spif {
+                               nvidia,pins = "spif";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       conf_hdint {
+                               nvidia,pins = "hdint", "lcsn", "ldc", "lm1",
+                                       "lpw1", "lsck", "lsda", "lsdi", "lvp0";
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       conf_kbca {
+                               nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
+                                       "kbce", "kbcf", "sdio1", "uaa", "uab",
+                                       "uca", "ucb";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       conf_lc {
+                               nvidia,pins = "lc", "ls";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                       };
+
+                       conf_ld0 {
+                               nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
+                                       "ld5", "ld6", "ld7", "ld8", "ld9",
+                                       "ld10", "ld11", "ld12", "ld13", "ld14",
+                                       "ld15", "ld16", "ld17", "ldi", "lhp0",
+                                       "lhp1", "lhp2", "lhs", "lm0", "lpp",
+                                       "lpw0", "lpw2", "lsc0", "lsc1", "lspi",
+                                       "lvp1", "lvs", "pmc", "sdb";
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       conf_ld17_0 {
+                               nvidia,pins = "ld17_0", "ld19_18", "ld21_20",
+                                       "ld23_22";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                       };
+
+                       drive_sdio1 {
+                               nvidia,pins = "drive_sdio1", "drive_ddc", "drive_vi1";
+                               nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
+                               nvidia,schmitt = <TEGRA_PIN_ENABLE>;
+                               nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
+                               nvidia,pull-down-strength = <31>;
+                               nvidia,pull-up-strength = <31>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                       };
+
+                       drive_csus {
+                               nvidia,pins = "drive_csus";
+                               nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
+                               nvidia,schmitt = <TEGRA_PIN_DISABLE>;
+                               nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
+                               nvidia,pull-down-strength = <31>;
+                               nvidia,pull-up-strength = <31>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                       };
+               };
+
+               state_i2cmux_ddc: pinmux_i2cmux_ddc {
+                       ddc {
+                               nvidia,pins = "ddc";
+                               nvidia,function = "i2c2";
+                       };
+
+                       pta {
+                               nvidia,pins = "pta";
+                               nvidia,function = "rsvd4";
+                       };
+               };
+
+               state_i2cmux_pta: pinmux_i2cmux_pta {
+                       ddc {
+                               nvidia,pins = "ddc";
+                               nvidia,function = "rsvd4";
+                       };
+
+                       pta {
+                               nvidia,pins = "pta";
+                               nvidia,function = "i2c2";
+                       };
+               };
+
+               state_i2cmux_idle: pinmux_i2cmux_idle {
+                       ddc {
+                               nvidia,pins = "ddc";
+                               nvidia,function = "rsvd4";
+                       };
+
+                       pta {
+                               nvidia,pins = "pta";
+                               nvidia,function = "rsvd4";
+                       };
+               };
+       };
+
+       i2s@70002800 {
+               status = "okay";
+       };
+
+       serial@70006040 {
+               compatible = "nvidia,tegra20-hsuart";
+               /* GPS BCM4751 */
+       };
+
+       serial@70006200 {
+               compatible = "nvidia,tegra20-hsuart";
+               status = "okay";
+
+               /* Azurewave AW-NH615 BCM4329B1 */
+               bluetooth {
+                       compatible = "brcm,bcm4329-bt";
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(U, 6) IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "host-wakeup";
+
+                       /* PLLP 216MHz / 16 / 4 */
+                       max-speed = <3375000>;
+
+                       clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+                       clock-names = "txco";
+
+                       vbat-supply  = <&vdd_3v3_sys>;
+                       vddio-supply = <&vdd_1v8_sys>;
+
+                       device-wakeup-gpios = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
+                       shutdown-gpios =      <&gpio TEGRA_GPIO(U, 0) GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       serial@70006300 {
+               status = "okay";
+       };
+
+       pwm@7000a000 {
+               status = "okay";
+       };
+
+       i2c@7000c000 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               /* Aichi AMI306 digital compass */
+               magnetometer@e {
+                       compatible = "asahi-kasei,ak8974";
+                       reg = <0xe>;
+
+                       avdd-supply = <&vdd_3v3_sys>;
+                       dvdd-supply = <&vdd_1v8_sys>;
+
+                       mount-matrix = "-1",  "0",  "0",
+                                       "0",  "1",  "0",
+                                       "0",  "0", "-1";
+               };
+
+               wm8903: audio-codec@1a {
+                       compatible = "wlf,wm8903";
+                       reg = <0x1a>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(X, 1) IRQ_TYPE_EDGE_BOTH>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       micdet-cfg = <0x83>;
+                       micdet-delay = <100>;
+
+                       gpio-cfg = <
+                               0xffffffff /* don't touch */
+                               0xffffffff /* don't touch */
+                               0x00000000 /* Speaker-enable GPIO, output, low */
+                               0x00000400 /* Mic bias current detect */
+                               0xffffffff /* don't touch */
+                       >;
+
+                       AVDD-supply  = <&vdd_1v8_sys>;
+                       CPVDD-supply = <&vdd_1v8_sys>;
+                       DBVDD-supply = <&vdd_1v8_sys>;
+                       DCVDD-supply = <&vdd_1v8_sys>;
+               };
+
+               /* Atmel MXT1386 Touchscreen */
+               touchscreen@5b {
+                       compatible = "atmel,maxtouch";
+                       reg = <0x5b>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(V, 6) IRQ_TYPE_LEVEL_LOW>;
+
+                       reset-gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_LOW>;
+
+                       vdda-supply = <&vdd_3v3_sys>;
+                       vdd-supply  = <&vdd_3v3_sys>;
+
+                       atmel,wakeup-method = <ATMEL_MXT_WAKEUP_I2C_SCL>;
+               };
+
+               gyroscope@68 {
+                       compatible = "invensense,mpu3050";
+                       reg = <0x68>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(Z, 4) IRQ_TYPE_EDGE_RISING>;
+
+                       vdd-supply    = <&vdd_3v3_sys>;
+                       vlogic-supply = <&vdd_1v8_sys>;
+
+                       mount-matrix =   "0",  "1",  "0",
+                                       "-1",  "0",  "0",
+                                        "0",  "0",  "1";
+
+                       i2c-gate {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               accelerometer@f {
+                                       compatible = "kionix,kxtf9";
+                                       reg = <0xf>;
+
+                                       interrupt-parent = <&gpio>;
+                                       interrupts = <TEGRA_GPIO(N, 4) IRQ_TYPE_EDGE_RISING>;
+
+                                       vdd-supply = <&vdd_1v8_sys>;
+                                       vddio-supply = <&vdd_1v8_sys>;
+
+                                       mount-matrix =   "1",  "0",  "0",
+                                                        "0",  "1",  "0",
+                                                        "0",  "0",  "1";
+                               };
+                       };
+               };
+       };
+
+       i2c2: i2c@7000c400 {
+               status = "okay";
+               clock-frequency = <100000>;
+       };
+
+       i2c@7000c500 {
+               status = "okay";
+               clock-frequency = <400000>;
+       };
+
+       i2c@7000d000 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               pmic: pmic@34 {
+                       compatible = "ti,tps6586x";
+                       reg = <0x34>;
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+
+                       ti,system-power-controller;
+
+                       #gpio-cells = <2>;
+                       gpio-controller;
+
+                       sys-supply = <&vdd_5v0_sys>;
+                       vin-sm0-supply = <&sys_reg>;
+                       vin-sm1-supply = <&sys_reg>;
+                       vin-sm2-supply = <&sys_reg>;
+                       vinldo01-supply = <&sm2_reg>;
+                       vinldo23-supply = <&sm2_reg>;
+                       vinldo4-supply = <&sm2_reg>;
+                       vinldo678-supply = <&sm2_reg>;
+                       vinldo9-supply = <&sm2_reg>;
+
+                       regulators {
+                               sys_reg: sys {
+                                       regulator-name = "vdd_sys";
+                                       regulator-always-on;
+                               };
+
+                               vdd_core: sm0 {
+                                       regulator-name = "vdd_sm0,vdd_core";
+                                       regulator-min-microvolt = <950000>;
+                                       regulator-max-microvolt = <1300000>;
+                                       regulator-coupled-with = <&rtc_vdd &vdd_cpu>;
+                                       regulator-coupled-max-spread = <170000 550000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+
+                                       nvidia,tegra-core-regulator;
+                               };
+
+                               vdd_cpu: sm1 {
+                                       regulator-name = "vdd_sm1,vdd_cpu";
+                                       regulator-min-microvolt = <750000>;
+                                       regulator-max-microvolt = <1125000>;
+                                       regulator-coupled-with = <&vdd_core &rtc_vdd>;
+                                       regulator-coupled-max-spread = <550000 550000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+
+                                       nvidia,tegra-cpu-regulator;
+                               };
+
+                               sm2_reg: sm2 {
+                                       regulator-name = "vdd_sm2,vin_ldo*";
+                                       regulator-min-microvolt = <3700000>;
+                                       regulator-max-microvolt = <3700000>;
+                                       regulator-always-on;
+                               };
+
+                               /* LDO0 is not connected to anything */
+
+                               ldo1 {
+                                       regulator-name = "vdd_ldo1,avdd_pll*";
+                                       regulator-min-microvolt = <1100000>;
+                                       regulator-max-microvolt = <1100000>;
+                                       regulator-always-on;
+                               };
+
+                               rtc_vdd: ldo2 {
+                                       regulator-name = "vdd_ldo2,vdd_rtc";
+                                       regulator-min-microvolt = <950000>;
+                                       regulator-max-microvolt = <1300000>;
+                                       regulator-coupled-with = <&vdd_core &vdd_cpu>;
+                                       regulator-coupled-max-spread = <170000 550000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+
+                                       nvidia,tegra-rtc-regulator;
+                               };
+
+                               ldo3 {
+                                       regulator-name = "vdd_ldo3,avdd_usb*";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo4 {
+                                       regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               vcore_emmc: ldo5 {
+                                       regulator-name = "vdd_ldo5,vcore_mmc";
+                                       regulator-min-microvolt = <2850000>;
+                                       regulator-max-microvolt = <2850000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo6 {
+                                       regulator-name = "vdd_ldo6,avdd_vdac";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+
+                               hdmi_vdd_reg: ldo7 {
+                                       regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                               };
+
+                               hdmi_pll_reg: ldo8 {
+                                       regulator-name = "vdd_ldo8,avdd_hdmi_pll";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+
+                               ldo9 {
+                                       regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
+                                       regulator-min-microvolt = <2850000>;
+                                       regulator-max-microvolt = <2850000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo_rtc {
+                                       regulator-name = "vdd_rtc_out,vdd_cell";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                               };
+                       };
+               };
+
+               nct1008: temperature-sensor@4c {
+                       compatible = "onnn,nct1008";
+                       reg = <0x4c>;
+                       vcc-supply = <&vdd_3v3_sys>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(N, 6) IRQ_TYPE_EDGE_FALLING>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+       };
+
+       pmc@7000e400 {
+               nvidia,invert-interrupt;
+               nvidia,suspend-mode = <1>;
+               nvidia,cpu-pwr-good-time = <2000>;
+               nvidia,cpu-pwr-off-time = <100>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <458>;
+               nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
+       };
+
+       memory-controller@7000f400 {
+               nvidia,use-ram-code;
+
+               emc-tables@3 {
+                       reg = <0x3>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       lpddr2 {
+                               compatible = "elpida,B8132B2PB-6D-F", "jedec,lpddr2-s4";
+                               revision-id1 = <1>;
+                               density = <2048>;
+                               io-width = <16>;
+                       };
+
+                       emc-table@25000 {
+                               reg = <25000>;
+                               compatible = "nvidia,tegra20-emc-table";
+                               clock-frequency = <25000>;
+                               nvidia,emc-registers = <0x00000002 0x00000006
+                                       0x00000003 0x00000003 0x00000006 0x00000004
+                                       0x00000002 0x00000009 0x00000003 0x00000003
+                                       0x00000002 0x00000002 0x00000002 0x00000004
+                                       0x00000003 0x00000008 0x0000000b 0x0000004d
+                                       0x00000000 0x00000003 0x00000003 0x00000003
+                                       0x00000008 0x00000001 0x0000000a 0x00000004
+                                       0x00000003 0x00000008 0x00000004 0x00000006
+                                       0x00000002 0x00000068 0x00000000 0x00000003
+                                       0x00000000 0x00000000 0x00000282 0xa0ae04ae
+                                       0x00070000 0x00000000 0x00000000 0x00000003
+                                       0x00000000 0x00000000 0x00000000 0x00000000>;
+                       };
+
+                       emc-table@50000 {
+                               reg = <50000>;
+                               compatible = "nvidia,tegra20-emc-table";
+                               clock-frequency = <50000>;
+                               nvidia,emc-registers = <0x00000003 0x00000007
+                                       0x00000003 0x00000003 0x00000006 0x00000004
+                                       0x00000002 0x00000009 0x00000003 0x00000003
+                                       0x00000002 0x00000002 0x00000002 0x00000005
+                                       0x00000003 0x00000008 0x0000000b 0x0000009f
+                                       0x00000000 0x00000003 0x00000003 0x00000003
+                                       0x00000008 0x00000001 0x0000000a 0x00000007
+                                       0x00000003 0x00000008 0x00000004 0x00000006
+                                       0x00000002 0x000000d0 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000282 0xa0ae04ae
+                                       0x00070000 0x00000000 0x00000000 0x00000005
+                                       0x00000000 0x00000000 0x00000000 0x00000000>;
+                       };
+
+                       emc-table@75000 {
+                               reg = <75000>;
+                               compatible = "nvidia,tegra20-emc-table";
+                               clock-frequency = <75000>;
+                               nvidia,emc-registers = <0x00000005 0x0000000a
+                                       0x00000004 0x00000003 0x00000006 0x00000004
+                                       0x00000002 0x00000009 0x00000003 0x00000003
+                                       0x00000002 0x00000002 0x00000002 0x00000005
+                                       0x00000003 0x00000008 0x0000000b 0x000000ff
+                                       0x00000000 0x00000003 0x00000003 0x00000003
+                                       0x00000008 0x00000001 0x0000000a 0x0000000b
+                                       0x00000003 0x00000008 0x00000004 0x00000006
+                                       0x00000002 0x00000138 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000282 0xa0ae04ae
+                                       0x00070000 0x00000000 0x00000000 0x00000007
+                                       0x00000000 0x00000000 0x00000000 0x00000000>;
+                       };
+
+                       emc-table@150000 {
+                               reg = <150000>;
+                               compatible = "nvidia,tegra20-emc-table";
+                               clock-frequency = <150000>;
+                               nvidia,emc-registers = <0x00000009 0x00000014
+                                       0x00000007 0x00000003 0x00000006 0x00000004
+                                       0x00000002 0x00000009 0x00000003 0x00000003
+                                       0x00000002 0x00000002 0x00000002 0x00000005
+                                       0x00000003 0x00000008 0x0000000b 0x0000021f
+                                       0x00000000 0x00000003 0x00000003 0x00000003
+                                       0x00000008 0x00000001 0x0000000a 0x00000015
+                                       0x00000003 0x00000008 0x00000004 0x00000006
+                                       0x00000002 0x00000270 0x00000000 0x00000001
+                                       0x00000000 0x00000000 0x00000282 0xa07c04ae
+                                       0x007dc010 0x00000000 0x00000000 0x0000000e
+                                       0x00000000 0x00000000 0x00000000 0x00000000>;
+                       };
+
+                       emc-table@300000 {
+                               reg = <300000>;
+                               compatible = "nvidia,tegra20-emc-table";
+                               clock-frequency = <300000>;
+                               nvidia,emc-registers = <0x00000012 0x00000027
+                                       0x0000000d 0x00000006 0x00000007 0x00000005
+                                       0x00000003 0x00000009 0x00000006 0x00000006
+                                       0x00000003 0x00000003 0x00000002 0x00000006
+                                       0x00000003 0x00000009 0x0000000c 0x0000045f
+                                       0x00000000 0x00000004 0x00000004 0x00000006
+                                       0x00000008 0x00000001 0x0000000e 0x0000002a
+                                       0x00000003 0x0000000f 0x00000007 0x00000005
+                                       0x00000002 0x000004e0 0x00000005 0x00000002
+                                       0x00000000 0x00000000 0x00000282 0xe059048b
+                                       0x007e0010 0x00000000 0x00000000 0x0000001b
+                                       0x00000000 0x00000000 0x00000000 0x00000000>;
+                       };
+               };
+       };
+
+       /* Peripheral USB via ASUS connector */
+       usb@c5000000 {
+               compatible = "nvidia,tegra20-udc";
+               status = "okay";
+               dr_mode = "peripheral";
+       };
+
+       usb-phy@c5000000 {
+               status = "okay";
+               dr_mode = "peripheral";
+               nvidia,xcvr-setup-use-fuses;
+               nvidia,xcvr-lsfslew = <2>;
+               nvidia,xcvr-lsrslew = <2>;
+               vbus-supply = <&vdd_5v0_sys>;
+       };
+
+       /* Dock's USB port */
+       usb@c5008000 {
+               status = "okay";
+       };
+
+       usb-phy@c5008000 {
+               status = "okay";
+               nvidia,xcvr-setup-use-fuses;
+               vbus-supply = <&vdd_5v0_sys>;
+       };
+
+       sdmmc1: mmc@c8000000 {
+               status = "okay";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               assigned-clocks = <&tegra_car TEGRA20_CLK_SDMMC1>;
+               assigned-clock-parents = <&tegra_car TEGRA20_CLK_PLL_C>;
+               assigned-clock-rates = <40000000>;
+
+               max-frequency = <40000000>;
+               keep-power-in-suspend;
+               bus-width = <4>;
+               non-removable;
+
+               mmc-pwrseq = <&brcm_wifi_pwrseq>;
+               vmmc-supply = <&vdd_3v3_sys>;
+               vqmmc-supply = <&vdd_3v3_sys>;
+
+               /* Azurewave AW-NH615 BCM4329B1 */
+               wifi@1 {
+                       compatible = "brcm,bcm4329-fmac";
+                       reg = <1>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "host-wake";
+               };
+       };
+
+       sdmmc3: mmc@c8000400 {
+               status = "okay";
+               bus-width = <4>;
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
+               power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
+               vmmc-supply = <&vdd_3v3_sys>;
+               vqmmc-supply = <&vdd_3v3_sys>;
+       };
+
+       sdmmc4: mmc@c8000600 {
+               status = "okay";
+               bus-width = <8>;
+               vmmc-supply = <&vcore_emmc>;
+               vqmmc-supply = <&vdd_3v3_sys>;
+               non-removable;
+       };
+
+       mains: ac-adapter-detect {
+               compatible = "gpio-charger";
+               charger-type = "mains";
+               gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+
+               enable-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
+               power-supply = <&vdd_3v3_sys>;
+               pwms = <&pwm 2 4000000>;
+
+               brightness-levels = <7 255>;
+               num-interpolated-steps = <248>;
+               default-brightness-level = <20>;
+       };
+
+       /* PMIC has a built-in 32KHz oscillator which is used by PMC */
+       clk32k_in: clock-32k-in {
+               compatible = "fixed-clock";
+               clock-frequency = <32768>;
+               #clock-cells = <0>;
+       };
+
+       cpus {
+               cpu0: cpu@0 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu1: cpu@1 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               dock-hall-sensor {
+                       label = "Lid";
+                       gpios = <&gpio TEGRA_GPIO(S, 4) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       debounce-interval = <500>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               power {
+                       label = "Power";
+                       gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               volume-up {
+                       label = "Volume Up";
+                       gpios = <&gpio TEGRA_GPIO(Q, 5) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               volume-down {
+                       label = "Volume Down";
+                       gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+       };
+
+       display-panel {
+               compatible = "panel-lvds";
+
+               /* AUO B101EW05 using custom timings */
+
+               backlight = <&backlight>;
+               ddc-i2c-bus = <&lvds_ddc>;
+               power-supply = <&vdd_pnl_reg>;
+
+               width-mm = <218>;
+               height-mm = <135>;
+
+               data-mapping = "jeida-18";
+
+               panel-timing {
+                       clock-frequency = <71200000>;
+                       hactive = <1280>;
+                       vactive = <800>;
+                       hfront-porch = <8>;
+                       hback-porch = <18>;
+                       hsync-len = <184>;
+                       vsync-len = <3>;
+                       vfront-porch = <4>;
+                       vback-porch = <8>;
+               };
+
+               port {
+                       panel_input: endpoint {
+                               remote-endpoint = <&lvds_encoder_output>;
+                       };
+               };
+       };
+
+       i2cmux {
+               compatible = "i2c-mux-pinctrl";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c-parent = <&i2c2>;
+
+               pinctrl-names = "ddc", "pta", "idle";
+               pinctrl-0 = <&state_i2cmux_ddc>;
+               pinctrl-1 = <&state_i2cmux_pta>;
+               pinctrl-2 = <&state_i2cmux_idle>;
+
+               hdmi_ddc: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               lvds_ddc: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       smart-battery@b {
+                               compatible = "ti,bq20z75", "sbs,sbs-battery";
+                               reg = <0xb>;
+                               sbs,i2c-retry-count = <2>;
+                               sbs,poll-retry-count = <10>;
+                               power-supplies = <&mains>;
+                       };
+               };
+       };
+
+       lvds-encoder {
+               compatible = "ti,sn75lvds83", "lvds-encoder";
+
+               powerdown-gpios = <&gpio TEGRA_GPIO(B, 2) GPIO_ACTIVE_LOW>;
+               power-supply = <&vdd_3v3_sys>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               lvds_encoder_input: endpoint {
+                                       remote-endpoint = <&lcd_output>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               lvds_encoder_output: endpoint {
+                                       remote-endpoint = <&panel_input>;
+                               };
+                       };
+               };
+       };
+
+       vdd_5v0_sys: regulator-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       vdd_3v3_sys: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3_vs";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&vdd_5v0_sys>;
+       };
+
+       regulator-pcie {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie_vdd";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+               gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+       };
+
+       vdd_pnl_reg: regulator-panel {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_pnl";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vdd_1v8_sys: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_1v8_vs";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               vin-supply = <&vdd_5v0_sys>;
+       };
+
+       vdd_hdmi_en: regulator-hdmi {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0_hdmi_en";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               vin-supply = <&vdd_5v0_sys>;
+               gpio = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       sound {
+               compatible = "asus,tegra-audio-wm8903-tf101",
+                            "nvidia,tegra-audio-wm8903";
+               nvidia,model = "Asus EeePad Transformer WM8903";
+
+               nvidia,audio-routing =
+                       "Headphone Jack", "HPOUTR",
+                       "Headphone Jack", "HPOUTL",
+                       "Int Spk", "ROP",
+                       "Int Spk", "RON",
+                       "Int Spk", "LOP",
+                       "Int Spk", "LON",
+                       "Mic Jack", "MICBIAS",
+                       "IN1L", "Mic Jack";
+
+               nvidia,i2s-controller = <&tegra_i2s1>;
+               nvidia,audio-codec = <&wm8903>;
+
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
+               nvidia,headset;
+
+               clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
+                        <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
+                        <&tegra_car TEGRA20_CLK_CDEV1>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
+       };
+
+       thermal-zones {
+               /*
+                * NCT1008 has two sensors:
+                *
+                *      0: internal that monitors ambient/skin temperature
+                *      1: external that is connected to the CPU's diode
+                *
+                * Ideally we should use userspace thermal governor,
+                * but it's a much more complex solution.  The "skin"
+                * zone is a simpler solution which prevents TF101 from
+                * getting too hot from a user's tactile perspective.
+                * The CPU zone is intended to protect silicon from damage.
+                */
+
+               skin-thermal {
+                       polling-delay-passive = <1000>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&nct1008 0>;
+
+                       trips {
+                               trip0: skin-alert {
+                                       /* start throttling at 60C */
+                                       temperature = <60000>;
+                                       hysteresis = <200>;
+                                       type = "passive";
+                               };
+
+                               trip1: skin-crit {
+                                       /* shut down at 70C */
+                                       temperature = <70000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&trip0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-thermal {
+                       polling-delay-passive = <1000>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&nct1008 1>;
+
+                       trips {
+                               trip2: cpu-alert {
+                                       /* throttle at 85C until temperature drops to 84.8C */
+                                       temperature = <85000>;
+                                       hysteresis = <200>;
+                                       type = "passive";
+                               };
+
+                               trip3: cpu-crit {
+                                       /* shut down at 90C */
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map1 {
+                                       trip = <&trip2>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+
+       brcm_wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+
+               clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+               clock-names = "ext_clock";
+
+               reset-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_LOW>;
+               post-power-on-delay-ms = <200>;
+               power-off-delay-us = <200>;
+       };
+};
+
+&emc_icc_dvfs_opp_table {
+       /delete-node/ opp-666000000;
+       /delete-node/ opp-760000000;
+};
index a05fb38..d2a3bf9 100644 (file)
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                        };
 
-                       pwm-a-b {
+                       sdc {
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                        };
 
-                       pwm-c-d {
+                       sdb_sdd {
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                        };
 
index 425494b..00ecbbd 100644 (file)
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                        };
 
-                       pwm-a-b {
+                       sdc {
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                        };
 
-                       pwm-c-d {
+                       sdb_sdd {
                                nvidia,tristate = <TEGRA_PIN_DISABLE>;
                        };
 
index 585a5b4..1eefb9e 100644 (file)
                        };
 
                        /* Colibri Backlight PWM<A>, PWM<B> */
-                       pwm-a-b {
+                       sdc {
                                nvidia,pins = "sdc";
                                nvidia,function = "pwm";
                                nvidia,tristate = <TEGRA_PIN_ENABLE>;
                        };
 
                        /* Colibri PWM<C>, PWM<D> */
-                       pwm-c-d {
+                       sdb_sdd {
                                nvidia,pins = "sdb", "sdd";
                                nvidia,function = "pwm";
                                nvidia,tristate = <TEGRA_PIN_ENABLE>;
 
        serial@70006040 {
                compatible = "nvidia,tegra20-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006300 {
                compatible = "nvidia,tegra20-hsuart";
+               /delete-property/ reg-shift;
        };
 
        nand-controller@70008000 {
                                        regulator-always-on;
                                };
 
-                               sm0 {
+                               vdd_core: sm0 {
                                        regulator-name = "VDD_CORE_1.2V";
                                        regulator-min-microvolt = <1200000>;
                                        regulator-max-microvolt = <1200000>;
                nvidia,core-pwr-good-time = <3845 3845>;
                nvidia,core-pwr-off-time = <3875>;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
 
                /* Set SLEEP MODE bit in SUPPLYENE register of TPS658643 PMIC */
                i2c-thermtrip {
                #size-cells = <0>;
 
                asix@1 {
+                       compatible = "usbb95,772b";
                        reg = <1>;
                        local-mac-address = [00 00 00 00 00 00];
                };
 };
 
 &emc_icc_dvfs_opp_table {
-       /delete-node/ opp@760000000;
+       /delete-node/ opp-760000000;
 };
 
 &gpio {
-       lan-reset-n {
+       lan-reset-n-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(V, 4) GPIO_ACTIVE_HIGH>;
                output-high;
        };
 
        /* Tri-stating GMI_WR_N on SODIMM pin 99 nPWE */
-       npwe {
+       npwe-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
                output-high;
        };
 
        /* Not tri-stating GMI_WR_N on SODIMM pin 93 RDnWR */
-       rdnwr {
+       rdnwr-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(T, 6) GPIO_ACTIVE_HIGH>;
                output-low;
index 6f3e8c5..7330c1b 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
 / {
-       cpu0_opp_table: cpu_opp_table0 {
-               opp@216000000,750 {
+       cpu0_opp_table: opp-table-cpu0 {
+               opp-216000000-750 {
                        opp-microvolt = <750000 750000 1125000>;
                };
 
-               opp@216000000,800 {
+               opp-216000000-800 {
                        opp-microvolt = <800000 800000 1125000>;
                };
 
-               opp@312000000,750 {
+               opp-312000000-750 {
                        opp-microvolt = <750000 750000 1125000>;
                };
 
-               opp@312000000,800 {
+               opp-312000000-800 {
                        opp-microvolt = <800000 800000 1125000>;
                };
 
-               opp@456000000,750 {
+               opp-456000000-750 {
                        opp-microvolt = <750000 750000 1125000>;
                };
 
-               opp@456000000,800 {
+               opp-456000000-800 {
                        opp-microvolt = <800000 800000 1125000>;
                };
 
-               opp@456000000,825 {
+               opp-456000000-825 {
                        opp-microvolt = <825000 825000 1125000>;
                };
 
-               opp@608000000,750 {
+               opp-608000000-750 {
                        opp-microvolt = <750000 750000 1125000>;
                };
 
-               opp@608000000,800 {
+               opp-608000000-800 {
                        opp-microvolt = <800000 800000 1125000>;
                };
 
-               opp@608000000,825 {
+               opp-608000000-825 {
                        opp-microvolt = <825000 825000 1125000>;
                };
 
-               opp@608000000,850 {
+               opp-608000000-850 {
                        opp-microvolt = <850000 850000 1125000>;
                };
 
-               opp@608000000,900 {
+               opp-608000000-900 {
                        opp-microvolt = <900000 900000 1125000>;
                };
 
-               opp@760000000,775 {
+               opp-760000000-775 {
                        opp-microvolt = <775000 775000 1125000>;
                };
 
-               opp@760000000,800 {
+               opp-760000000-800 {
                        opp-microvolt = <800000 800000 1125000>;
                };
 
-               opp@760000000,850 {
+               opp-760000000-850 {
                        opp-microvolt = <850000 850000 1125000>;
                };
 
-               opp@760000000,875 {
+               opp-760000000-875 {
                        opp-microvolt = <875000 875000 1125000>;
                };
 
-               opp@760000000,900 {
+               opp-760000000-900 {
                        opp-microvolt = <900000 900000 1125000>;
                };
 
-               opp@760000000,975 {
+               opp-760000000-975 {
                        opp-microvolt = <975000 975000 1125000>;
                };
 
-               opp@816000000,800 {
+               opp-816000000-800 {
                        opp-microvolt = <800000 800000 1125000>;
                };
 
-               opp@816000000,850 {
+               opp-816000000-850 {
                        opp-microvolt = <850000 850000 1125000>;
                };
 
-               opp@816000000,875 {
+               opp-816000000-875 {
                        opp-microvolt = <875000 875000 1125000>;
                };
 
-               opp@816000000,950 {
+               opp-816000000-950 {
                        opp-microvolt = <950000 950000 1125000>;
                };
 
-               opp@816000000,1000 {
+               opp-816000000-1000 {
                        opp-microvolt = <1000000 1000000 1125000>;
                };
 
-               opp@912000000,850 {
+               opp-912000000-850 {
                        opp-microvolt = <850000 850000 1125000>;
                };
 
-               opp@912000000,900 {
+               opp-912000000-900 {
                        opp-microvolt = <900000 900000 1125000>;
                };
 
-               opp@912000000,925 {
+               opp-912000000-925 {
                        opp-microvolt = <925000 925000 1125000>;
                };
 
-               opp@912000000,950 {
+               opp-912000000-950 {
                        opp-microvolt = <950000 950000 1125000>;
                };
 
-               opp@912000000,1000 {
+               opp-912000000-1000 {
                        opp-microvolt = <1000000 1000000 1125000>;
                };
 
-               opp@912000000,1050 {
+               opp-912000000-1050 {
                        opp-microvolt = <1050000 1050000 1125000>;
                };
 
-               opp@1000000000,875 {
+               opp-1000000000-875 {
                        opp-microvolt = <875000 875000 1125000>;
                };
 
-               opp@1000000000,900 {
+               opp-1000000000-900 {
                        opp-microvolt = <900000 900000 1125000>;
                };
 
-               opp@1000000000,950 {
+               opp-1000000000-950 {
                        opp-microvolt = <950000 950000 1125000>;
                };
 
-               opp@1000000000,975 {
+               opp-1000000000-975 {
                        opp-microvolt = <975000 975000 1125000>;
                };
 
-               opp@1000000000,1000 {
+               opp-1000000000-1000 {
                        opp-microvolt = <1000000 1000000 1125000>;
                };
 
-               opp@1000000000,1025 {
+               opp-1000000000-1025 {
                        opp-microvolt = <1025000 1025000 1125000>;
                };
 
-               opp@1000000000,1100 {
+               opp-1000000000-1100 {
                        opp-microvolt = <1100000 1100000 1125000>;
                };
 
-               opp@1200000000,1000 {
+               opp-1200000000-1000 {
                        opp-microvolt = <1000000 1000000 1125000>;
                };
 
-               opp@1200000000,1050 {
+               opp-1200000000-1050 {
                        opp-microvolt = <1050000 1050000 1125000>;
                };
 
-               opp@1200000000,1100 {
+               opp-1200000000-1100 {
                        opp-microvolt = <1100000 1100000 1125000>;
                };
 
-               opp@1200000000,1125 {
+               opp-1200000000-1125 {
                        opp-microvolt = <1125000 1125000 1125000>;
                };
        };
index 135de31..47c8e78 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
 / {
-       cpu0_opp_table: cpu_opp_table0 {
+       cpu0_opp_table: opp-table-cpu0 {
                compatible = "operating-points-v2";
                opp-shared;
 
-               opp@216000000,750 {
+               opp-216000000-750 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x0F 0x0003>;
                        opp-hz = /bits/ 64 <216000000>;
                        opp-suspend;
                };
 
-               opp@216000000,800 {
+               opp-216000000-800 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x0F 0x0004>;
                        opp-hz = /bits/ 64 <216000000>;
                        opp-suspend;
                };
 
-               opp@312000000,750 {
+               opp-312000000-750 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x0F 0x0003>;
                        opp-hz = /bits/ 64 <312000000>;
                };
 
-               opp@312000000,800 {
+               opp-312000000-800 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x0F 0x0004>;
                        opp-hz = /bits/ 64 <312000000>;
                };
 
-               opp@456000000,750 {
+               opp-456000000-750 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x0C 0x0003>;
                        opp-hz = /bits/ 64 <456000000>;
                };
 
-               opp@456000000,800 {
+               opp-456000000-800 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x03 0x0006>, <0x04 0x0004>,
                                           <0x08 0x0004>;
                        opp-hz = /bits/ 64 <456000000>;
                };
 
-               opp@456000000,825 {
+               opp-456000000-825 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x03 0x0001>;
                        opp-hz = /bits/ 64 <456000000>;
                };
 
-               opp@608000000,750 {
+               opp-608000000-750 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x08 0x0003>;
                        opp-hz = /bits/ 64 <608000000>;
                };
 
-               opp@608000000,800 {
+               opp-608000000-800 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0006>, <0x08 0x0004>;
                        opp-hz = /bits/ 64 <608000000>;
                };
 
-               opp@608000000,825 {
+               opp-608000000-825 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0001>;
                        opp-hz = /bits/ 64 <608000000>;
                };
 
-               opp@608000000,850 {
+               opp-608000000-850 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x03 0x0006>;
                        opp-hz = /bits/ 64 <608000000>;
                };
 
-               opp@608000000,900 {
+               opp-608000000-900 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x03 0x0001>;
                        opp-hz = /bits/ 64 <608000000>;
                };
 
-               opp@760000000,775 {
+               opp-760000000-775 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x08 0x0003>;
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@760000000,800 {
+               opp-760000000-800 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x08 0x0004>;
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@760000000,850 {
+               opp-760000000-850 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0006>;
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@760000000,875 {
+               opp-760000000-875 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0001>, <0x02 0x0002>,
                                           <0x01 0x0004>, <0x02 0x0004>;
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@760000000,900 {
+               opp-760000000-900 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x01 0x0002>;
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@760000000,975 {
+               opp-760000000-975 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x03 0x0001>;
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@816000000,800 {
+               opp-816000000-800 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x08 0x0007>;
                        opp-hz = /bits/ 64 <816000000>;
                };
 
-               opp@816000000,850 {
+               opp-816000000-850 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0002>;
                        opp-hz = /bits/ 64 <816000000>;
                };
 
-               opp@816000000,875 {
+               opp-816000000-875 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0005>;
                        opp-hz = /bits/ 64 <816000000>;
                };
 
-               opp@816000000,950 {
+               opp-816000000-950 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x03 0x0006>;
                        opp-hz = /bits/ 64 <816000000>;
                };
 
-               opp@816000000,1000 {
+               opp-816000000-1000 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x03 0x0001>;
                        opp-hz = /bits/ 64 <816000000>;
                };
 
-               opp@912000000,850 {
+               opp-912000000-850 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x08 0x0007>;
                        opp-hz = /bits/ 64 <912000000>;
                };
 
-               opp@912000000,900 {
+               opp-912000000-900 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0002>;
                        opp-hz = /bits/ 64 <912000000>;
                };
 
-               opp@912000000,925 {
+               opp-912000000-925 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0001>;
                        opp-hz = /bits/ 64 <912000000>;
                };
 
-               opp@912000000,950 {
+               opp-912000000-950 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x02 0x0006>, <0x01 0x0004>,
                                           <0x04 0x0004>;
                        opp-hz = /bits/ 64 <912000000>;
                };
 
-               opp@912000000,1000 {
+               opp-912000000-1000 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x01 0x0002>;
                        opp-hz = /bits/ 64 <912000000>;
                };
 
-               opp@912000000,1050 {
+               opp-912000000-1050 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x03 0x0001>;
                        opp-hz = /bits/ 64 <912000000>;
                };
 
-               opp@1000000000,875 {
+               opp-1000000000-875 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x08 0x0007>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1000000000,900 {
+               opp-1000000000-900 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0002>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1000000000,950 {
+               opp-1000000000-950 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0004>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1000000000,975 {
+               opp-1000000000-975 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0001>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1000000000,1000 {
+               opp-1000000000-1000 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x02 0x0006>, <0x01 0x0004>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1000000000,1025 {
+               opp-1000000000-1025 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x01 0x0002>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1000000000,1100 {
+               opp-1000000000-1100 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x03 0x0001>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1200000000,1000 {
+               opp-1200000000-1000 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x08 0x0004>;
                        opp-hz = /bits/ 64 <1200000000>;
                };
 
-               opp@1200000000,1050 {
+               opp-1200000000-1050 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x04 0x0004>;
                        opp-hz = /bits/ 64 <1200000000>;
                };
 
-               opp@1200000000,1100 {
+               opp-1200000000-1100 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x02 0x0004>;
                        opp-hz = /bits/ 64 <1200000000>;
                };
 
-               opp@1200000000,1125 {
+               opp-1200000000-1125 {
                        clock-latency-ns = <400000>;
                        opp-supported-hw = <0x01 0x0004>;
                        opp-hz = /bits/ 64 <1200000000>;
index ae4312e..79b6b79 100644 (file)
                                        regulator-always-on;
                                };
 
-                               sm0 {
+                               vdd_core: sm0 {
                                        regulator-name = "vdd_sm0,vdd_core";
                                        regulator-min-microvolt = <1200000>;
                                        regulator-max-microvolt = <1200000>;
                nvidia,core-pwr-good-time = <3845 3845>;
                nvidia,core-pwr-off-time = <3875>;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
        };
 
        pcie@80003000 {
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
-                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
                default-brightness-level = <6>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                backlight = <&backlight>;
        };
 
-       vdd_5v0_reg: regulator@0 {
+       vdd_5v0_reg: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v0";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       regulator@1 {
+       regulator-1v5 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v5";
                regulator-min-microvolt = <1500000>;
                gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
        };
 
-       regulator@2 {
+       regulator-1v2 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v2";
                regulator-min-microvolt = <1200000>;
                enable-active-high;
        };
 
-       pci_vdd_reg: regulator@3 {
+       pci_vdd_reg: regulator-1v05 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v05";
                regulator-min-microvolt = <1050000>;
                enable-active-high;
        };
 
-       vdd_pnl_reg: regulator@4 {
+       vdd_pnl_reg: regulator-pn1 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_pnl";
                regulator-min-microvolt = <2800000>;
                enable-active-high;
        };
 
-       vdd_bl_reg: regulator@5 {
+       vdd_bl_reg: regulator-bl {
                compatible = "regulator-fixed";
                regulator-name = "vdd_bl";
                regulator-min-microvolt = <2800000>;
                enable-active-high;
        };
 
-       vdd_5v0_hdmi: regulator@6 {
+       vdd_5v0_hdmi: regulator-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "VDDIO_HDMI";
                regulator-min-microvolt = <5000000>;
index b31c9bc..f144487 100644 (file)
@@ -54,6 +54,9 @@
 
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
+
+               /* close enough */
+               power-supply = <&vdd_3v3_reg>;
        };
 
        panel: panel {
@@ -92,7 +95,7 @@
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 
-       vcc_24v_reg: regulator@100 {
+       vcc_24v_reg: regulator-24v0 {
                compatible = "regulator-fixed";
                regulator-name = "vcc_24v";
                regulator-min-microvolt = <24000000>;
                regulator-always-on;
        };
 
-       vdd_5v0_reg: regulator@101 {
+       vdd_5v0_reg: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v0";
                vin-supply = <&vcc_24v_reg>;
                regulator-always-on;
        };
 
-       vdd_3v3_reg: regulator@102 {
+       vdd_3v3_reg: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_3v3";
                vin-supply = <&vcc_24v_reg>;
                regulator-always-on;
        };
 
-       vdd_1v8_reg: regulator@103 {
+       vdd_1v8_reg: regulator-1v8 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v8";
                vin-supply = <&vdd_3v3_reg>;
index 5b38b06..d53a175 100644 (file)
                };
        };
 
+       spdif@70002400 {
+               status = "okay";
+
+               nvidia,fixed-parent-rate;
+       };
+
        i2s@70002800 {
                status = "okay";
+
+               nvidia,fixed-parent-rate;
        };
 
        serial@70006000 {
                nvidia,core-pwr-good-time = <3845 3845>;
                nvidia,core-pwr-off-time = <0>;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&core_vdd_reg>;
        };
 
        usb@c5000000 {
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
-                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
 
                brightness-levels = <0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255>;
                default-brightness-level = <10>;
+
+               /* close enough */
+               power-supply = <&vdd_pnl_reg>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                backlight = <&backlight>;
        };
 
-       p5valw_reg: regulator@0 {
+       p5valw_reg: regulator-5v0alw {
                compatible = "regulator-fixed";
                regulator-name = "+5valw";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       vdd_pnl_reg: regulator@1 {
+       vdd_pnl_reg: regulator-3v0 {
                compatible = "regulator-fixed";
                regulator-name = "+3VS,vdd_pnl";
                regulator-min-microvolt = <3300000>;
 };
 
 &emc_icc_dvfs_opp_table {
-       /delete-node/ opp@760000000;
+       /delete-node/ opp-760000000;
 };
index ef3ad2e..1b80823 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
 / {
-       emc_icc_dvfs_opp_table: emc-dvfs-opp-table {
+       core_opp_table: opp-table-core {
                compatible = "operating-points-v2";
+               opp-shared;
 
-               opp@36000000 {
+               core_opp_950: opp-950000 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-level = <950000>;
+               };
+
+               core_opp_1000: opp-1000000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-level = <1000000>;
+               };
+
+               core_opp_1100: opp-1100000 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-level = <1100000>;
+               };
+
+               core_opp_1200: opp-1200000 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-level = <1200000>;
+               };
+
+               core_opp_1225: opp-1225000 {
+                       opp-microvolt = <1225000 1225000 1300000>;
+                       opp-level = <1225000>;
+               };
+
+               core_opp_1275: opp-1275000 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-level = <1275000>;
+               };
+
+               core_opp_1300: opp-1300000 {
+                       opp-microvolt = <1300000 1300000 1300000>;
+                       opp-level = <1300000>;
+               };
+       };
+
+       emc_icc_dvfs_opp_table: opp-table-emc {
+               compatible = "operating-points-v2";
+
+               opp-36000000 {
                        opp-microvolt = <950000 950000 1300000>;
                        opp-hz = /bits/ 64 <36000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@47500000 {
+               opp-47500000 {
                        opp-microvolt = <950000 950000 1300000>;
                        opp-hz = /bits/ 64 <47500000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@50000000 {
+               opp-50000000 {
                        opp-microvolt = <950000 950000 1300000>;
                        opp-hz = /bits/ 64 <50000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@54000000 {
+               opp-54000000 {
                        opp-microvolt = <950000 950000 1300000>;
                        opp-hz = /bits/ 64 <54000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@57000000 {
+               opp-57000000 {
                        opp-microvolt = <950000 950000 1300000>;
                        opp-hz = /bits/ 64 <57000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@100000000 {
+               opp-100000000 {
                        opp-microvolt = <1000000 1000000 1300000>;
                        opp-hz = /bits/ 64 <100000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@108000000 {
+               opp-108000000 {
                        opp-microvolt = <1000000 1000000 1300000>;
                        opp-hz = /bits/ 64 <108000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@126666000 {
+               opp-126666000 {
                        opp-microvolt = <1000000 1000000 1300000>;
                        opp-hz = /bits/ 64 <126666000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@150000000 {
+               opp-150000000 {
                        opp-microvolt = <1000000 1000000 1300000>;
                        opp-hz = /bits/ 64 <150000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@190000000 {
+               opp-190000000 {
                        opp-microvolt = <1000000 1000000 1300000>;
                        opp-hz = /bits/ 64 <190000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@216000000 {
+               opp-216000000 {
                        opp-microvolt = <1000000 1000000 1300000>;
                        opp-hz = /bits/ 64 <216000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
                        opp-suspend;
                };
 
-               opp@300000000 {
+               opp-300000000 {
                        opp-microvolt = <1000000 1000000 1300000>;
                        opp-hz = /bits/ 64 <300000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@333000000 {
+               opp-333000000 {
                        opp-microvolt = <1000000 1000000 1300000>;
                        opp-hz = /bits/ 64 <333000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@380000000 {
+               opp-380000000 {
                        opp-microvolt = <1100000 1100000 1300000>;
                        opp-hz = /bits/ 64 <380000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
                };
 
-               opp@600000000 {
+               opp-600000000 {
                        opp-microvolt = <1200000 1200000 1300000>;
                        opp-hz = /bits/ 64 <600000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@666000000 {
+               opp-666000000 {
                        opp-microvolt = <1200000 1200000 1300000>;
                        opp-hz = /bits/ 64 <666000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@760000000 {
+               opp-760000000 {
                        opp-microvolt = <1300000 1300000 1300000>;
                        opp-hz = /bits/ 64 <760000000>;
                        opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1300>;
+               };
+       };
+
+       host1x_dvfs_opp_table: opp-table-host1x {
+               compatible = "operating-points-v2";
+
+               opp-104500000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <104500000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-133000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <133000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-166000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <166000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+       };
+
+       mpe_dvfs_opp_table: opp-table-mpe {
+               compatible = "operating-points-v2";
+
+               opp-104500000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <104500000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-142500000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <142500000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-152000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <152000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-190000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <190000000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-190000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <190000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-228000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <228000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-228000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <228000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-237500000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <237500000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-266000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <266000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-275500000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <275500000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-300000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-300000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x000C>;
+                       required-opps = <&core_opp_1100>;
+               };
+       };
+
+       vi_dvfs_opp_table: opp-table-vi {
+               compatible = "operating-points-v2";
+
+               opp-85000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <85000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-100000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-150000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <150000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+       };
+
+       epp_dvfs_opp_table: opp-table-epp {
+               compatible = "operating-points-v2";
+
+               opp-133000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <133000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-171000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <171000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-247000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-300000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       gr2d_dvfs_opp_table: opp-table-gr2d {
+               compatible = "operating-points-v2";
+
+               opp-133000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <133000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-171000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <171000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-247000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-300000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       gr3d_dvfs_opp_table: opp-table-gr3d {
+               compatible = "operating-points-v2";
+
+               opp-114000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <114000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-161500000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <161500000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-161500000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <161500000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-209000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <209000000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-218500000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <218500000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-247000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-247000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-256500000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <256500000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-285000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-285000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-304000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <304000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-323000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <323000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-333500000-1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <333500000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1275>;
+               };
+
+               opp-333500000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <333500000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-351500000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <351500000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-361000000-1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <361000000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1275>;
+               };
+
+               opp-380000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <380000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-400000000-1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1275>;
+               };
+
+               opp-400000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       disp1_dvfs_opp_table: opp-table-disp1 {
+               compatible = "operating-points-v2";
+
+               opp-158000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <158000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-190000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <190000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+       };
+
+       disp2_dvfs_opp_table: opp-table-disp2 {
+               compatible = "operating-points-v2";
+
+               opp-158000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <158000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-190000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <190000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+       };
+
+       dsi_dvfs_opp_table: opp-table-dsi {
+               compatible = "operating-points-v2";
+
+               opp-100000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-500000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       hdmi_dvfs_opp_table: opp-table-hdmi {
+               compatible = "operating-points-v2";
+
+               opp-148500000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <148500000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       tvo_dvfs_opp_table: opp-table-tvo {
+               compatible = "operating-points-v2";
+
+               opp-250000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <250000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       sclk_dvfs_opp_table: opp-table-sclk {
+               compatible = "operating-points-v2";
+
+               opp-95000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <95000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-123500000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <123500000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-133000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <133000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-152000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <152000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-159500000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <159500000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-171000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <171000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-180500000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <180500000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-190000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <190000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-207000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <207000000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-218500000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <218500000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-222500000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <222500000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-229500000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <229500000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-240000000-1225 {
+                       opp-microvolt = <1225000 1225000 1300000>;
+                       opp-hz = /bits/ 64 <240000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1225>;
+               };
+
+               opp-240000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <240000000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-247000000-1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1275>;
+               };
+
+               opp-256500000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <256500000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-260000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <260000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-262000000-1300 {
+                       opp-microvolt = <1300000 1300000 1300000>;
+                       opp-hz = /bits/ 64 <262000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1300>;
+               };
+
+               opp-264000000-1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <264000000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1275>;
+               };
+
+               opp-277500000-1300 {
+                       opp-microvolt = <1300000 1300000 1300000>;
+                       opp-hz = /bits/ 64 <277500000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1300>;
+               };
+
+               opp-285000000-1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1275>;
+               };
+
+               opp-292500000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <292500000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-300000000-1300 {
+                       opp-microvolt = <1300000 1300000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1300>;
+               };
+
+               opp-300000000-1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1275>;
+               };
+       };
+
+       vde_dvfs_opp_table: opp-table-vde {
+               compatible = "operating-points-v2";
+
+               opp-95000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <95000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-123500000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <123500000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-123500000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <123500000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-152000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <152000000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-152000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <152000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-171000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <171000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-209000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <209000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-209000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <209000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-218500000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <218500000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-237500000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <237500000>;
+                       opp-supported-hw = <0x0002>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-275500000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <275500000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-285000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-300000000-1275 {
+                       opp-microvolt = <1275000 1275000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1275>;
+               };
+
+               opp-300000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-300000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1100>;
+               };
+       };
+
+       ndflash_dvfs_opp_table: opp-table-ndflash {
+               compatible = "operating-points-v2";
+
+               opp-130000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <130000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-150000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <150000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-158000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <158000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-164000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <164000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       nor_dvfs_opp_table: opp-table-nor {
+               compatible = "operating-points-v2";
+
+               opp-92000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <92000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       sdmmc1_dvfs_opp_table: opp-table-sdmmc1 {
+               compatible = "operating-points-v2";
+
+               opp-44000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <44000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       sdmmc2_dvfs_opp_table: opp-table-sdmmc2 {
+               compatible = "operating-points-v2";
+
+               opp-44000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <44000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       sdmmc3_dvfs_opp_table: opp-table-sdmmc3 {
+               compatible = "operating-points-v2";
+
+               opp-44000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <44000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       sdmmc4_dvfs_opp_table: opp-table-sdmmc4 {
+               compatible = "operating-points-v2";
+
+               opp-44000000-950 {
+                       opp-microvolt = <950000 950000 1300000>;
+                       opp-hz = /bits/ 64 <44000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1300000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       pcie_dvfs_opp_table: opp-table-pcie {
+               compatible = "operating-points-v2";
+
+               opp-250000000-1200 {
+                       opp-microvolt = <1200000 1200000 1300000>;
+                       opp-hz = /bits/ 64 <250000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       usbd_dvfs_opp_table: opp-table-usbd {
+               compatible = "operating-points-v2";
+
+               opp-480000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <480000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+       };
+
+       usb2_dvfs_opp_table: opp-table-usb2 {
+               compatible = "operating-points-v2";
+
+               opp-480000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <480000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+       };
+
+       usb3_dvfs_opp_table: opp-table-usb3 {
+               compatible = "operating-points-v2";
+
+               opp-480000000-1100 {
+                       opp-microvolt = <1100000 1100000 1300000>;
+                       opp-hz = /bits/ 64 <480000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
                };
        };
 };
index 5811b70..71a8236 100644 (file)
@@ -60,7 +60,7 @@
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 
-       vcc_24v_reg: regulator@100 {
+       vcc_24v_reg: regulator-24v0 {
                compatible = "regulator-fixed";
                regulator-name = "vcc_24v";
                regulator-min-microvolt = <24000000>;
@@ -68,7 +68,7 @@
                regulator-always-on;
        };
 
-       vdd_5v0_reg: regulator@101 {
+       vdd_5v0_reg: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v0";
                vin-supply = <&vcc_24v_reg>;
@@ -77,7 +77,7 @@
                regulator-always-on;
        };
 
-       vdd_3v3_reg: regulator@102 {
+       vdd_3v3_reg: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_3v3";
                vin-supply = <&vcc_24v_reg>;
@@ -86,7 +86,7 @@
                regulator-always-on;
        };
 
-       vdd_1v8_reg: regulator@103 {
+       vdd_1v8_reg: regulator-1v8 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v8";
                vin-supply = <&vdd_3v3_reg>;
index 92d494b..c4a6a6a 100644 (file)
                };
 
                gyrometer@68 {
-                       compatible = "invn,mpu3050";
+                       compatible = "invensense,mpu3050";
                        reg = <0x68>;
                        interrupt-parent = <&gpio>;
                        interrupts = <TEGRA_GPIO(Z, 4) IRQ_TYPE_LEVEL_HIGH>;
                                        regulator-always-on;
                                };
 
-                               sm0 {
+                               vdd_core: sm0 {
                                        regulator-name = "vdd_sm0,vdd_core";
                                        regulator-min-microvolt = <1300000>;
                                        regulator-max-microvolt = <1300000>;
                nvidia,core-pwr-good-time = <3845 3845>;
                nvidia,core-pwr-off-time = <3875>;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
        };
 
        memory-controller@7000f400 {
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
-                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
                default-brightness-level = <6>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                ddc-i2c-bus = <&lvds_ddc>;
        };
 
-       vdd_5v0_reg: regulator@0 {
+       vdd_5v0_reg: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v0";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       regulator@1 {
+       regulator-1v5 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v5";
                regulator-min-microvolt = <1500000>;
                gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
        };
 
-       regulator@2 {
+       regulator-1v2 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v2";
                regulator-min-microvolt = <1200000>;
                enable-active-high;
        };
 
-       vbus_reg: regulator@3 {
+       vbus_reg: regulator-vbus {
                compatible = "regulator-fixed";
                regulator-name = "vdd_vbus_wup1";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       vdd_pnl_reg: regulator@4 {
+       vdd_pnl_reg: regulator-pnl {
                compatible = "regulator-fixed";
                regulator-name = "vdd_pnl";
                regulator-min-microvolt = <2800000>;
                enable-active-high;
        };
 
-       vdd_bl_reg: regulator@5 {
+       vdd_bl_reg: regulator-bl {
                compatible = "regulator-fixed";
                regulator-name = "vdd_bl";
                regulator-min-microvolt = <2800000>;
                enable-active-high;
        };
 
-       vdd_hdmi: regulator@6 {
+       vdd_hdmi: regulator-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "VDDIO_HDMI";
                regulator-min-microvolt = <5000000>;
index dd4d506..de39c54 100644 (file)
                                        regulator-always-on;
                                };
 
-                               sm0 {
+                               vdd_core: sm0 {
                                        regulator-name = "vdd_sys_sm0,vdd_core";
                                        regulator-min-microvolt = <1200000>;
                                        regulator-max-microvolt = <1200000>;
                nvidia,core-pwr-good-time = <3845 3845>;
                nvidia,core-pwr-off-time = <3875>;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
        };
 
        pcie@80003000 {
                status = "okay";
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
        };
 
-       pci_vdd_reg: regulator@1 {
+       pci_vdd_reg: regulator-1v05 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v05";
                regulator-min-microvolt = <1050000>;
index 10ff09d..4f41c74 100644 (file)
@@ -69,7 +69,7 @@
                clock-names = "pll_a", "pll_a_out0", "mclk";
        };
 
-       vcc_24v_reg: regulator@100 {
+       vcc_24v_reg: regulator-24v {
                compatible = "regulator-fixed";
                regulator-name = "vcc_24v";
                regulator-min-microvolt = <24000000>;
@@ -77,7 +77,7 @@
                regulator-always-on;
        };
 
-       vdd_5v0_reg: regulator@101 {
+       vdd_5v0_reg: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v0";
                vin-supply = <&vcc_24v_reg>;
@@ -86,7 +86,7 @@
                regulator-always-on;
        };
 
-       vdd_3v3_reg: regulator@102 {
+       vdd_3v3_reg: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_3v3";
                vin-supply = <&vcc_24v_reg>;
@@ -95,7 +95,7 @@
                regulator-always-on;
        };
 
-       vdd_1v8_reg: regulator@103 {
+       vdd_1v8_reg: regulator-1v8 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v8";
                vin-supply = <&vdd_3v3_reg>;
index 4bc87bc..9d0c867 100644 (file)
        spi@7000c380 {
                status = "okay";
                spi-max-frequency = <48000000>;
-               spi-flash@0 {
+
+               flash@0 {
                        compatible = "winbond,w25q80bl", "jedec,spi-nor";
                        reg = <0>;
                        spi-max-frequency = <48000000>;
                nvidia,core-pwr-good-time = <3845 3845>;
                nvidia,core-pwr-off-time = <3875>;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
        };
 
        pcie@80003000 {
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
-                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
                bus-width = <4>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
        };
 
-       hdmi_vdd_reg: regulator@0 {
+       hdmi_vdd_reg: regulator-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "avdd_hdmi";
                regulator-min-microvolt = <3300000>;
                regulator-always-on;
        };
 
-       hdmi_pll_reg: regulator@1 {
+       hdmi_pll_reg: regulator-hdmipll {
                compatible = "regulator-fixed";
                regulator-name = "avdd_hdmi_pll";
                regulator-min-microvolt = <1800000>;
                regulator-always-on;
        };
 
-       vbus_reg: regulator@2 {
+       vbus_reg: regulator-vbus {
                compatible = "regulator-fixed";
                regulator-name = "usb1_vbus";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       pci_clk_reg: regulator@3 {
+       pci_clk_reg: regulator-pciclk {
                compatible = "regulator-fixed";
                regulator-name = "pci_clk";
                regulator-min-microvolt = <3300000>;
                regulator-always-on;
        };
 
-       pci_vdd_reg: regulator@4 {
+       pci_vdd_reg: regulator-pcivdd {
                compatible = "regulator-fixed";
                regulator-name = "pci_vdd";
                regulator-min-microvolt = <1050000>;
                regulator-always-on;
        };
 
+       vdd_core: regulator-core {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_core";
+               regulator-min-microvolt = <1300000>;
+               regulator-max-microvolt = <1300000>;
+               regulator-always-on;
+       };
+
        sound {
                compatible = "nvidia,tegra-audio-trimslice";
                nvidia,i2s-controller = <&tegra_i2s1>;
index 5a2578b..b0a0097 100644 (file)
                nvidia,core-pwr-good-time = <3845 3845>;
                nvidia,core-pwr-off-time = <458>;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
        };
 
        usb@c5000000 {
 
        usb@c5004000 {
                status = "okay";
-               nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
-                       GPIO_ACTIVE_LOW>;
        };
 
        usb-phy@c5004000 {
                default-brightness-level = <6>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                ddc-i2c-bus = <&lvds_ddc>;
        };
 
-       vdd_5v0_reg: regulator@0 {
+       vdd_5v0_reg: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v0";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       regulator@1 {
+       regulator-1v5 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v5";
                regulator-min-microvolt = <1500000>;
                gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
        };
 
-       regulator@2 {
+       regulator-1v2 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_1v2";
                regulator-min-microvolt = <1200000>;
                enable-active-high;
        };
 
-       vdd_pnl_reg: regulator@3 {
+       vdd_pnl_reg: regulator-pnl {
                compatible = "regulator-fixed";
                regulator-name = "vdd_pnl";
                regulator-min-microvolt = <2800000>;
                enable-active-high;
        };
 
-       vdd_bl_reg: regulator@4 {
+       vdd_bl_reg: regulator-bl {
                compatible = "regulator-fixed";
                regulator-name = "vdd_bl";
                regulator-min-microvolt = <2800000>;
index 9508248..62bf0b3 100644 (file)
                interrupt-names = "syncpt", "host1x";
                clocks = <&tegra_car TEGRA20_CLK_HOST1X>;
                clock-names = "host1x";
-               resets = <&tegra_car 28>;
-               reset-names = "host1x";
+               resets = <&tegra_car 28>, <&mc TEGRA20_MC_RESET_HC>;
+               reset-names = "host1x", "mc";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&host1x_dvfs_opp_table>;
 
                #address-cells = <1>;
                #size-cells = <1>;
@@ -55,6 +57,9 @@
                        clocks = <&tegra_car TEGRA20_CLK_MPE>;
                        resets = <&tegra_car 60>;
                        reset-names = "mpe";
+                       power-domains = <&pd_mpe>;
+                       operating-points-v2 = <&mpe_dvfs_opp_table>;
+                       status = "disabled";
                };
 
                vi@54080000 {
@@ -64,6 +69,9 @@
                        clocks = <&tegra_car TEGRA20_CLK_VI>;
                        resets = <&tegra_car 20>;
                        reset-names = "vi";
+                       power-domains = <&pd_venc>;
+                       operating-points-v2 = <&vi_dvfs_opp_table>;
+                       status = "disabled";
                };
 
                epp@540c0000 {
@@ -73,6 +81,9 @@
                        clocks = <&tegra_car TEGRA20_CLK_EPP>;
                        resets = <&tegra_car 19>;
                        reset-names = "epp";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&epp_dvfs_opp_table>;
+                       status = "disabled";
                };
 
                isp@54100000 {
@@ -82,6 +93,8 @@
                        clocks = <&tegra_car TEGRA20_CLK_ISP>;
                        resets = <&tegra_car 23>;
                        reset-names = "isp";
+                       power-domains = <&pd_venc>;
+                       status = "disabled";
                };
 
                gr2d@54140000 {
                        reg = <0x54140000 0x00040000>;
                        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&tegra_car TEGRA20_CLK_GR2D>;
-                       resets = <&tegra_car 21>;
-                       reset-names = "2d";
+                       resets = <&tegra_car 21>, <&mc TEGRA20_MC_RESET_2D>;
+                       reset-names = "2d", "mc";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&gr2d_dvfs_opp_table>;
                };
 
                gr3d@54180000 {
                        compatible = "nvidia,tegra20-gr3d";
                        reg = <0x54180000 0x00040000>;
                        clocks = <&tegra_car TEGRA20_CLK_GR3D>;
-                       resets = <&tegra_car 24>;
-                       reset-names = "3d";
+                       resets = <&tegra_car 24>, <&mc TEGRA20_MC_RESET_3D>;
+                       reset-names = "3d", "mc";
+                       power-domains = <&pd_3d>;
+                       operating-points-v2 = <&gr3d_dvfs_opp_table>;
                };
 
                dc@54200000 {
                        clock-names = "dc", "parent";
                        resets = <&tegra_car 27>;
                        reset-names = "dc";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&disp1_dvfs_opp_table>;
 
                        nvidia,head = <0>;
 
                        clock-names = "dc", "parent";
                        resets = <&tegra_car 26>;
                        reset-names = "dc";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&disp2_dvfs_opp_table>;
 
                        nvidia,head = <1>;
 
                        };
                };
 
-               hdmi@54280000 {
+               tegra_hdmi: hdmi@54280000 {
                        compatible = "nvidia,tegra20-hdmi";
                        reg = <0x54280000 0x00040000>;
                        interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "hdmi", "parent";
                        resets = <&tegra_car 51>;
                        reset-names = "hdmi";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&hdmi_dvfs_opp_table>;
+                       #sound-dai-cells = <0>;
                        status = "disabled";
                };
 
                        reg = <0x542c0000 0x00040000>;
                        interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&tegra_car TEGRA20_CLK_TVO>;
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&tvo_dvfs_opp_table>;
                        status = "disabled";
                };
 
                        clock-names = "dsi", "parent";
                        resets = <&tegra_car 48>;
                        reset-names = "dsi";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&dsi_dvfs_opp_table>;
                        status = "disabled";
                };
        };
                reg = <0x60006000 0x1000>;
                #clock-cells = <1>;
                #reset-cells = <1>;
+
+               sclk {
+                       compatible = "nvidia,tegra20-sclk";
+                       clocks = <&tegra_car TEGRA20_CLK_SCLK>;
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&sclk_dvfs_opp_table>;
+               };
        };
 
        flow-controller@60007000 {
                gpio-controller;
                #interrupt-cells = <2>;
                interrupt-controller;
-               /*
                gpio-ranges = <&pinmux 0 0 224>;
-               */
        };
 
        vde@6001a000 {
                clocks = <&tegra_car TEGRA20_CLK_VDE>;
                reset-names = "vde", "mc";
                resets = <&tegra_car 61>, <&mc TEGRA20_MC_RESET_VDE>;
+               power-domains = <&pd_vde>;
+               operating-points-v2 = <&vde_dvfs_opp_table>;
        };
 
        apbmisc@70000800 {
                status = "disabled";
        };
 
+       tegra_spdif: spdif@70002400 {
+               compatible = "nvidia,tegra20-spdif";
+               reg = <0x70002400 0x200>;
+               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&tegra_car TEGRA20_CLK_SPDIF_OUT>,
+                        <&tegra_car TEGRA20_CLK_SPDIF_IN>;
+               clock-names = "out", "in";
+               resets = <&tegra_car 10>;
+               dmas = <&apbdma 3>, <&apbdma 3>;
+               dma-names = "rx", "tx";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+
+               assigned-clocks = <&tegra_car TEGRA20_CLK_SPDIF_OUT>;
+               assigned-clock-parents = <&tegra_car TEGRA20_CLK_PLL_A_OUT0>;
+       };
+
        tegra_i2s1: i2s@70002800 {
                compatible = "nvidia,tegra20-i2s";
                reg = <0x70002800 0x200>;
                reset-names = "nand";
                assigned-clocks = <&tegra_car TEGRA20_CLK_NDFLASH>;
                assigned-clock-rates = <150000000>;
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&ndflash_dvfs_opp_table>;
                status = "disabled";
        };
 
                clock-names = "gmi";
                resets = <&tegra_car 42>;
                reset-names = "gmi";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&nor_dvfs_opp_table>;
                status = "disabled";
        };
 
                status = "disabled";
        };
 
-       i2c@7000c400 {
+       i2c2: i2c@7000c400 {
                compatible = "nvidia,tegra20-i2c";
                reg = <0x7000c400 0x100>;
                interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&tegra_car TEGRA20_CLK_PCLK>, <&clk32k_in>;
                clock-names = "pclk", "clk32k_in";
                #clock-cells = <1>;
+
+               pd_core: core-domain {
+                       #power-domain-cells = <0>;
+                       operating-points-v2 = <&core_opp_table>;
+               };
+
+               powergates {
+                       pd_3d: td {
+                               clocks = <&tegra_car TEGRA20_CLK_GR3D>;
+                               resets = <&mc TEGRA20_MC_RESET_3D>,
+                                        <&tegra_car TEGRA20_CLK_GR3D>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       pd_venc: venc {
+                               clocks = <&tegra_car TEGRA20_CLK_ISP>,
+                                        <&tegra_car TEGRA20_CLK_VI>,
+                                        <&tegra_car TEGRA20_CLK_CSI>;
+                               resets = <&mc TEGRA20_MC_RESET_ISP>,
+                                        <&mc TEGRA20_MC_RESET_VI>,
+                                        <&tegra_car TEGRA20_CLK_ISP>,
+                                        <&tegra_car 20 /* VI */>,
+                                        <&tegra_car TEGRA20_CLK_CSI>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       pd_vde: vdec {
+                               clocks = <&tegra_car TEGRA20_CLK_VDE>;
+                               resets = <&mc TEGRA20_MC_RESET_VDE>,
+                                        <&tegra_car TEGRA20_CLK_VDE>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       pd_mpe: mpe {
+                               clocks = <&tegra_car TEGRA20_CLK_MPE>;
+                               resets = <&mc TEGRA20_MC_RESET_MPEA>,
+                                        <&mc TEGRA20_MC_RESET_MPEB>,
+                                        <&mc TEGRA20_MC_RESET_MPEC>,
+                                        <&tegra_car TEGRA20_CLK_MPE>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+               };
        };
 
        mc: memory-controller@7000f000 {
                reg = <0x7000f400 0x400>;
                interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&tegra_car TEGRA20_CLK_EMC>;
+               power-domains = <&pd_core>;
                #address-cells = <1>;
                #size-cells = <0>;
                #interconnect-cells = <0>;
 
-               operating-points-v2 = <&emc_icc_dvfs_opp_table>;
                nvidia,memory-controller = <&mc>;
+               operating-points-v2 = <&emc_icc_dvfs_opp_table>;
        };
 
        fuse@7000f800 {
                         <&tegra_car 72>,
                         <&tegra_car 74>;
                reset-names = "pex", "afi", "pcie_x";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&pcie_dvfs_opp_table>;
+
                status = "disabled";
 
                pci@1,0 {
                reset-names = "usb";
                nvidia,needs-double-reset;
                nvidia,phy = <&phy1>;
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&usbd_dvfs_opp_table>;
                status = "disabled";
        };
 
                resets = <&tegra_car 58>;
                reset-names = "usb";
                nvidia,phy = <&phy2>;
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&usb2_dvfs_opp_table>;
                status = "disabled";
        };
 
                resets = <&tegra_car 59>;
                reset-names = "usb";
                nvidia,phy = <&phy3>;
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&usb3_dvfs_opp_table>;
                status = "disabled";
        };
 
                clock-names = "sdhci";
                resets = <&tegra_car 14>;
                reset-names = "sdhci";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sdmmc1_dvfs_opp_table>;
                status = "disabled";
        };
 
                clock-names = "sdhci";
                resets = <&tegra_car 9>;
                reset-names = "sdhci";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sdmmc2_dvfs_opp_table>;
                status = "disabled";
        };
 
                clock-names = "sdhci";
                resets = <&tegra_car 69>;
                reset-names = "sdhci";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sdmmc3_dvfs_opp_table>;
                status = "disabled";
        };
 
                clock-names = "sdhci";
                resets = <&tegra_car 15>;
                reset-names = "sdhci";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sdmmc4_dvfs_opp_table>;
                status = "disabled";
        };
 
                interrupt-affinity = <&{/cpus/cpu@0}>,
                                     <&{/cpus/cpu@1}>;
        };
+
+       sound-hdmi {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "NVIDIA Tegra20 HDMI";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               simple-audio-card,dai-link@0 {
+                       reg = <0>;
+
+                       cpu {
+                               sound-dai = <&tegra_spdif>;
+                       };
+
+                       codec {
+                               sound-dai = <&tegra_hdmi>;
+                       };
+               };
+       };
 };
index 9f653ef..93b83b3 100644 (file)
 
 &gpio {
        /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
-       pex-perst-n {
+       pex-perst-n-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
                output-high;
index 86e138e..fbfa75e 100644 (file)
 
 &gpio {
        /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
-       pex-perst-n {
+       pex-perst-n-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
                output-high;
index 6a3a72f..380f22a 100644 (file)
 
        serial@70006040 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006200 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006300 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        hdmi_ddc: i2c@7000c700 {
                        regulator-max-microvolt = <1400000>;
                        regulator-boot-on;
                        regulator-always-on;
-                       ti,vsel0-state-low;
-                       /* VSEL1: EN_CORE_DVFS_N low for DVFS */
-                       ti,vsel1-state-low;
                };
        };
 
index b2ac51f..9bdc4cb 100644 (file)
 
        serial@70006040 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006200 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006300 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        hdmi_ddc: i2c@7000c700 {
                        regulator-max-microvolt = <1400000>;
                        regulator-boot-on;
                        regulator-always-on;
-                       ti,vsel0-state-low;
-                       /* VSEL1: EN_CORE_DVFS_N low for DVFS */
-                       ti,vsel1-state-low;
                };
        };
 
diff --git a/arch/arm/boot/dts/tegra30-asus-lvds-display.dtsi b/arch/arm/boot/dts/tegra30-asus-lvds-display.dtsi
new file mode 100644 (file)
index 0000000..a047abf
--- /dev/null
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/* This dtsi file describes parts common for Asus T30 devices with a LVDS panel. */
+
+/ {
+       host1x@50000000 {
+               lcd: dc@54200000 {
+                       rgb {
+                               status = "okay";
+
+                               port@0 {
+                                       dpi_output: endpoint {
+                                               remote-endpoint = <&bridge_input>;
+                                               bus-width = <24>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       display-panel {
+               power-supply = <&vdd_pnl>;
+               ddc-i2c-bus = <&lcd_ddc>;
+               backlight = <&backlight>;
+
+               port {
+                       panel_input: endpoint {
+                               remote-endpoint = <&bridge_output>;
+                       };
+               };
+       };
+
+       /* Texas Instruments SN75LVDS83B LVDS Transmitter */
+       lvds-encoder {
+               compatible = "ti,sn75lvds83", "lvds-encoder";
+
+               powerdown-gpios = <&gpio TEGRA_GPIO(N, 6) GPIO_ACTIVE_LOW>;
+               power-supply = <&vdd_3v3_sys>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               bridge_input: endpoint {
+                                       remote-endpoint = <&dpi_output>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               bridge_output: endpoint {
+                                       remote-endpoint = <&panel_input>;
+                               };
+                       };
+               };
+       };
+};
index 07d4ea1..2c2ad2a 100644 (file)
@@ -8,6 +8,7 @@
 #include "tegra30.dtsi"
 #include "tegra30-cpu-opp.dtsi"
 #include "tegra30-cpu-opp-microvolt.dtsi"
+#include "tegra30-asus-lvds-display.dtsi"
 
 / {
        aliases {
                };
        };
 
-       host1x@50000000 {
-               dc@54200000 {
-                       rgb {
-                               status = "okay";
-
-                               port@0 {
-                                       lcd_output: endpoint {
-                                               remote-endpoint = <&lvds_encoder_input>;
-                                               bus-width = <24>;
-                                       };
-                               };
-                       };
-               };
-       };
-
        gpio@6000d000 {
                init-mode-hog {
                        gpio-hog;
 
        uartb: serial@70006040 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
                /* GPS BCM4751 */
        };
 
        uartc: serial@70006200 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
                status = "okay";
 
                nvidia,adjust-baud-rates = <0 9600 100>,
                nvidia,core-pwr-off-time = <0>;
                nvidia,core-power-req-active-high;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
        };
 
        ahub@70080000 {
        };
 
        /* PMIC has a built-in 32KHz oscillator which is used by PMC */
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32768>;
                 */
                compatible = "panel-lvds";
 
-               power-supply = <&vdd_pnl>;
-               backlight = <&backlight>;
-
                width-mm = <94>;
                height-mm = <150>;
                rotation = <180>;
 
                data-mapping = "jeida-24";
 
-               port {
-                       panel_input: endpoint {
-                               remote-endpoint = <&lvds_encoder_output>;
-                       };
-               };
+               /* DDC unconnected on Nexus 7 */
+               /delete-property/ ddc-i2c-bus;
        };
 
        firmware {
                };
        };
 
-       lvds-encoder {
-               compatible = "ti,sn75lvds83", "lvds-encoder";
-
-               powerdown-gpios = <&gpio TEGRA_GPIO(N, 6) GPIO_ACTIVE_LOW>;
-               power-supply = <&vdd_3v3_sys>;
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       port@0 {
-                               reg = <0>;
-
-                               lvds_encoder_input: endpoint {
-                                       remote-endpoint = <&lcd_output>;
-                               };
-                       };
-
-                       port@1 {
-                               reg = <1>;
-
-                               lvds_encoder_output: endpoint {
-                                       remote-endpoint = <&panel_input>;
-                               };
-                       };
-               };
-       };
-
-       vdd_5v0_sys: regulator@0 {
+       vdd_5v0_sys: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v0";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       vdd_3v3_sys: regulator@1 {
+       vdd_3v3_sys: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_3v3";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_pnl: regulator@2 {
+       vdd_pnl: regulator-panel {
                compatible = "regulator-fixed";
                regulator-name = "vdd_panel";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vcc_3v3_ts: regulator@3 {
+       vcc_3v3_ts: regulator-ts {
                compatible = "regulator-fixed";
                regulator-name = "ldo_s-1167_3v3";
                regulator-min-microvolt = <3300000>;
index 53966fa..cd28e87 100644 (file)
                };
        };
 
-       vdd_3v3_sys: regulator@1 {
+       vdd_3v3_sys: regulator-3v3 {
                gpio = <&pmic 3 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
 
-       regulator@4 {
+       regulator-usb {
                compatible = "regulator-fixed";
                regulator-name = "avdd_usb";
                regulator-min-microvolt = <3300000>;
index bcff099..6c229e1 100644 (file)
 };
 
 &emc_icc_dvfs_opp_table {
-       /delete-node/ opp@750000000,1300;
-       /delete-node/ opp@800000000,1300;
-       /delete-node/ opp@900000000,1350;
+       /delete-node/ opp-750000000-1300;
+       /delete-node/ opp-800000000-1300;
+       /delete-node/ opp-900000000-1350;
 };
 
 &emc_bw_dfs_opp_table {
-       /delete-node/ opp@750000000;
-       /delete-node/ opp@800000000;
-       /delete-node/ opp@900000000;
+       /delete-node/ opp-750000000;
+       /delete-node/ opp-800000000;
+       /delete-node/ opp-900000000;
 };
index 9365ae6..ee4a3f4 100644 (file)
                };
        };
 
-       vdd_3v3_sys: regulator@1 {
+       vdd_3v3_sys: regulator-3v3 {
                gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
index a044dbd..564cfcd 100644 (file)
                nfc@28 {
                        compatible = "nxp,pn544-i2c";
                        reg = <0x28>;
-                       clock-frequency = <100000>;
 
                        interrupt-parent = <&gpio>;
                        interrupts = <TEGRA_GPIO(X, 0) IRQ_TYPE_EDGE_RISING>;
index a681ad5..cd63e0e 100644 (file)
                        compatible = "nxp,pn544-i2c";
                        reg = <0x2a>;
 
-                       clock-frequency = <100000>;
-
                        interrupt-parent = <&gpio>;
                        interrupts = <TEGRA_GPIO(S, 7) IRQ_TYPE_EDGE_RISING>;
 
diff --git a/arch/arm/boot/dts/tegra30-asus-tf201.dts b/arch/arm/boot/dts/tegra30-asus-tf201.dts
new file mode 100644 (file)
index 0000000..315c6dc
--- /dev/null
@@ -0,0 +1,627 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "tegra30-asus-transformer-common.dtsi"
+#include "tegra30-asus-lvds-display.dtsi"
+
+/ {
+       model = "Asus Transformer Prime TF201";
+       compatible = "asus,tf201", "nvidia,tegra30";
+
+       pinmux@70000868 {
+               state_default: pinmux {
+                       lcd_pwr2_pc6 {
+                               nvidia,pins = "lcd_pwr2_pc6",
+                                               "lcd_dc1_pd2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb3 {
+                               nvidia,pins = "pbb3";
+                               nvidia,function = "vgp3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb7 {
+                               nvidia,pins = "pbb7";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kb_row7_pr7 {
+                               nvidia,pins = "kb_row7_pr7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_cs4_n_pk2 {
+                               nvidia,pins = "gmi_cs4_n_pk2";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+               };
+       };
+
+       serial@70006200 {
+               /* Azurewave AW-NH615 BCM4329B1 */
+               bluetooth {
+                       compatible = "brcm,bcm4329-bt";
+               };
+       };
+
+       i2c@7000c400 {
+               /* Atmel MXT768E touchscreen */
+               touchscreen@4d {
+                       compatible = "atmel,maxtouch";
+                       reg = <0x4d>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(H, 4) IRQ_TYPE_EDGE_FALLING>;
+                       reset-gpios = <&gpio TEGRA_GPIO(H, 6) GPIO_ACTIVE_LOW>;
+
+                       vdda-supply = <&vdd_3v3_sys>;
+                       vdd-supply  = <&vdd_3v3_sys>;
+               };
+       };
+
+       i2c@7000c500 {
+               clock-frequency = <100000>;
+
+               magnetometer@e {
+                       mount-matrix =  "-1",  "0",  "0",
+                                        "0", "-1",  "0",
+                                        "0",  "0", "-1";
+               };
+
+               gyroscope@68 {
+                       mount-matrix =   "0", "-1",  "0",
+                                       "-1",  "0",  "0",
+                                        "0",  "0", "-1";
+
+                       /* External I2C interface */
+                       i2c-gate {
+                               accelerometer@f {
+                                       mount-matrix =   "1",  "0",  "0",
+                                                        "0", "-1",  "0",
+                                                        "0",  "0",  "1";
+                               };
+                       };
+               };
+       };
+
+       i2c@7000d000 {
+               /* Realtek ALC5631 audio codec */
+               rt5631: audio-codec@1a {
+                       compatible = "realtek,rt5631";
+                       reg = <0x1a>;
+               };
+       };
+
+       memory-controller@7000f000 {
+               emc-timings-0 {
+                       /* Elpida 1GB EDB8132B2MA-8D-F LPDDR2 400MHz */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0x80000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x73e30303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0x80000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x72c30303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0x80000018
+                                       0x00000001 0x00000001 0x00000003 0x00000001
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060403 0x72430504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0x80000025
+                                       0x00000001 0x00000001 0x00000006 0x00000003
+                                       0x00000005 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000003 0x00000002
+                                       0x02030001 0x00070506 0x71e40a07 0x001f0000 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emem-configuration = < 0x00000006 0x80000048
+                                       0x00000002 0x00000003 0x0000000c 0x00000007
+                                       0x00000009 0x00000001 0x00000002 0x00000006
+                                       0x00000001 0x00000000 0x00000004 0x00000004
+                                       0x04040001 0x000d090c 0x71c6120d 0x001f0000 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* TF201 Unknown 1GB LPDDR2 500MHZ */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0x80000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x73e30303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0x80000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x72c30303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0x80000018
+                                       0x00000001 0x00000001 0x00000003 0x00000001
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060403 0x72430504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0x80000025
+                                       0x00000001 0x00000001 0x00000006 0x00000003
+                                       0x00000005 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000003 0x00000002
+                                       0x02030001 0x00070506 0x71e40a07 0x001f0000 >;
+                       };
+
+                       timing-500000000 {
+                               clock-frequency = <500000000>;
+
+                               nvidia,emem-configuration = < 0x00000007 0x8000005a
+                                       0x00000003 0x00000004 0x0000000e 0x00000009
+                                       0x0000000c 0x00000002 0x00000002 0x00000008
+                                       0x00000001 0x00000000 0x00000004 0x00000005
+                                       0x05040001 0x00100a0e 0x71c8170f 0x001f0000 >;
+                       };
+               };
+       };
+
+       memory-controller@7000f400 {
+               emc-timings-0 {
+                       /* Elpida 1GB EDB8132B2MA-8D-F LPDDR2 400MHz */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000003 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x00000060 0x00000000 0x00000018
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000004 0x00000004
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x0000006b 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x00780084
+                                       0x00008000 0x00098000 0x00098000 0x00098000
+                                       0x00098000 0x00000010 0x00000010 0x00000010
+                                       0x00000010 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000008 0x00000008 0x00000008
+                                       0x00000008 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00000000
+                                       0x00000009 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x800001c5 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000003
+                                       0x00000006 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x000000c0 0x00000000 0x00000030
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000008 0x00000008
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000000d5 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x00780084
+                                       0x00008000 0x00098000 0x00098000 0x00098000
+                                       0x00098000 0x00000010 0x00000010 0x00000010
+                                       0x00000010 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000018 0x00000018 0x00000018
+                                       0x00000018 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00000000
+                                       0x00000009 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x0000000a>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000006
+                                       0x0000000d 0x00000004 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x00000181 0x00000000 0x00000060
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x0000000f 0x0000000f
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000001a9 0x00000004 0x00000006
+                                       0x00000000 0x00000000 0x00004282 0x00780084
+                                       0x00008000 0x000a0000 0x000a0000 0x000a0000
+                                       0x000a0000 0x00000010 0x00000010 0x00000010
+                                       0x00000010 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000008 0x00000008 0x00000008
+                                       0x00000008 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00120220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00000000
+                                       0x0000000a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010042>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000013>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000c
+                                       0x0000001a 0x00000008 0x00000003 0x00000005
+                                       0x00000004 0x00000001 0x00000006 0x00000003
+                                       0x00000003 0x00000002 0x00000002 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000c
+                                       0x0000000a 0x00000303 0x00000000 0x000000c0
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000007 0x0000001d 0x0000001d
+                                       0x00000004 0x0000000b 0x00000005 0x00000004
+                                       0x00000002 0x00000351 0x00000004 0x00000006
+                                       0x00000000 0x00000000 0x00004282 0x00440084
+                                       0x00008000 0x00074000 0x00074000 0x00074000
+                                       0x00074000 0x00000010 0x00000010 0x00000010
+                                       0x00000010 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000018 0x00000018 0x00000018
+                                       0x00000018 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00078000 0x00078000 0x00078000
+                                       0x00078000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00000000
+                                       0x00000013 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010082>;
+                               nvidia,emc-mode-2 = <0x00020004>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000024>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000017
+                                       0x00000033 0x00000010 0x00000007 0x00000007
+                                       0x00000007 0x00000002 0x0000000a 0x00000007
+                                       0x00000007 0x00000003 0x00000002 0x00000000
+                                       0x00000003 0x00000007 0x00000004 0x0000000d
+                                       0x0000000e 0x000005e9 0x00000000 0x0000017a
+                                       0x00000002 0x00000002 0x00000007 0x00000000
+                                       0x00000001 0x0000000c 0x00000038 0x00000038
+                                       0x00000006 0x00000014 0x00000009 0x00000004
+                                       0x00000002 0x00000680 0x00000000 0x00000006
+                                       0x00000000 0x00000000 0x00006282 0x001d0084
+                                       0x00008000 0x0002c000 0x0002c000 0x0002c000
+                                       0x0002c000 0x00000010 0x00000010 0x00000010
+                                       0x00000010 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000008 0x00000008 0x00000008
+                                       0x00000008 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00048000 0x00048000 0x00048000
+                                       0x00048000 0x000c0220 0x0800003d 0x00000000
+                                       0x77ffc004 0x01f1f408 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00000000
+                                       0x00000024 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000ce6 0xe0000000 0xff00ff88 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* TF201 Unknown 1GB LPDDR2 500MHZ */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000003 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x00000009 0x00000060 0x00000000 0x00000018
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000004 0x00000004
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x0000006b 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x00780084
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000000a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x800001c5 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000003
+                                       0x00000006 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x00000009 0x000000c0 0x00000000 0x00000030
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000008 0x00000008
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000000d5 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x00780084
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000013 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x0000000a>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000006
+                                       0x0000000d 0x00000004 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x00000009 0x00000181 0x00000000 0x00000060
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x0000000f 0x0000000f
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000001a9 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x00780084
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000025 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010042>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000013>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000c
+                                       0x0000001a 0x00000008 0x00000003 0x00000005
+                                       0x00000004 0x00000001 0x00000006 0x00000003
+                                       0x00000003 0x00000002 0x00000002 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000c
+                                       0x0000000a 0x00000303 0x00000000 0x000000c0
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000007 0x0000001d 0x0000001d
+                                       0x00000004 0x0000000b 0x00000005 0x00000004
+                                       0x00000002 0x00000351 0x00000004 0x00000006
+                                       0x00000000 0x00000000 0x00004282 0x00440084
+                                       0x00008000 0x00060000 0x00060000 0x00060000
+                                       0x00060000 0x00072000 0x00072000 0x00072000
+                                       0x00072000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000d0000 0x000d0000 0x000d0000
+                                       0x000d0000 0x000e0220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000004a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-500000000 {
+                               clock-frequency = <500000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x000100c2>;
+                               nvidia,emc-mode-2 = <0x00020005>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x0000002d>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000001d
+                                       0x00000040 0x00000014 0x00000008 0x00000007
+                                       0x00000009 0x00000003 0x0000000d 0x00000008
+                                       0x00000008 0x00000004 0x00000002 0x00000000
+                                       0x00000004 0x00000008 0x00000005 0x0000000d
+                                       0x0000000f 0x00000763 0x00000000 0x000001d8
+                                       0x00000003 0x00000003 0x00000008 0x00000000
+                                       0x00000001 0x0000000e 0x00000046 0x00000046
+                                       0x00000008 0x00000019 0x0000000b 0x00000004
+                                       0x00000002 0x00000820 0x00000000 0x00000006
+                                       0x00000000 0x00000000 0x00006282 0xf0140091
+                                       0x00008000 0x00000008 0x00000008 0x00000008
+                                       0x00000008 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000c 0x0000000c 0x0000000c
+                                       0x0000000c 0x00080220 0x0800003d 0x00000000
+                                       0x77ffc004 0x01f1f408 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x000000b4 0x000d000d 0xa0f10404 0x00000000
+                                       0x00000000 0x80000fde 0xe0000000 0xff00ff88 >;
+                       };
+               };
+       };
+
+       usb-phy@7d000000 {
+               /delete-property/ nvidia,xcvr-setup-use-fuses;
+               nvidia,xcvr-setup = <5>;      /* Based on TF201 fuse value - 48 */
+       };
+
+       usb-phy@7d008000 {
+               /delete-property/ nvidia,xcvr-setup-use-fuses;
+               nvidia,xcvr-setup = <5>;      /* Based on TF201 fuse value - 48 */
+       };
+
+       display-panel {
+               compatible = "hannstar,hsd101pww2";
+       };
+
+       haptic-feedback {
+               compatible = "gpio-vibrator";
+               enable-gpios = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_HIGH>;
+               vcc-supply = <&vdd_3v3_sys>;
+       };
+};
+
+&emc_icc_dvfs_opp_table {
+       /delete-node/ opp-533000000-1200;
+       /delete-node/ opp-625000000-1200;
+       /delete-node/ opp-625000000-1250;
+       /delete-node/ opp-667000000-1200;
+       /delete-node/ opp-750000000-1300;
+       /delete-node/ opp-800000000-1300;
+       /delete-node/ opp-900000000-1350;
+};
+
+&emc_bw_dfs_opp_table {
+       /delete-node/ opp-533000000;
+       /delete-node/ opp-625000000;
+       /delete-node/ opp-667000000;
+       /delete-node/ opp-750000000;
+       /delete-node/ opp-800000000;
+       /delete-node/ opp-900000000;
+};
diff --git a/arch/arm/boot/dts/tegra30-asus-tf300t.dts b/arch/arm/boot/dts/tegra30-asus-tf300t.dts
new file mode 100644 (file)
index 0000000..f474348
--- /dev/null
@@ -0,0 +1,1034 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "tegra30-asus-transformer-common.dtsi"
+#include "tegra30-asus-lvds-display.dtsi"
+
+/ {
+       model = "Asus Transformer Pad TF300T";
+       compatible = "asus,tf300t", "nvidia,tegra30";
+
+       gpio@6000d000 {
+               tf300t-init-hog {
+                       gpio-hog;
+                       gpios = <TEGRA_GPIO(BB, 5) GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
+       };
+
+       pinmux@70000868 {
+               state_default: pinmux {
+                       lcd_pwr2_pc6 {
+                               nvidia,pins = "lcd_pwr2_pc6",
+                                               "lcd_dc1_pd2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb3 {
+                               nvidia,pins = "pbb3";
+                               nvidia,function = "vgp3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb7 {
+                               nvidia,pins = "pbb7";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kb_row7_pr7 {
+                               nvidia,pins = "kb_row7_pr7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_cs4_n_pk2 {
+                               nvidia,pins = "gmi_cs4_n_pk2";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+               };
+       };
+
+       serial@70006200 {
+               /* Azurewave AW-NH615 BCM4329B1 */
+               bluetooth {
+                       compatible = "brcm,bcm4329-bt";
+               };
+       };
+
+       i2c@7000c400 {
+               /* Elantech EKTH1036 touchscreen */
+               touchscreen@10 {
+                       compatible = "elan,ektf3624";
+                       reg = <0x10>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(H, 4) IRQ_TYPE_EDGE_FALLING>;
+                       reset-gpios = <&gpio TEGRA_GPIO(H, 6) GPIO_ACTIVE_LOW>;
+
+                       vcc33-supply = <&vdd_3v3_sys>;
+                       vccio-supply = <&vdd_3v3_sys>;
+
+                       touchscreen-size-x = <2240>;
+                       touchscreen-size-y = <1408>;
+                       touchscreen-inverted-y;
+               };
+       };
+
+       i2c@7000c500 {
+               clock-frequency = <400000>;
+
+               magnetometer@e {
+                       mount-matrix =   "0", "-1",  "0",
+                                       "-1",  "0",  "0",
+                                        "0",  "0", "-1";
+               };
+
+               gyroscope@68 {
+                       mount-matrix =   "-1",  "0",  "0",
+                                         "0",  "1",  "0",
+                                         "0",  "0", "-1";
+
+                       /* External I2C interface */
+                       i2c-gate {
+                               accelerometer@f {
+                                       mount-matrix =   "0", "-1",  "0",
+                                                       "-1",  "0",  "0",
+                                                        "0",  "0",  "1";
+                               };
+                       };
+               };
+       };
+
+       i2c@7000d000 {
+               /* Wolfson Microelectronics WM8903 audio codec */
+               wm8903: audio-codec@1a {
+                       compatible = "wlf,wm8903";
+                       reg = <0x1a>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_LOW>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       micdet-cfg = <0>;
+                       micdet-delay = <100>;
+
+                       gpio-cfg = <
+                               0xffffffff /* don't touch */
+                               0xffffffff /* don't touch */
+                               0x00000000 /* Speaker-enable GPIO, output, low */
+                               0xffffffff /* don't touch */
+                               0xffffffff /* don't touch */
+                       >;
+
+                       AVDD-supply  = <&vdd_1v8_vio>;
+                       CPVDD-supply = <&vdd_1v8_vio>;
+                       DBVDD-supply = <&vdd_1v8_vio>;
+                       DCVDD-supply = <&vdd_1v8_vio>;
+               };
+       };
+
+       memory-controller@7000f000 {
+               emc-timings-0 {
+                       /* Elpida 1GB 667MHZ */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00030003 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x74830303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010003 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x73430303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000030
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0503 0x72830504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000006 0xc0000025
+                                       0x00000001 0x00000001 0x00000005 0x00000002
+                                       0x00000003 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0505 0x72440a06 0x001f0000 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emem-configuration = < 0x0000000a 0xc000003d
+                                       0x00000001 0x00000002 0x00000008 0x00000004
+                                       0x00000004 0x00000001 0x00000002 0x00000007
+                                       0x00000002 0x00000002 0x00000003 0x00000006
+                                       0x06030202 0x000b0608 0x70850f09 0x001f0000 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emem-configuration = < 0x00000014 0xc0000079
+                                       0x00000003 0x00000004 0x00000010 0x0000000b
+                                       0x0000000a 0x00000001 0x00000003 0x0000000b
+                                       0x00000002 0x00000002 0x00000004 0x00000008
+                                       0x08040202 0x00130b10 0x70ea1f11 0x001f0000 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* Hynix 1GB 667MHZ */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00030003 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x74830303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010003 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x73430303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000030
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0503 0x72830504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000006 0xc0000025
+                                       0x00000001 0x00000001 0x00000005 0x00000002
+                                       0x00000003 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0605 0x72440a06 0x001f0000 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emem-configuration = < 0x0000000a 0xc000003d
+                                       0x00000001 0x00000002 0x00000008 0x00000005
+                                       0x00000004 0x00000001 0x00000002 0x00000007
+                                       0x00000002 0x00000002 0x00000003 0x00000006
+                                       0x06030202 0x000b0608 0x70850f09 0x001f0000 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emem-configuration = < 0x00000014 0xc0000079
+                                       0x00000003 0x00000004 0x00000011 0x0000000b
+                                       0x0000000a 0x00000001 0x00000003 0x0000000b
+                                       0x00000002 0x00000002 0x00000004 0x00000008
+                                       0x08040202 0x00140b11 0x70ea1f12 0x001f0000 >;
+                       };
+               };
+
+               emc-timings-2 {
+                       /* Micron 1GB 667MHZ */
+                       nvidia,ram-code = <2>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x74830303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x73430303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000030
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0503 0x72830504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000005 0x00000002
+                                       0x00000003 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0505 0x72440a06 0x001f0000 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emem-configuration = < 0x00000005 0xc000003d
+                                       0x00000001 0x00000002 0x00000008 0x00000004
+                                       0x00000004 0x00000001 0x00000002 0x00000007
+                                       0x00000002 0x00000002 0x00000003 0x00000006
+                                       0x06030202 0x000b0608 0x70850f09 0x001f0000 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emem-configuration = < 0x0000000a 0xc0000079
+                                       0x00000003 0x00000004 0x00000010 0x0000000a
+                                       0x0000000a 0x00000001 0x00000003 0x0000000b
+                                       0x00000002 0x00000002 0x00000004 0x00000008
+                                       0x08040202 0x00140b10 0x70ea1f11 0x001f0000 >;
+                       };
+               };
+       };
+
+       memory-controller@7000f400 {
+               emc-timings-0 {
+                       /* Elpida 1GB 667MHZ */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000004 0x00000000 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x000000c0 0x00000000 0x00000030
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000005 0x00000005
+                                       0x00000004 0x00000001 0x00000000 0x00000004
+                                       0x00000005 0x000000c7 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000002
+                                       0x00000008 0x00000001 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x00000181 0x00000000 0x00000060
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000009 0x00000009
+                                       0x00000004 0x00000002 0x00000000 0x00000004
+                                       0x00000005 0x0000018e 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000004
+                                       0x00000010 0x00000003 0x00000001 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000001
+                                       0x00000001 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x00000303 0x00000000 0x000000c0
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000012 0x00000012
+                                       0x00000004 0x00000004 0x00000000 0x00000004
+                                       0x00000005 0x0000031c 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000a
+                                       0x00000020 0x00000007 0x00000002 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000002
+                                       0x00000002 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x00000607 0x00000000 0x00000181
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000023 0x00000023
+                                       0x00000004 0x00000007 0x00000000 0x00000004
+                                       0x00000005 0x00000638 0x00000006 0x00000006
+                                       0x00000000 0x00000000 0x00004288 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00020000
+                                       0x00000100 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000d22 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-reset = <0x80000321>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+
+                               nvidia,emc-configuration =  < 0x0000000f
+                                       0x00000034 0x0000000a 0x00000003 0x00000003
+                                       0x00000008 0x00000002 0x00000009 0x00000003
+                                       0x00000003 0x00000002 0x00000001 0x00000000
+                                       0x00000004 0x00000006 0x00000004 0x0000000a
+                                       0x0000000c 0x000009e9 0x00000000 0x0000027a
+                                       0x00000001 0x00000008 0x00000001 0x00000000
+                                       0x00000007 0x0000000e 0x00000039 0x00000200
+                                       0x00000004 0x0000000a 0x00000000 0x00000004
+                                       0x00000005 0x00000a2a 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00007088 0x002600a4
+                                       0x00008000 0x0003c000 0x0003c000 0x0003c000
+                                       0x0003c000 0x00014000 0x00014000 0x00014000
+                                       0x00014000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00048000 0x00048000 0x00048000
+                                       0x00048000 0x000002a0 0x0800013d 0x00000000
+                                       0x77fff884 0x01f1f508 0x05057404 0x54000007
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x018b000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800014d4 0xe8000000 0xff00ff89 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-reset = <0x80000b71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000001f
+                                       0x00000069 0x00000017 0x00000007 0x00000005
+                                       0x0000000c 0x00000003 0x00000011 0x00000007
+                                       0x00000007 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000a 0x00000009 0x0000000a
+                                       0x00000011 0x00001412 0x00000000 0x00000504
+                                       0x00000002 0x0000000e 0x00000001 0x00000000
+                                       0x0000000c 0x00000016 0x00000072 0x00000200
+                                       0x00000005 0x00000015 0x00000000 0x00000006
+                                       0x00000007 0x00001453 0x0000000b 0x00000006
+                                       0x00000000 0x00000000 0x00005088 0xf00b0191
+                                       0x00008000 0x00000008 0x00000008 0x00000008
+                                       0x00000008 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x000002a0 0x0800013d 0x22220000
+                                       0x77fff884 0x01f1f501 0x07077404 0x54000000
+                                       0x080001e8 0x0f000021 0x00000802 0x00020000
+                                       0x00000100 0x0156000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800028a5 0xe8000000 0xff00ff49 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* Hynix 1GB 667MHZ */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000004 0x00000000 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x000000c0 0x00000000 0x00000030
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000005 0x00000005
+                                       0x00000004 0x00000001 0x00000000 0x00000004
+                                       0x00000005 0x000000c7 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000002
+                                       0x00000008 0x00000001 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x00000181 0x00000000 0x00000060
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000009 0x00000009
+                                       0x00000004 0x00000002 0x00000000 0x00000004
+                                       0x00000005 0x0000018e 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000005
+                                       0x00000010 0x00000003 0x00000001 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000001
+                                       0x00000001 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x00000303 0x00000000 0x000000c0
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000012 0x00000012
+                                       0x00000004 0x00000004 0x00000000 0x00000004
+                                       0x00000005 0x0000031c 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000a
+                                       0x00000020 0x00000007 0x00000003 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000002
+                                       0x00000002 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x00000607 0x00000000 0x00000181
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000023 0x00000023
+                                       0x00000004 0x00000007 0x00000000 0x00000004
+                                       0x00000005 0x00000638 0x00000006 0x00000006
+                                       0x00000000 0x00000000 0x00004288 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00020000
+                                       0x00000100 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000d22 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-reset = <0x80000321>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+
+                               nvidia,emc-configuration =  < 0x0000000f
+                                       0x00000034 0x0000000b 0x00000003 0x00000003
+                                       0x00000008 0x00000002 0x00000009 0x00000003
+                                       0x00000003 0x00000002 0x00000001 0x00000000
+                                       0x00000004 0x00000006 0x00000004 0x0000000a
+                                       0x0000000c 0x000009e9 0x00000000 0x0000027a
+                                       0x00000001 0x00000008 0x00000001 0x00000000
+                                       0x00000007 0x0000000e 0x00000039 0x00000200
+                                       0x00000004 0x0000000a 0x00000000 0x00000004
+                                       0x00000005 0x00000a2a 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00007088 0x002600a4
+                                       0x00008000 0x0003c000 0x0003c000 0x0003c000
+                                       0x0003c000 0x00014000 0x00014000 0x00014000
+                                       0x00014000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00048000 0x00048000 0x00048000
+                                       0x00048000 0x000002a0 0x0800013d 0x00000000
+                                       0x77fff884 0x01f1f508 0x05057404 0x54000007
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x018b000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800014d4 0xe8000000 0xff00ff89 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-reset = <0x80000b71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000020
+                                       0x0000006a 0x00000018 0x00000008 0x00000005
+                                       0x0000000c 0x00000003 0x00000011 0x00000007
+                                       0x00000007 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000a 0x00000009 0x0000000a
+                                       0x00000011 0x00001412 0x00000000 0x00000504
+                                       0x00000002 0x0000000e 0x00000001 0x00000000
+                                       0x0000000c 0x00000016 0x00000072 0x00000200
+                                       0x00000005 0x00000015 0x00000000 0x00000006
+                                       0x00000007 0x00001453 0x0000000b 0x00000006
+                                       0x00000000 0x00000000 0x00005088 0xf00b0191
+                                       0x00008000 0x00000008 0x00000008 0x00000008
+                                       0x00000008 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000c 0x0000000c 0x0000000c
+                                       0x0000000c 0x000002a0 0x0800013d 0x22220000
+                                       0x77fff884 0x01f1f501 0x07077404 0x54000000
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x0155000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800028a5 0xe8000000 0xff00ff49 >;
+                       };
+               };
+
+               emc-timings-2 {
+                       /* Micron 1GB 667MHZ */
+                       nvidia,ram-code = <2>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000004 0x00000000 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x000000c0 0x00000000 0x00000030
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000005 0x00000005
+                                       0x00000004 0x00000001 0x00000000 0x00000004
+                                       0x00000005 0x000000c7 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000002
+                                       0x00000008 0x00000001 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x00000009
+                                       0x0000000b 0x00000181 0x00000000 0x00000060
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000009 0x00000009
+                                       0x00000004 0x00000002 0x00000000 0x00000004
+                                       0x00000005 0x0000018e 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000004
+                                       0x00000010 0x00000003 0x00000001 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000001
+                                       0x00000001 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000303 0x00000000 0x000000c0
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000012 0x00000012
+                                       0x00000004 0x00000004 0x00000000 0x00000004
+                                       0x00000005 0x0000031c 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xd8000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000009
+                                       0x00000020 0x00000007 0x00000002 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000002
+                                       0x00000002 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000607 0x00000000 0x00000181
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000023 0x00000023
+                                       0x00000004 0x00000007 0x00000000 0x00000004
+                                       0x00000005 0x00000638 0x00000006 0x00000006
+                                       0x00000000 0x00000000 0x00004288 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00020000
+                                       0x00000100 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000d22 0xd8000000 0xff00ff00 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200040>;
+                               nvidia,emc-mode-reset = <0x80000321>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+
+                               nvidia,emc-configuration =  < 0x0000000f
+                                       0x00000034 0x0000000a 0x00000003 0x00000003
+                                       0x00000008 0x00000002 0x00000009 0x00000003
+                                       0x00000003 0x00000002 0x00000001 0x00000000
+                                       0x00000004 0x00000006 0x00000004 0x0000000a
+                                       0x0000000c 0x000009e9 0x00000000 0x0000027a
+                                       0x00000001 0x00000008 0x00000001 0x00000000
+                                       0x00000007 0x0000000e 0x00000039 0x00000200
+                                       0x00000004 0x0000000a 0x00000000 0x00000004
+                                       0x00000005 0x00000a2a 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00007088 0x002600a4
+                                       0x00008000 0x0003c000 0x0003c000 0x0003c000
+                                       0x0003c000 0x00014000 0x00014000 0x00014000
+                                       0x00014000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00048000 0x00048000 0x00048000
+                                       0x00048000 0x000002a0 0x0800013d 0x00000000
+                                       0x77fff884 0x01f1f508 0x05057404 0x54000007
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x018b000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800014d4 0xe8000000 0xff00ff89 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200058>;
+                               nvidia,emc-mode-reset = <0x80000b71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000001f
+                                       0x00000069 0x00000016 0x00000007 0x00000005
+                                       0x0000000c 0x00000003 0x00000011 0x00000008
+                                       0x00000008 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000a 0x00000009 0x0000000b
+                                       0x00000011 0x00001412 0x00000000 0x00000504
+                                       0x00000002 0x0000000e 0x00000001 0x00000000
+                                       0x0000000c 0x00000016 0x00000072 0x00000200
+                                       0x00000005 0x00000015 0x00000000 0x00000006
+                                       0x00000007 0x00001453 0x0000000b 0x00000006
+                                       0x00000000 0x00000000 0x00005088 0xf00b0191
+                                       0x00008000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000c 0x0000000c 0x0000000c
+                                       0x0000000c 0x000002a0 0x0800013d 0x22220000
+                                       0x77fff884 0x01f1f501 0x07077404 0x54000000
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x0156000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800028a5 0xf8000000 0xff00ff49 >;
+                       };
+               };
+       };
+
+       display-panel {
+               compatible = "innolux,g101ice-l01";
+       };
+
+       sound {
+               compatible = "asus,tegra-audio-wm8903-tf300t",
+                            "nvidia,tegra-audio-wm8903";
+               nvidia,model = "Asus Transformer Pad TF300T WM8903";
+
+               nvidia,audio-routing =
+                       "Headphone Jack", "HPOUTR",
+                       "Headphone Jack", "HPOUTL",
+                       "Int Spk", "ROP",
+                       "Int Spk", "RON",
+                       "Int Spk", "LOP",
+                       "Int Spk", "LON",
+                       "IN1L", "Mic Jack",
+                       "IN2L", "Mic Jack",
+                       "DMICDAT", "Int Mic";
+
+               nvidia,audio-codec = <&wm8903>;
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,headset;
+       };
+};
+
+&emc_icc_dvfs_opp_table {
+       /delete-node/ opp-750000000-1300;
+       /delete-node/ opp-800000000-1300;
+       /delete-node/ opp-900000000-1350;
+};
+
+&emc_bw_dfs_opp_table {
+       /delete-node/ opp-750000000;
+       /delete-node/ opp-800000000;
+       /delete-node/ opp-900000000;
+};
diff --git a/arch/arm/boot/dts/tegra30-asus-tf300tg.dts b/arch/arm/boot/dts/tegra30-asus-tf300tg.dts
new file mode 100644 (file)
index 0000000..96345f8
--- /dev/null
@@ -0,0 +1,1087 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "tegra30-asus-transformer-common.dtsi"
+#include "tegra30-asus-lvds-display.dtsi"
+
+/ {
+       model = "Asus Transformer Pad 3G TF300TG";
+       compatible = "asus,tf300tg", "nvidia,tegra30";
+
+       gpio@6000d000 {
+               tf300tg-init-hog {
+                       gpio-hog;
+                       gpios = <TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(D, 2) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(P, 1) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(X, 5) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(W, 3) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(R, 3) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(U, 5) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(X, 7) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(X, 0) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(Y, 2) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(Y, 3) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(EE, 1) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(U, 3) GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
+       };
+
+       pinmux@70000868 {
+               state_default: pinmux {
+                       pbb3 {
+                               nvidia,pins = "pbb3";
+                               nvidia,function = "vgp3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb7 {
+                               nvidia,pins = "pbb7";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_cs4_n_pk2 {
+                               nvidia,pins = "gmi_cs4_n_pk2";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       lcd_pwr2_pc6 {
+                               nvidia,pins = "lcd_pwr2_pc6",
+                                               "lcd_dc1_pd2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row7_pr7 {
+                               nvidia,pins = "kb_row7_pr7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi2_cs2_n_pw3 {
+                               nvidia,pins = "spi2_cs2_n_pw3";
+                               nvidia,function = "spi2";
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       dap3_din_pp1 {
+                               nvidia,pins = "dap3_din_pp1";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi1_sck_px5 {
+                               nvidia,pins = "spi1_sck_px5";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pu5 {
+                               nvidia,pins = "pu5";
+                               nvidia,function = "pwm2";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       spi2_mosi_px0 {
+                               nvidia,pins = "spi2_mosi_px0";
+                               nvidia,function = "spi2";
+                       };
+
+                       spi1_miso_px7 {
+                               nvidia,pins = "spi1_miso_px7";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk3_req_pee1 {
+                               nvidia,pins = "clk3_req_pee1";
+                               nvidia,function = "dev3";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi_nxt_py2 {
+                               nvidia,pins = "ulpi_nxt_py2";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_stp_py3 {
+                               nvidia,pins = "ulpi_stp_py3";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pu3 {
+                               nvidia,pins = "pu3";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       dap1_din_pn1 {
+                               nvidia,pins = "dap1_din_pn1";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+               };
+       };
+
+       serial@70006200 {
+               /* Azurewave AW-NH615 BCM4329B1 */
+               bluetooth {
+                       compatible = "brcm,bcm4329-bt";
+               };
+       };
+
+       i2c@7000c400 {
+               /* Elantech EKTH1036 touchscreen */
+               touchscreen@10 {
+                       compatible = "elan,ektf3624";
+                       reg = <0x10>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(H, 4) IRQ_TYPE_EDGE_FALLING>;
+                       reset-gpios = <&gpio TEGRA_GPIO(H, 6) GPIO_ACTIVE_LOW>;
+
+                       vcc33-supply = <&vdd_3v3_sys>;
+                       vccio-supply = <&vdd_3v3_sys>;
+
+                       touchscreen-size-x = <2240>;
+                       touchscreen-size-y = <1408>;
+                       touchscreen-inverted-y;
+               };
+       };
+
+       i2c@7000c500 {
+               clock-frequency = <400000>;
+
+               magnetometer@e {
+                       mount-matrix =   "1",  "0",  "0",
+                                        "0", "-1",  "0",
+                                        "0",  "0", "-1";
+               };
+
+               gyroscope@68 {
+                       mount-matrix =   "-1",  "0",  "0",
+                                         "0",  "1",  "0",
+                                         "0",  "0", "-1";
+
+                       /* External I2C interface */
+                       i2c-gate {
+                               accelerometer@f {
+                                       mount-matrix =   "0", "-1",  "0",
+                                                       "-1",  "0",  "0",
+                                                        "0",  "0",  "1";
+                               };
+                       };
+               };
+       };
+
+       i2c@7000d000 {
+               /* Realtek ALC5631 audio codec */
+               rt5631: audio-codec@1a {
+                       compatible = "realtek,rt5631";
+                       reg = <0x1a>;
+               };
+       };
+
+       memory-controller@7000f000 {
+               emc-timings-0 {
+                       /* Elpida 1GB 667MHZ */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x74830303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x73430303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000030
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0503 0x72830504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000005 0x00000002
+                                       0x00000003 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0505 0x72440a06 0x001f0000 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emem-configuration = < 0x00000005 0xc000003d
+                                       0x00000001 0x00000002 0x00000008 0x00000004
+                                       0x00000004 0x00000001 0x00000002 0x00000007
+                                       0x00000002 0x00000002 0x00000003 0x00000006
+                                       0x06030202 0x000b0608 0x70850f09 0x001f0000 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emem-configuration = < 0x0000000a 0xc0000079
+                                       0x00000003 0x00000004 0x00000010 0x0000000b
+                                       0x0000000a 0x00000001 0x00000003 0x0000000b
+                                       0x00000002 0x00000002 0x00000004 0x00000008
+                                       0x08040202 0x00130b10 0x70ea1f11 0x001f0000 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* Hynix 1GB 667MHZ */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x74830303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x73430303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000030
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0503 0x72830504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000005 0x00000002
+                                       0x00000003 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0505 0x72440a06 0x001f0000 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emem-configuration = < 0x00000005 0xc000003d
+                                       0x00000001 0x00000002 0x00000008 0x00000004
+                                       0x00000004 0x00000001 0x00000002 0x00000007
+                                       0x00000002 0x00000002 0x00000003 0x00000006
+                                       0x06030202 0x000b0608 0x70850f09 0x001f0000 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emem-configuration = < 0x0000000a 0xc0000079
+                                       0x00000003 0x00000004 0x00000010 0x0000000b
+                                       0x0000000a 0x00000001 0x00000003 0x0000000b
+                                       0x00000002 0x00000002 0x00000004 0x00000008
+                                       0x08040202 0x00130b10 0x70ea1f11 0x001f0000 >;
+                       };
+               };
+
+               emc-timings-2 {
+                       /* Micron 1GB 667MHZ */
+                       nvidia,ram-code = <2>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x74830303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x73430303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000030
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0503 0x72830504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000005 0x00000002
+                                       0x00000003 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0505 0x72440a06 0x001f0000 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emem-configuration = < 0x00000005 0x8000003d
+                                       0x00000001 0x00000002 0x00000008 0x00000004
+                                       0x00000004 0x00000001 0x00000002 0x00000007
+                                       0x00000002 0x00000002 0x00000003 0x00000006
+                                       0x06030202 0x000b0608 0x70850f09 0x001f0000 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emem-configuration = < 0x0000000a 0x80000079
+                                       0x00000003 0x00000004 0x00000010 0x0000000a
+                                       0x0000000a 0x00000001 0x00000003 0x0000000b
+                                       0x00000002 0x00000002 0x00000004 0x00000008
+                                       0x08040202 0x00130b10 0x70ea1f11 0x001f0000 >;
+                       };
+               };
+       };
+
+       memory-controller@7000f400 {
+               emc-timings-0 {
+                       /* Elpida 1GB 667MHZ */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000004 0x00000000 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x000000c0 0x00000000 0x00000030
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000005 0x00000005
+                                       0x00000004 0x00000001 0x00000000 0x00000004
+                                       0x00000005 0x000000c7 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000002
+                                       0x00000008 0x00000001 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000181 0x00000000 0x00000060
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000009 0x00000009
+                                       0x00000004 0x00000002 0x00000000 0x00000004
+                                       0x00000005 0x0000018e 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000005
+                                       0x00000010 0x00000003 0x00000001 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000001
+                                       0x00000001 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000303 0x00000000 0x000000c0
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000012 0x00000012
+                                       0x00000004 0x00000004 0x00000000 0x00000004
+                                       0x00000005 0x0000031c 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000a
+                                       0x00000020 0x00000007 0x00000002 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000002
+                                       0x00000002 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000006 0x00000004 0x0000000a
+                                       0x0000000b 0x00000607 0x00000000 0x00000181
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000023 0x00000023
+                                       0x00000004 0x00000007 0x00000000 0x00000004
+                                       0x00000005 0x00000638 0x00000007 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00020000
+                                       0x00000100 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000d22 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200040>;
+                               nvidia,emc-mode-reset = <0x80000321>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+
+                               nvidia,emc-configuration =  < 0x0000000f
+                                       0x00000034 0x0000000a 0x00000003 0x00000003
+                                       0x00000008 0x00000002 0x00000009 0x00000003
+                                       0x00000003 0x00000002 0x00000001 0x00000000
+                                       0x00000004 0x00000006 0x00000004 0x0000000a
+                                       0x0000000c 0x000009e9 0x00000000 0x0000027a
+                                       0x00000001 0x00000008 0x00000001 0x00000000
+                                       0x00000007 0x0000000e 0x00000039 0x00000200
+                                       0x00000004 0x0000000a 0x00000000 0x00000004
+                                       0x00000005 0x00000a2a 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00007088 0x002600a4
+                                       0x00008000 0x0003c000 0x0003c000 0x0003c000
+                                       0x0003c000 0x00014000 0x00014000 0x00014000
+                                       0x00014000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00050000 0x00050000 0x00050000
+                                       0x00050000 0x000002a0 0x0800013d 0x00000000
+                                       0x77fff884 0x01f1f508 0x05057404 0x54000007
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x018b000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800014d4 0xe8000000 0xff00ff89 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200058>;
+                               nvidia,emc-mode-reset = <0x80000b71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000001f
+                                       0x00000069 0x00000017 0x00000007 0x00000005
+                                       0x0000000c 0x00000003 0x00000011 0x00000007
+                                       0x00000007 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000b 0x00000009 0x0000000b
+                                       0x00000011 0x00001412 0x00000000 0x00000504
+                                       0x00000002 0x0000000e 0x00000001 0x00000000
+                                       0x0000000c 0x00000016 0x00000072 0x00000200
+                                       0x00000005 0x00000015 0x00000000 0x00000006
+                                       0x00000007 0x00001453 0x0000000c 0x00000004
+                                       0x00000000 0x00000000 0x00005088 0xf00b0191
+                                       0x00008000 0x0000000c 0x0000000c 0x0000000c
+                                       0x0000000c 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00018000 0x00018000 0x00018000
+                                       0x00018000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000c 0x0000000c 0x0000000c
+                                       0x0000000c 0x000002a0 0x0a00013d 0x22220000
+                                       0x77fff884 0x01f1f501 0x07077404 0x54000000
+                                       0x080001e8 0x0a000021 0x00000802 0x00020000
+                                       0x00000100 0x0156000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800028a5 0xe8000000 0xff00ff49 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* Hynix 1GB 667MHZ */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000004 0x00000000 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x000000c0 0x00000000 0x00000030
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000005 0x00000005
+                                       0x00000004 0x00000001 0x00000000 0x00000004
+                                       0x00000005 0x000000c7 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000002
+                                       0x00000008 0x00000001 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000181 0x00000000 0x00000060
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000009 0x00000009
+                                       0x00000004 0x00000002 0x00000000 0x00000004
+                                       0x00000005 0x0000018e 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000005
+                                       0x00000010 0x00000003 0x00000001 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000001
+                                       0x00000001 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000303 0x00000000 0x000000c0
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000012 0x00000012
+                                       0x00000004 0x00000004 0x00000000 0x00000004
+                                       0x00000005 0x0000031c 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200048>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000a
+                                       0x00000020 0x00000007 0x00000002 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000002
+                                       0x00000002 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000006 0x00000004 0x0000000a
+                                       0x0000000b 0x00000607 0x00000000 0x00000181
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000023 0x00000023
+                                       0x00000004 0x00000007 0x00000000 0x00000004
+                                       0x00000005 0x00000638 0x00000007 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00020000
+                                       0x00000100 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000d22 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200040>;
+                               nvidia,emc-mode-reset = <0x80000321>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+
+                               nvidia,emc-configuration =  < 0x0000000f
+                                       0x00000034 0x0000000a 0x00000003 0x00000003
+                                       0x00000008 0x00000002 0x00000009 0x00000003
+                                       0x00000003 0x00000002 0x00000001 0x00000000
+                                       0x00000004 0x00000006 0x00000004 0x0000000a
+                                       0x0000000c 0x000009e9 0x00000000 0x0000027a
+                                       0x00000001 0x00000008 0x00000001 0x00000000
+                                       0x00000007 0x0000000e 0x00000039 0x00000200
+                                       0x00000004 0x0000000a 0x00000000 0x00000004
+                                       0x00000005 0x00000a2a 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00007088 0x002600a4
+                                       0x00008000 0x0003c000 0x0003c000 0x0003c000
+                                       0x0003c000 0x00014000 0x00014000 0x00014000
+                                       0x00014000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00048000 0x00048000 0x00048000
+                                       0x00048000 0x000002a0 0x0800013d 0x00000000
+                                       0x77fff884 0x01f1f508 0x05057404 0x54000007
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x018b000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800014d4 0xe8000000 0xff00ff89 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200058>;
+                               nvidia,emc-mode-reset = <0x80000b71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000020
+                                       0x00000069 0x00000017 0x00000007 0x00000005
+                                       0x0000000c 0x00000003 0x00000011 0x00000007
+                                       0x00000007 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000b 0x00000009 0x0000000b
+                                       0x00000011 0x00001412 0x00000000 0x00000504
+                                       0x00000002 0x0000000e 0x00000001 0x00000000
+                                       0x0000000c 0x00000016 0x00000072 0x00000200
+                                       0x00000005 0x00000015 0x00000000 0x00000006
+                                       0x00000007 0x00001453 0x0000000c 0x00000004
+                                       0x00000000 0x00000000 0x00005088 0xf00b0191
+                                       0x00008000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00018000 0x00018000 0x00018000
+                                       0x00018000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x000002a0 0x0800013d 0x22220000
+                                       0x77fff884 0x01f1f501 0x07077404 0x54000000
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x0156000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800028a5 0xe8000000 0xff00ff49 >;
+                       };
+               };
+
+               emc-timings-2 {
+                       /* Micron 1GB 667MHZ */
+                       nvidia,ram-code = <2>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000004 0x00000000 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x000000c0 0x00000000 0x00000030
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000005 0x00000005
+                                       0x00000004 0x00000001 0x00000000 0x00000004
+                                       0x00000005 0x000000c7 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000002
+                                       0x00000008 0x00000001 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000181 0x00000000 0x00000060
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000009 0x00000009
+                                       0x00000004 0x00000002 0x00000000 0x00000004
+                                       0x00000005 0x0000018e 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000004
+                                       0x00000010 0x00000003 0x00000001 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000001
+                                       0x00000001 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000303 0x00000000 0x000000c0
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000012 0x00000012
+                                       0x00000004 0x00000004 0x00000000 0x00000004
+                                       0x00000005 0x0000031c 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000009
+                                       0x00000020 0x00000007 0x00000002 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000002
+                                       0x00000002 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000006 0x00000004 0x0000000a
+                                       0x0000000b 0x00000607 0x00000000 0x00000181
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000023 0x00000023
+                                       0x00000004 0x00000007 0x00000000 0x00000004
+                                       0x00000005 0x00000638 0x00000007 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00020000
+                                       0x00000100 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000d22 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-333500000 {
+                               clock-frequency = <333500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-reset = <0x80000321>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+
+                               nvidia,emc-configuration =  < 0x0000000f
+                                       0x00000034 0x0000000a 0x00000003 0x00000003
+                                       0x00000008 0x00000002 0x00000009 0x00000003
+                                       0x00000003 0x00000002 0x00000001 0x00000000
+                                       0x00000004 0x00000006 0x00000004 0x0000000a
+                                       0x0000000c 0x000009e9 0x00000000 0x0000027a
+                                       0x00000001 0x00000008 0x00000001 0x00000000
+                                       0x00000007 0x0000000e 0x00000039 0x00000200
+                                       0x00000004 0x0000000a 0x00000000 0x00000004
+                                       0x00000005 0x00000a2a 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00007088 0x002600a4
+                                       0x00008000 0x0003c000 0x0003c000 0x0003c000
+                                       0x0003c000 0x00014000 0x00014000 0x00014000
+                                       0x00014000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00040000 0x00040000 0x00040000
+                                       0x00040000 0x000002a0 0x0800013d 0x00000000
+                                       0x77fff884 0x01f1f508 0x05057404 0x54000007
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x018b000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800014d4 0xe8000000 0xff00ff89 >;
+                       };
+
+                       timing-667000000 {
+                               clock-frequency = <667000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-reset = <0x80000b71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000001f
+                                       0x00000069 0x00000016 0x00000007 0x00000005
+                                       0x0000000c 0x00000003 0x00000011 0x00000007
+                                       0x00000007 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000b 0x00000009 0x0000000b
+                                       0x00000011 0x00001412 0x00000000 0x00000504
+                                       0x00000002 0x0000000e 0x00000001 0x00000000
+                                       0x0000000c 0x00000016 0x00000072 0x00000200
+                                       0x00000005 0x00000015 0x00000000 0x00000006
+                                       0x00000007 0x00001453 0x0000000c 0x00000004
+                                       0x00000000 0x00000000 0x00005088 0xf00b0191
+                                       0x00008000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x000002a0 0x0600013d 0x22220000
+                                       0x77fff884 0x01f1f501 0x07077404 0x54000000
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x0156000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800028a5 0xe8000000 0xff00ff49 >;
+                       };
+               };
+       };
+
+       display-panel {
+               compatible = "innolux,g101ice-l01";
+       };
+};
+
+&emc_icc_dvfs_opp_table {
+       /delete-node/ opp-750000000-1300;
+       /delete-node/ opp-800000000-1300;
+       /delete-node/ opp-900000000-1350;
+};
+
+&emc_bw_dfs_opp_table {
+       /delete-node/ opp-750000000;
+       /delete-node/ opp-800000000;
+       /delete-node/ opp-900000000;
+};
diff --git a/arch/arm/boot/dts/tegra30-asus-tf700t.dts b/arch/arm/boot/dts/tegra30-asus-tf700t.dts
new file mode 100644 (file)
index 0000000..18a9bfa
--- /dev/null
@@ -0,0 +1,823 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "tegra30-asus-transformer-common.dtsi"
+
+/ {
+       model = "Asus Transformer Infinity TF700T";
+       compatible = "asus,tf700t", "nvidia,tegra30";
+
+       host1x@50000000 {
+               lcd: dc@54200000 {
+                       clocks = <&tegra_car TEGRA30_CLK_DISP1>,
+                                <&tegra_car TEGRA30_CLK_PLL_D_OUT0>;
+
+                       rgb {
+                               status = "okay";
+
+                               port@0 {
+                                       dpi_output: endpoint {
+                                               remote-endpoint = <&bridge_input>;
+                                               bus-width = <24>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       pinmux@70000868 {
+               state_default: pinmux {
+                       lcd_pwr2_pc6 {
+                               nvidia,pins = "lcd_pwr2_pc6",
+                                               "lcd_dc1_pd2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb3 {
+                               nvidia,pins = "pbb3";
+                               nvidia,function = "vgp3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi2_mosi_px0 {
+                               nvidia,pins = "spi2_mosi_px0";
+                               nvidia,function = "spi2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb7 {
+                               nvidia,pins = "pbb7";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row7_pr7 {
+                               nvidia,pins = "kb_row7_pr7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_cs4_n_pk2 {
+                               nvidia,pins = "gmi_cs4_n_pk2";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+               };
+       };
+
+       serial@70006200 {
+               /* Azurewave AW-NH665 BCM4330B1 */
+               bluetooth {
+                       compatible = "brcm,bcm4330-bt";
+               };
+       };
+
+       i2c@7000c400 {
+               /* Elantech ELAN-3024-7053 or 5184N FPC-1 REV: 2/3 touchscreen */
+               touchscreen@10 {
+                       compatible = "elan,ektf3624";
+                       reg = <0x10>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(H, 4) IRQ_TYPE_EDGE_FALLING>;
+                       reset-gpios = <&gpio TEGRA_GPIO(H, 6) GPIO_ACTIVE_LOW>;
+
+                       vcc33-supply = <&vdd_3v3_sys>;
+                       vccio-supply = <&vdd_3v3_sys>;
+
+                       touchscreen-size-x = <2944>;
+                       touchscreen-size-y = <1856>;
+                       touchscreen-inverted-y;
+               };
+       };
+
+       i2c@7000c500 {
+               clock-frequency = <100000>;
+
+               magnetometer@e {
+                       mount-matrix =   "1",  "0",  "0",
+                                        "0", "-1",  "0",
+                                        "0",  "0", "-1";
+               };
+
+               gyroscope@68 {
+                       mount-matrix =   "0",  "1",  "0",
+                                        "1",  "0",  "0",
+                                        "0",  "0", "-1";
+
+                       /* External I2C interface */
+                       i2c-gate {
+                               accelerometer@f {
+                                       mount-matrix =   "0", "-1",  "0",
+                                                       "-1",  "0",  "0",
+                                                        "0",  "0",  "1";
+                               };
+                       };
+               };
+       };
+
+       i2c@7000d000 {
+               /* Realtek ALC5631 audio codec */
+               rt5631: audio-codec@1a {
+                       compatible = "realtek,rt5631";
+                       reg = <0x1a>;
+               };
+       };
+
+       memory-controller@7000f000 {
+               emc-timings-0 {
+                       /* Micron 1GB 800MHZ */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x75830303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x74630303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000030
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000002 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0503 0x73c30504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000005 0x00000002
+                                       0x00000004 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0505 0x73840a06 0x001f0000 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emem-configuration = < 0x00000006 0xc0000048
+                                       0x00000001 0x00000002 0x00000009 0x00000005
+                                       0x00000007 0x00000001 0x00000002 0x00000008
+                                       0x00000002 0x00000002 0x00000003 0x00000006
+                                       0x06030202 0x000d0709 0x7086120a 0x001f0000 >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+
+                               nvidia,emem-configuration = < 0x0000000c 0xc0000090
+                                       0x00000004 0x00000005 0x00000013 0x0000000c
+                                       0x0000000f 0x00000002 0x00000003 0x0000000c
+                                       0x00000002 0x00000002 0x00000004 0x00000008
+                                       0x08040202 0x00160d13 0x712c2414 0x001f0000 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* Elpida 1GB 800MHZ */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x75830303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000020
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0502 0x74630303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000030
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000002 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0503 0x73c30504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000005 0x00000002
+                                       0x00000004 0x00000001 0x00000003 0x00000008
+                                       0x00000002 0x00000001 0x00000002 0x00000006
+                                       0x06020102 0x000a0505 0x73840a06 0x001f0000 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emem-configuration = < 0x00000006 0xc0000048
+                                       0x00000001 0x00000002 0x00000009 0x00000005
+                                       0x00000007 0x00000001 0x00000002 0x00000008
+                                       0x00000002 0x00000002 0x00000003 0x00000006
+                                       0x06030202 0x000d0709 0x7086120a 0x001f0000 >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+
+                               nvidia,emem-configuration = < 0x0000000c 0xc0000090
+                                       0x00000004 0x00000005 0x00000013 0x0000000c
+                                       0x0000000f 0x00000002 0x00000003 0x0000000c
+                                       0x00000002 0x00000002 0x00000004 0x00000008
+                                       0x08040202 0x00160d13 0x712c2414 0x001f0000 >;
+                       };
+               };
+       };
+
+       memory-controller@7000f400 {
+               emc-timings-0 {
+                       /* Micron 1GB 800MHZ */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000006 0x00000000 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x000000c0 0x00000000 0x00000030
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000007 0x00000007
+                                       0x00000004 0x00000002 0x00000000 0x00000004
+                                       0x00000005 0x000000c7 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000002
+                                       0x0000000d 0x00000001 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000181 0x00000000 0x00000060
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x0000000e 0x0000000e
+                                       0x00000004 0x00000003 0x00000000 0x00000004
+                                       0x00000005 0x0000018e 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000004
+                                       0x0000001a 0x00000003 0x00000001 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000001
+                                       0x00000001 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000303 0x00000000 0x000000c0
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x0000001c 0x0000001c
+                                       0x00000004 0x00000005 0x00000000 0x00000004
+                                       0x00000005 0x0000031c 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000009
+                                       0x00000035 0x00000007 0x00000002 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000002
+                                       0x00000002 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000006 0x00000004 0x0000000a
+                                       0x0000000b 0x00000607 0x00000000 0x00000181
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000038 0x00000038
+                                       0x00000004 0x00000009 0x00000000 0x00000004
+                                       0x00000005 0x00000638 0x00000007 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00020000
+                                       0x00000100 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000d22 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-reset = <0x80000521>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+
+                               nvidia,emc-configuration =  < 0x00000012
+                                       0x00000066 0x0000000c 0x00000004 0x00000003
+                                       0x00000008 0x00000002 0x0000000a 0x00000004
+                                       0x00000004 0x00000002 0x00000001 0x00000000
+                                       0x00000004 0x00000006 0x00000004 0x0000000a
+                                       0x0000000c 0x00000bf0 0x00000000 0x000002fc
+                                       0x00000001 0x00000008 0x00000001 0x00000000
+                                       0x00000008 0x0000000f 0x0000006c 0x00000200
+                                       0x00000004 0x00000010 0x00000000 0x00000004
+                                       0x00000005 0x00000c30 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00007088 0x001d0084
+                                       0x00008000 0x00044000 0x00044000 0x00044000
+                                       0x00044000 0x00014000 0x00014000 0x00014000
+                                       0x00014000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00048000 0x00048000 0x00048000
+                                       0x00048000 0x000002a0 0x0600013d 0x00000000
+                                       0x77fff884 0x01f1f508 0x05057404 0x54000007
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x0158000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800018c8 0xe8000000 0xff00ff89 >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-reset = <0x80000d71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000025
+                                       0x000000ce 0x0000001a 0x00000009 0x00000005
+                                       0x0000000d 0x00000004 0x00000013 0x00000009
+                                       0x00000009 0x00000004 0x00000001 0x00000000
+                                       0x00000007 0x0000000a 0x00000009 0x0000000a
+                                       0x00000011 0x00001820 0x00000000 0x00000608
+                                       0x00000003 0x00000012 0x00000001 0x00000000
+                                       0x0000000f 0x00000018 0x000000d8 0x00000200
+                                       0x00000005 0x00000020 0x00000000 0x00000007
+                                       0x00000008 0x00001860 0x0000000b 0x00000006
+                                       0x00000000 0x00000000 0x00005088 0xf0070191
+                                       0x00008000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00018000 0x00018000 0x00018000
+                                       0x00018000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x000002a0 0x0800013d 0x22220000
+                                       0x77fff884 0x01f1f501 0x07077404 0x54000000
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x00f0000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000308c 0xe8000000 0xff00ff49 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* Elpida 1GB 800MHZ */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000006 0x00000000 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x000000c0 0x00000000 0x00000030
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000007 0x00000007
+                                       0x00000004 0x00000002 0x00000000 0x00000004
+                                       0x00000005 0x000000c7 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000002
+                                       0x0000000d 0x00000001 0x00000000 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000000
+                                       0x00000000 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000181 0x00000000 0x00000060
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x0000000e 0x0000000e
+                                       0x00000004 0x00000003 0x00000000 0x00000004
+                                       0x00000005 0x0000018e 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000004
+                                       0x0000001a 0x00000003 0x00000001 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000001
+                                       0x00000001 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000005 0x00000004 0x0000000a
+                                       0x0000000b 0x00000303 0x00000000 0x000000c0
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x0000001c 0x0000001c
+                                       0x00000004 0x00000005 0x00000000 0x00000004
+                                       0x00000005 0x0000031c 0x00000006 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00000000
+                                       0x00000040 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000009
+                                       0x00000035 0x00000007 0x00000002 0x00000002
+                                       0x0000000a 0x00000005 0x0000000b 0x00000002
+                                       0x00000002 0x00000003 0x00000001 0x00000000
+                                       0x00000005 0x00000006 0x00000004 0x0000000a
+                                       0x0000000b 0x00000607 0x00000000 0x00000181
+                                       0x00000002 0x00000002 0x00000001 0x00000000
+                                       0x00000007 0x0000000f 0x00000038 0x00000038
+                                       0x00000004 0x00000009 0x00000000 0x00000004
+                                       0x00000005 0x00000638 0x00000007 0x00000004
+                                       0x00000000 0x00000000 0x00004288 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000002a0 0x0800211c 0x00000000
+                                       0x77fff884 0x01f1f108 0x05057404 0x54000007
+                                       0x08000168 0x08000000 0x00000802 0x00020000
+                                       0x00000100 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000d22 0xe8000000 0xff00ff00 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-reset = <0x80000521>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+
+                               nvidia,emc-configuration =  < 0x00000012
+                                       0x00000066 0x0000000c 0x00000004 0x00000003
+                                       0x00000008 0x00000002 0x0000000a 0x00000004
+                                       0x00000004 0x00000002 0x00000001 0x00000000
+                                       0x00000004 0x00000006 0x00000004 0x0000000a
+                                       0x0000000c 0x00000bf0 0x00000000 0x000002fc
+                                       0x00000001 0x00000008 0x00000001 0x00000000
+                                       0x00000008 0x0000000f 0x0000006c 0x00000200
+                                       0x00000004 0x00000010 0x00000000 0x00000004
+                                       0x00000005 0x00000c30 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00007088 0x001d0084
+                                       0x00008000 0x00044000 0x00044000 0x00044000
+                                       0x00044000 0x00014000 0x00014000 0x00014000
+                                       0x00014000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00048000 0x00048000 0x00048000
+                                       0x00048000 0x000002a0 0x0600013d 0x00000000
+                                       0x77fff884 0x01f1f508 0x05057404 0x54000007
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x0158000c 0xa0f10000 0x00000000
+                                       0x00000000 0x800018c8 0xe8000000 0xff00ff89 >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-reset = <0x80000d71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000025
+                                       0x000000ce 0x0000001a 0x00000009 0x00000005
+                                       0x0000000d 0x00000004 0x00000013 0x00000009
+                                       0x00000009 0x00000004 0x00000001 0x00000000
+                                       0x00000007 0x0000000a 0x00000009 0x0000000a
+                                       0x00000011 0x00001820 0x00000000 0x00000608
+                                       0x00000003 0x00000012 0x00000001 0x00000000
+                                       0x0000000f 0x00000018 0x000000d8 0x00000200
+                                       0x00000005 0x00000020 0x00000000 0x00000007
+                                       0x00000008 0x00001860 0x0000000b 0x00000006
+                                       0x00000000 0x00000000 0x00005088 0xf0070191
+                                       0x00008000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00018000 0x00018000 0x00018000
+                                       0x00018000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x000002a0 0x0a00013d 0x22220000
+                                       0x77fff884 0x01f1f501 0x07077404 0x54000000
+                                       0x080001e8 0x08000021 0x00000802 0x00020000
+                                       0x00000100 0x00f0000c 0xa0f10000 0x00000000
+                                       0x00000000 0x8000308c 0xe8000000 0xff00ff49 >;
+                       };
+               };
+       };
+
+       tc358768_refclk: clock-tc358768 {
+               compatible = "fixed-clock";
+               clock-frequency = <23100000>;
+               clock-accuracy = <100>;
+               #clock-cells = <0>;
+       };
+
+       tc358768_osc: clock-tc358768-osc-gate {
+               compatible = "gpio-gate-clock";
+               enable-gpios = <&gpio TEGRA_GPIO(D, 2) GPIO_ACTIVE_HIGH>;
+               clocks = <&tc358768_refclk>;
+               #clock-cells = <0>;
+       };
+
+       haptic-feedback {
+               compatible = "gpio-vibrator";
+               enable-gpios = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_HIGH>;
+               vcc-supply = <&vdd_3v3_sys>;
+       };
+
+       i2c-mux {
+               compatible = "i2c-mux-gpio";
+
+               mux-gpios = <&gpio TEGRA_GPIO(X, 0) GPIO_ACTIVE_HIGH>;
+               i2c-parent = <&lcd_ddc>;
+               idle-state = <0x0>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       dsi-bridge@7 {
+                               compatible = "toshiba,tc358768";
+                               reg = <0x7>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               clocks = <&tc358768_osc>;
+                               clock-names = "refclk";
+
+                               reset-gpios = <&gpio TEGRA_GPIO(N, 6) GPIO_ACTIVE_LOW>;
+
+                               vddc-supply = <&vdd_1v2_mipi>;
+                               vddio-supply = <&vdd_1v8_vio>;
+                               vddmipi-supply = <&vdd_1v2_mipi>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               bridge_input: endpoint {
+                                                       remote-endpoint = <&dpi_output>;
+                                                       data-lines = <24>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               bridge_output: endpoint {
+                                                       remote-endpoint = <&panel_input>;
+                                               };
+                                       };
+                               };
+
+                               /*
+                                * Panasonic VVX10F004B00 or HYDIS HV101WU1-1E1
+                                * LCD SuperIPS+ Full HD panel.
+                                */
+                               panel@1 {
+                                       compatible = "panasonic,vvx10f004b00";
+                                       reg = <1>;
+
+                                       power-supply = <&vdd_pnl>;
+                                       backlight = <&backlight>;
+
+                                       port {
+                                               panel_input: endpoint {
+                                                       remote-endpoint = <&bridge_output>;
+                                               };
+                                       };
+                               };
+                       };
+               };
+       };
+
+       vdd_1v2_mipi: regulator-mipi {
+               compatible = "regulator-fixed";
+               regulator-name = "tc358768_1v2_vdd";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-enable-ramp-delay = <10000>;
+               regulator-boot-on;
+               gpio = <&gpio TEGRA_GPIO(BB, 3) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_3v3_sys>;
+       };
+};
+
+&emc_icc_dvfs_opp_table {
+       /delete-node/ opp-900000000-1350;
+};
+
+&emc_bw_dfs_opp_table {
+       /delete-node/ opp-900000000;
+};
diff --git a/arch/arm/boot/dts/tegra30-asus-transformer-common.dtsi b/arch/arm/boot/dts/tegra30-asus-transformer-common.dtsi
new file mode 100644 (file)
index 0000000..85b43a8
--- /dev/null
@@ -0,0 +1,1787 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/thermal/thermal.h>
+
+#include "tegra30.dtsi"
+#include "tegra30-cpu-opp.dtsi"
+#include "tegra30-cpu-opp-microvolt.dtsi"
+
+/ {
+       chassis-type = "convertible";
+
+       aliases {
+               mmc0 = "/mmc@78000600"; /* eMMC */
+               mmc1 = "/mmc@78000000"; /* uSD slot */
+               mmc2 = "/mmc@78000400"; /* WiFi */
+
+               rtc0 = &pmic;
+               rtc1 = "/rtc@7000e000";
+
+               display0 = &lcd;
+               display1 = &hdmi;
+
+               serial1 = &uartc; /* Bluetooth */
+               serial2 = &uartb; /* GPS */
+       };
+
+       /*
+        * The decompressor and also some bootloaders rely on a
+        * pre-existing /chosen node to be available to insert the
+        * command line and merge other ATAGS info.
+        */
+       chosen {};
+
+       memory@80000000 {
+               reg = <0x80000000 0x40000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               linux,cma@80000000 {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x80000000 0x30000000>;
+                       size = <0x10000000>;            /* 256MiB */
+                       linux,cma-default;
+                       reusable;
+               };
+
+               ramoops@beb00000 {
+                       compatible = "ramoops";
+                       reg = <0xbeb00000 0x10000>;     /* 64kB */
+                       console-size = <0x8000>;        /* 32kB */
+                       record-size = <0x400>;          /*  1kB */
+                       ecc-size = <16>;
+               };
+
+               trustzone@bfe00000 {
+                       reg = <0xbfe00000 0x200000>;    /* 2MB */
+                       no-map;
+               };
+       };
+
+       host1x@50000000 {
+               hdmi: hdmi@54280000 {
+                       status = "okay";
+
+                       hdmi-supply = <&hdmi_5v0_sys>;
+                       pll-supply = <&vdd_1v8_vio>;
+                       vdd-supply = <&vdd_3v3_sys>;
+
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
+                       nvidia,ddc-i2c-bus = <&hdmi_ddc>;
+               };
+       };
+
+       gpio@6000d000 {
+               init-lpm-in-hog {
+                       gpio-hog;
+                       gpios = <TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(B, 1) GPIO_ACTIVE_HIGH>;
+                       input;
+               };
+
+               init-lpm-out-hog {
+                       gpio-hog;
+                       gpios = <TEGRA_GPIO(K, 7) GPIO_ACTIVE_HIGH>,
+                               <TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
+
+               usb-charge-limit-hog {
+                       gpio-hog;
+                       gpios = <TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>;
+                       output-high;
+               };
+       };
+
+       vde@6001a000 {
+               assigned-clocks = <&tegra_car TEGRA30_CLK_VDE>;
+               assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>;
+               assigned-clock-rates = <408000000>;
+       };
+
+       pinmux@70000868 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+
+               state_default: pinmux {
+                       /* SDMMC1 pinmux */
+                       sdmmc1_clk {
+                               nvidia,pins = "sdmmc1_clk_pz0";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc1_cmd {
+                               nvidia,pins = "sdmmc1_dat3_py4",
+                                               "sdmmc1_dat2_py5",
+                                               "sdmmc1_dat1_py6",
+                                               "sdmmc1_dat0_py7",
+                                               "sdmmc1_cmd_pz1";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc1_cd {
+                               nvidia,pins = "gmi_iordy_pi5";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc1_wp {
+                               nvidia,pins = "vi_d11_pt3";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* SDMMC2 pinmux */
+                       vi_d1_pd5 {
+                               nvidia,pins = "vi_d1_pd5",
+                                               "vi_d2_pl0",
+                                               "vi_d3_pl1",
+                                               "vi_d5_pl3",
+                                               "vi_d7_pl5";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       vi_d8_pl6 {
+                               nvidia,pins = "vi_d8_pl6",
+                                               "vi_d9_pl7";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                               nvidia,ioreset = <0>;
+                       };
+
+                       /* SDMMC3 pinmux */
+                       sdmmc3_clk {
+                               nvidia,pins = "sdmmc3_clk_pa6";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc3_cmd {
+                               nvidia,pins = "sdmmc3_cmd_pa7",
+                                               "sdmmc3_dat0_pb7",
+                                               "sdmmc3_dat1_pb6",
+                                               "sdmmc3_dat2_pb5",
+                                               "sdmmc3_dat3_pb4",
+                                               "sdmmc3_dat4_pd1",
+                                               "sdmmc3_dat5_pd0",
+                                               "sdmmc3_dat6_pd3",
+                                               "sdmmc3_dat7_pd4";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* SDMMC4 pinmux */
+                       sdmmc4_clk {
+                               nvidia,pins = "sdmmc4_clk_pcc4";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc4_cmd {
+                               nvidia,pins = "sdmmc4_cmd_pt7",
+                                               "sdmmc4_dat0_paa0",
+                                               "sdmmc4_dat1_paa1",
+                                               "sdmmc4_dat2_paa2",
+                                               "sdmmc4_dat3_paa3",
+                                               "sdmmc4_dat4_paa4",
+                                               "sdmmc4_dat5_paa5",
+                                               "sdmmc4_dat6_paa6",
+                                               "sdmmc4_dat7_paa7";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc4_rst_n {
+                               nvidia,pins = "sdmmc4_rst_n_pcc3";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       cam_mclk {
+                               nvidia,pins = "cam_mclk_pcc0";
+                               nvidia,function = "vi_alt3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       drive_sdmmc4 {
+                               nvidia,pins = "drive_gma",
+                                               "drive_gmb",
+                                               "drive_gmc",
+                                               "drive_gmd";
+                               nvidia,pull-down-strength = <9>;
+                               nvidia,pull-up-strength = <9>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                       };
+
+                       /* I2C pinmux */
+                       gen1_i2c {
+                               nvidia,pins = "gen1_i2c_scl_pc4",
+                                               "gen1_i2c_sda_pc5";
+                               nvidia,function = "i2c1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       gen2_i2c {
+                               nvidia,pins = "gen2_i2c_scl_pt5",
+                                               "gen2_i2c_sda_pt6";
+                               nvidia,function = "i2c2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       cam_i2c {
+                               nvidia,pins = "cam_i2c_scl_pbb1",
+                                               "cam_i2c_sda_pbb2";
+                               nvidia,function = "i2c3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       ddc_i2c {
+                               nvidia,pins = "ddc_scl_pv4",
+                                               "ddc_sda_pv5";
+                               nvidia,function = "i2c4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       pwr_i2c {
+                               nvidia,pins = "pwr_i2c_scl_pz6",
+                                               "pwr_i2c_sda_pz7";
+                               nvidia,function = "i2cpwr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       hotplug_i2c {
+                               nvidia,pins = "pu4";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* HDMI pinmux */
+                       hdmi_cec {
+                               nvidia,pins = "hdmi_cec_pee3";
+                               nvidia,function = "cec";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       hdmi_hpd {
+                               nvidia,pins = "hdmi_int_pn7";
+                               nvidia,function = "hdmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* UART-A */
+                       ulpi_data0_po1 {
+                               nvidia,pins = "ulpi_data0_po1";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_data1_po2 {
+                               nvidia,pins = "ulpi_data1_po2";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi_data5_po6 {
+                               nvidia,pins = "ulpi_data5_po6";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi_data7_po0 {
+                               nvidia,pins = "ulpi_data7_po0",
+                                               "ulpi_data2_po3",
+                                               "ulpi_data3_po4",
+                                               "ulpi_data4_po5",
+                                               "ulpi_data6_po7";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* UART-B */
+                       uartb_txd_rts {
+                               nvidia,pins = "uart2_txd_pc2",
+                                               "uart2_rts_n_pj6";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       uartb_rxd_cts {
+                               nvidia,pins = "uart2_rxd_pc3",
+                                               "uart2_cts_n_pj5";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* UART-C */
+                       uartc_rxd_cts {
+                               nvidia,pins = "uart3_cts_n_pa1",
+                                               "uart3_rxd_pw7";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       uartc_txd_rts {
+                               nvidia,pins = "uart3_rts_n_pc0",
+                                               "uart3_txd_pw6";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* UART-D */
+                       ulpi_nxt_py2 {
+                               nvidia,pins = "ulpi_nxt_py2";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi_clk_py0 {
+                               nvidia,pins = "ulpi_clk_py0",
+                                               "ulpi_dir_py1",
+                                               "ulpi_stp_py3";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* I2S pinmux */
+                       dap_i2s0 {
+                               nvidia,pins = "dap1_fs_pn0",
+                                               "dap1_din_pn1",
+                                               "dap1_dout_pn2",
+                                               "dap1_sclk_pn3";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap_i2s1 {
+                               nvidia,pins = "dap2_fs_pa2",
+                                               "dap2_sclk_pa3",
+                                               "dap2_din_pa4",
+                                               "dap2_dout_pa5";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap3_fs {
+                               nvidia,pins = "dap3_fs_pp0",
+                                               "dap3_din_pp1";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap3_dout {
+                               nvidia,pins = "dap3_dout_pp2",
+                                               "dap3_sclk_pp3";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap_i2s3 {
+                               nvidia,pins = "dap4_fs_pp4",
+                                               "dap4_din_pp5",
+                                               "dap4_dout_pp6",
+                                               "dap4_sclk_pp7";
+                               nvidia,function = "i2s3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* Sensors pinmux */
+                       nct_irq {
+                               nvidia,pins = "pcc2";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* Asus EC pinmux */
+                       ec_irqs {
+                               nvidia,pins = "kb_row10_ps2",
+                                               "kb_row15_ps7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ec_reqs {
+                               nvidia,pins = "kb_col1_pq1";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* Memory type bootstrap */
+                       mem_boostraps {
+                               nvidia,pins = "gmi_ad4_pg4",
+                                               "gmi_ad5_pg5";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* PCI-e pinmux */
+                       pex_l2_rst_n {
+                               nvidia,pins = "pex_l2_rst_n_pcc6",
+                                               "pex_l0_rst_n_pdd1",
+                                               "pex_l1_rst_n_pdd5";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l2_clkreq_n {
+                               nvidia,pins = "pex_l2_clkreq_n_pcc7",
+                                               "pex_l0_prsnt_n_pdd0",
+                                               "pex_l0_clkreq_n_pdd2",
+                                               "pex_wake_n_pdd3",
+                                               "pex_l1_prsnt_n_pdd4",
+                                               "pex_l1_clkreq_n_pdd6",
+                                               "pex_l2_prsnt_n_pdd7";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* SPI pinmux */
+                       spi1_mosi_px4 {
+                               nvidia,pins = "spi1_mosi_px4",
+                                               "spi1_sck_px5",
+                                               "spi1_cs0_n_px6",
+                                               "spi1_miso_px7";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       spi2_cs1_n_pw2 {
+                               nvidia,pins = "spi2_cs1_n_pw2";
+                               nvidia,function = "spi2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       spi2_sck_px2 {
+                               nvidia,pins = "spi2_sck_px2";
+                               nvidia,function = "spi2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_a17_pb0 {
+                               nvidia,pins = "gmi_a17_pb0",
+                                               "gmi_a16_pj7";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_a18_pb1 {
+                               nvidia,pins = "gmi_a18_pb1";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_a19_pk7 {
+                               nvidia,pins = "gmi_a19_pk7";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* Display A pinmux */
+                       lcd_pwr0_pb2 {
+                               nvidia,pins = "lcd_pwr0_pb2",
+                                               "lcd_pclk_pb3",
+                                               "lcd_pwr1_pc1",
+                                               "lcd_d0_pe0",
+                                               "lcd_d1_pe1",
+                                               "lcd_d2_pe2",
+                                               "lcd_d3_pe3",
+                                               "lcd_d4_pe4",
+                                               "lcd_d5_pe5",
+                                               "lcd_d6_pe6",
+                                               "lcd_d7_pe7",
+                                               "lcd_d8_pf0",
+                                               "lcd_d9_pf1",
+                                               "lcd_d10_pf2",
+                                               "lcd_d11_pf3",
+                                               "lcd_d12_pf4",
+                                               "lcd_d13_pf5",
+                                               "lcd_d14_pf6",
+                                               "lcd_d15_pf7",
+                                               "lcd_de_pj1",
+                                               "lcd_hsync_pj3",
+                                               "lcd_vsync_pj4",
+                                               "lcd_d16_pm0",
+                                               "lcd_d17_pm1",
+                                               "lcd_d18_pm2",
+                                               "lcd_d19_pm3",
+                                               "lcd_d20_pm4",
+                                               "lcd_d21_pm5",
+                                               "lcd_d22_pm6",
+                                               "lcd_d23_pm7",
+                                               "lcd_dc0_pn6",
+                                               "lcd_sdin_pz2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       lcd_cs0_n_pn4 {
+                               nvidia,pins = "lcd_cs0_n_pn4",
+                                               "lcd_sdout_pn5",
+                                               "lcd_wr_n_pz3";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       blink {
+                               nvidia,pins = "clk_32k_out_pa0";
+                               nvidia,function = "blink";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* KBC keys */
+                       kb_col0_pq0 {
+                               nvidia,pins = "kb_col0_pq0";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_col1_pq1 {
+                               nvidia,pins = "kb_row1_pr1",
+                                               "kb_row3_pr3",
+                                               "kb_row8_ps0",
+                                               "kb_row14_ps6";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kb_col4_pq4 {
+                               nvidia,pins = "kb_col4_pq4",
+                                               "kb_col5_pq5",
+                                               "kb_col7_pq7",
+                                               "kb_row2_pr2",
+                                               "kb_row4_pr4",
+                                               "kb_row5_pr5",
+                                               "kb_row12_ps4",
+                                               "kb_row13_ps5";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_wp_n_pc7 {
+                               nvidia,pins = "gmi_wp_n_pc7",
+                                               "gmi_wait_pi7",
+                                               "gmi_cs3_n_pk4";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_cs0_n_pj0 {
+                               nvidia,pins = "gmi_cs0_n_pj0",
+                                               "gmi_cs1_n_pj2",
+                                               "gmi_cs2_n_pk3";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       vi_pclk_pt0 {
+                               nvidia,pins = "vi_pclk_pt0";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                               nvidia,ioreset = <0>;
+                       };
+
+                       /* GPIO keys pinmux */
+                       power_key {
+                               nvidia,pins = "pv0";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       vol_keys {
+                               nvidia,pins = "kb_col2_pq2",
+                                               "kb_col3_pq3";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* Bluetooth */
+                       bt_shutdown {
+                               nvidia,pins = "pu0";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       bt_dev_wake {
+                               nvidia,pins = "pu1";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       bt_host_wake {
+                               nvidia,pins = "pu6";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pu2 {
+                               nvidia,pins = "pu2";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pu3 {
+                               nvidia,pins = "pu3";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pcc1 {
+                               nvidia,pins = "pcc1";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pv2 {
+                               nvidia,pins = "pv2";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pv3 {
+                               nvidia,pins = "pv3";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_vsync_pd6 {
+                               nvidia,pins = "vi_vsync_pd6",
+                                               "vi_hsync_pd7";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                               nvidia,ioreset = <0>;
+                       };
+
+                       vi_d10_pt2 {
+                               nvidia,pins = "vi_d10_pt2",
+                                               "vi_d0_pt4", "pbb0";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kb_row0_pr0 {
+                               nvidia,pins = "kb_row0_pr0";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_ad0_pg0 {
+                               nvidia,pins = "gmi_ad0_pg0",
+                                               "gmi_ad1_pg1",
+                                               "gmi_ad2_pg2",
+                                               "gmi_ad3_pg3",
+                                               "gmi_ad6_pg6",
+                                               "gmi_ad7_pg7",
+                                               "gmi_wr_n_pi0",
+                                               "gmi_oe_n_pi1",
+                                               "gmi_dqs_pi2",
+                                               "gmi_adv_n_pk0",
+                                               "gmi_clk_pk1";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_ad13_ph5 {
+                               nvidia,pins = "gmi_ad13_ph5";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_ad10_ph2 {
+                               nvidia,pins = "gmi_ad10_ph2",
+                                               "gmi_ad11_ph3",
+                                               "gmi_ad14_ph6";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_ad12_ph4 {
+                               nvidia,pins = "gmi_ad12_ph4",
+                                               "gmi_rst_n_pi4",
+                                               "gmi_cs7_n_pi6";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* Vibrator control */
+                       vibrator {
+                               nvidia,pins = "gmi_ad15_ph7";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* PWM pimnmux */
+                       pwm_0 {
+                               nvidia,pins = "gmi_ad8_ph0";
+                               nvidia,function = "pwm0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pwm_2 {
+                               nvidia,pins = "pu5";
+                               nvidia,function = "pwm2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_cs6_n_pi3 {
+                               nvidia,pins = "gmi_cs6_n_pi3";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* Spdif pinmux */
+                       spdif_out {
+                               nvidia,pins = "spdif_out_pk5";
+                               nvidia,function = "spdif";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spdif_in {
+                               nvidia,pins = "spdif_in_pk6";
+                               nvidia,function = "spdif";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       vi_d4_pl2 {
+                               nvidia,pins = "vi_d4_pl2";
+                               nvidia,function = "vi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d6_pl4 {
+                               nvidia,pins = "vi_d6_pl4";
+                               nvidia,function = "vi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                               nvidia,lock = <0>;
+                               nvidia,ioreset = <0>;
+                       };
+
+                       vi_mclk_pt1 {
+                               nvidia,pins = "vi_mclk_pt1";
+                               nvidia,function = "vi";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       jtag_rtck {
+                               nvidia,pins = "jtag_rtck_pu7";
+                               nvidia,function = "rtck";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       crt_hsync_pv6 {
+                               nvidia,pins = "crt_hsync_pv6",
+                                               "crt_vsync_pv7";
+                               nvidia,function = "crt";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk1_out {
+                               nvidia,pins = "clk1_out_pw4";
+                               nvidia,function = "extperiph1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       clk2_out {
+                               nvidia,pins = "clk2_out_pw5";
+                               nvidia,function = "extperiph2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       clk3_out {
+                               nvidia,pins = "clk3_out_pee0";
+                               nvidia,function = "extperiph3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sys_clk_req {
+                               nvidia,pins = "sys_clk_req_pz5";
+                               nvidia,function = "sysclk";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb4 {
+                               nvidia,pins = "pbb4";
+                               nvidia,function = "vgp4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb5 {
+                               nvidia,pins = "pbb5";
+                               nvidia,function = "vgp5";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb6 {
+                               nvidia,pins = "pbb6";
+                               nvidia,function = "vgp6";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       clk2_req_pcc5 {
+                               nvidia,pins = "clk2_req_pcc5",
+                                               "clk1_req_pee2";
+                               nvidia,function = "dap";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       clk3_req_pee1 {
+                               nvidia,pins = "clk3_req_pee1";
+                               nvidia,function = "dev3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       owr {
+                               nvidia,pins = "owr";
+                               nvidia,function = "owr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* GPIO power/drive control */
+                       drive_dap1 {
+                               nvidia,pins = "drive_dap1",
+                                               "drive_dap2",
+                                               "drive_dbg",
+                                               "drive_at5",
+                                               "drive_gme",
+                                               "drive_ddc",
+                                               "drive_ao1",
+                                               "drive_uart3";
+                               nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
+                               nvidia,schmitt = <TEGRA_PIN_ENABLE>;
+                               nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
+                               nvidia,pull-down-strength = <31>;
+                               nvidia,pull-up-strength = <31>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                       };
+
+                       drive_sdio1 {
+                               nvidia,pins = "drive_sdio1",
+                                               "drive_sdio3";
+                               nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
+                               nvidia,schmitt = <TEGRA_PIN_DISABLE>;
+                               nvidia,pull-down-strength = <46>;
+                               nvidia,pull-up-strength = <42>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FAST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FAST>;
+                       };
+               };
+       };
+
+       serial@70006040 {
+               compatible = "nvidia,tegra30-hsuart";
+               status = "okay";
+
+               /* Broadcom GPS BCM47511 */
+       };
+
+       serial@70006200 {
+               compatible = "nvidia,tegra30-hsuart";
+               status = "okay";
+
+               nvidia,adjust-baud-rates = <0 9600 100>,
+                                          <9600 115200 200>,
+                                          <1000000 4000000 136>;
+
+               bluetooth {
+                       max-speed = <4000000>;
+
+                       clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+                       clock-names = "txco";
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(U, 6) IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "host-wakeup";
+
+                       device-wakeup-gpios = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
+                       shutdown-gpios =      <&gpio TEGRA_GPIO(U, 0) GPIO_ACTIVE_HIGH>;
+
+                       vbat-supply  = <&vdd_3v3_com>;
+                       vddio-supply = <&vdd_1v8_vio>;
+               };
+       };
+
+       pwm@7000a000 {
+               status = "okay";
+       };
+
+       lcd_ddc: i2c@7000c000 {
+               status = "okay";
+               clock-frequency = <100000>;
+       };
+
+       i2c@7000c400 {
+               status = "okay";
+               clock-frequency = <400000>;
+       };
+
+       i2c@7000c500 {
+               status = "okay";
+
+               /* Aichi AMI306 digital compass */
+               magnetometer@e {
+                       compatible = "asahi-kasei,ak8974";
+                       reg = <0x0e>;
+
+                       avdd-supply = <&vdd_3v3_sys>;
+                       dvdd-supply = <&vdd_1v8_vio>;
+               };
+
+               /* Dynaimage ambient light sensor */
+               light-sensor@1c {
+                       compatible = "dynaimage,al3010";
+                       reg = <0x1c>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(Z, 2) IRQ_TYPE_LEVEL_HIGH>;
+
+                       vdd-supply = <&vdd_3v3_sys>;
+               };
+
+               gyroscope@68 {
+                       compatible = "invensense,mpu3050";
+                       reg = <0x68>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(X, 1) IRQ_TYPE_EDGE_RISING>;
+
+                       vdd-supply    = <&vdd_3v3_sys>;
+                       vlogic-supply = <&vdd_1v8_vio>;
+
+                       i2c-gate {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               accelerometer@f {
+                                       compatible = "kionix,kxtf9";
+                                       reg = <0x0f>;
+
+                                       interrupt-parent = <&gpio>;
+                                       interrupts = <TEGRA_GPIO(O, 5) IRQ_TYPE_EDGE_RISING>;
+
+                                       vdd-supply = <&vdd_1v8_vio>;
+                                       vddio-supply = <&vdd_1v8_vio>;
+                               };
+                       };
+               };
+       };
+
+       hdmi_ddc: i2c@7000c700 {
+               status = "okay";
+               clock-frequency = <93750>;
+       };
+
+       i2c@7000d000 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               nct72: temperature-sensor@4c {
+                       compatible = "onnn,nct1008";
+                       reg = <0x4c>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_EDGE_FALLING>;
+
+                       vcc-supply = <&vdd_3v3_sys>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               /* Texas Instruments TPS659110 PMIC */
+               pmic: pmic@2d {
+                       compatible = "ti,tps65911";
+                       reg = <0x2d>;
+
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       wakeup-source;
+
+                       ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
+                       ti,system-power-controller;
+                       ti,sleep-keep-ck32k;
+                       ti,sleep-enable;
+
+                       #gpio-cells = <2>;
+                       gpio-controller;
+
+                       vcc1-supply = <&vdd_5v0_bat>;
+                       vcc2-supply = <&vdd_5v0_bat>;
+                       vcc3-supply = <&vdd_1v8_vio>;
+                       vcc4-supply = <&vdd_5v0_sys>;
+                       vcc5-supply = <&vdd_5v0_bat>;
+                       vcc6-supply = <&vdd_3v3_sys>;
+                       vcc7-supply = <&vdd_5v0_bat>;
+                       vccio-supply = <&vdd_5v0_bat>;
+
+                       pmic-sleep-hog {
+                               gpio-hog;
+                               gpios = <2 GPIO_ACTIVE_HIGH>;
+                               output-high;
+                       };
+
+                       regulators {
+                               /* VDD1 is not used by Transformers */
+
+                               vddio_ddr: vdd2 {
+                                       regulator-name = "vddio_ddr";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               vdd_cpu: vddctrl {
+                                       regulator-name = "vdd_cpu,vdd_sys";
+                                       regulator-min-microvolt = <600000>;
+                                       regulator-max-microvolt = <1400000>;
+                                       regulator-coupled-with = <&vdd_core>;
+                                       regulator-coupled-max-spread = <300000>;
+                                       regulator-max-step-microvolt = <100000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       ti,regulator-ext-sleep-control = <1>;
+
+                                       nvidia,tegra-cpu-regulator;
+                               };
+
+                               vdd_1v8_vio: vio {
+                                       regulator-name = "vdd_1v8_gen";
+                                       /* FIXME: eMMC won't work, if set to 1.8 V */
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               /* eMMC VDD */
+                               vcore_emmc: ldo1 {
+                                       regulator-name = "vdd_emmc_core";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                               };
+
+                               /* uSD slot VDD */
+                               vdd_usd: ldo2 {
+                                       regulator-name = "vdd_usd";
+                                       regulator-min-microvolt = <3100000>;
+                                       regulator-max-microvolt = <3100000>;
+                                       /* FIXME: Without this, voltage switching fails */
+                                       regulator-always-on;
+                               };
+
+                               /* uSD slot VDDIO */
+                               vddio_usd: ldo3 {
+                                       regulator-name = "vddio_usd";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <3100000>;
+                               };
+
+                               ldo4 {
+                                       regulator-name = "vdd_rtc";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                               };
+
+                               /* LDO5 is not used by Transformers */
+
+                               ldo6 {
+                                       regulator-name = "avdd_dsi_csi,pwrdet_mipi";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                               };
+
+                               ldo7 {
+                                       regulator-name = "vdd_pllm,x,u,a_p_c_s";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       ti,regulator-ext-sleep-control = <8>;
+                               };
+
+                               ldo8 {
+                                       regulator-name = "vdd_ddr_hs";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       ti,regulator-ext-sleep-control = <8>;
+                               };
+                       };
+               };
+
+               vdd_core: core-regulator@60 {
+                       compatible = "ti,tps62361";
+                       reg = <0x60>;
+
+                       regulator-name = "tps62361-vout";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1770000>;
+                       regulator-coupled-with = <&vdd_cpu>;
+                       regulator-coupled-max-spread = <300000>;
+                       regulator-max-step-microvolt = <100000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+                       ti,enable-vout-discharge;
+                       ti,vsel0-state-high;
+                       ti,vsel1-state-high;
+
+                       nvidia,tegra-core-regulator;
+               };
+       };
+
+       pmc@7000e400 {
+               status = "okay";
+               nvidia,invert-interrupt;
+               /* FIXME: LP1 doesn't work at the moment */
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <2000>;
+               nvidia,cpu-pwr-off-time = <200>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <0>;
+               nvidia,core-power-req-active-high;
+               nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
+
+               /* Set DEV_OFF + PWR_OFF_SET bit in DCDC control register of TPS65911 PMIC  */
+               i2c-thermtrip {
+                       nvidia,i2c-controller-id = <4>;
+                       nvidia,bus-addr = <0x2d>;
+                       nvidia,reg-addr = <0x3f>;
+                       nvidia,reg-data = <0x81>;
+               };
+       };
+
+       hda@70030000 {
+               status = "okay";
+       };
+
+       ahub@70080000 {
+               i2s@70080400 {          /* i2s1 */
+                       status = "okay";
+               };
+
+               /* BT SCO */
+               i2s@70080600 {          /* i2s3 */
+                       status = "okay";
+               };
+       };
+
+       mmc@78000000 {
+               status = "okay";
+
+               /* FIXME: Full 208Mhz clock rate doesn't work reliably */
+               max-frequency = <104000000>;
+
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               bus-width = <4>;
+
+               vmmc-supply = <&vdd_usd>;       /* ldo2 */
+               vqmmc-supply = <&vddio_usd>;    /* ldo3 */
+       };
+
+       mmc@78000400 {
+               status = "okay";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               assigned-clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
+               assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_C>;
+               assigned-clock-rates = <50000000>;
+
+               max-frequency = <50000000>;
+               keep-power-in-suspend;
+               bus-width = <4>;
+               non-removable;
+
+               mmc-pwrseq = <&brcm_wifi_pwrseq>;
+               vmmc-supply = <&vdd_3v3_com>;
+               vqmmc-supply = <&vdd_1v8_vio>;
+
+               /* Azurewave AW-NH615 BCM4329B1 or AW-NH665 BCM4330B1 */
+               wifi@1 {
+                       compatible = "brcm,bcm4329-fmac";
+                       reg = <1>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(O, 4) IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "host-wake";
+               };
+       };
+
+       mmc@78000600 {
+               status = "okay";
+               bus-width = <8>;
+               vmmc-supply = <&vcore_emmc>;
+               vqmmc-supply = <&vdd_1v8_vio>;
+               mmc-ddr-3_3v;
+               non-removable;
+       };
+
+       /* USB via ASUS connector */
+       usb@7d000000 {
+               compatible = "nvidia,tegra30-udc";
+               status = "okay";
+               dr_mode = "peripheral";
+       };
+
+       usb-phy@7d000000 {
+               status = "okay";
+               dr_mode = "peripheral";
+               nvidia,hssync-start-delay = <0>;
+               nvidia,xcvr-lsfslew = <2>;
+               nvidia,xcvr-lsrslew = <2>;
+               vbus-supply = <&vdd_5v0_sys>;
+       };
+
+       /* Dock's USB port */
+       usb@7d008000 {
+               status = "okay";
+       };
+
+       usb-phy@7d008000 {
+               status = "okay";
+               vbus-supply = <&vdd_5v0_bat>;
+       };
+
+       mains: ac-adapter-detect {
+               compatible = "gpio-charger";
+               charger-type = "mains";
+               gpios = <&gpio TEGRA_GPIO(H, 5) GPIO_ACTIVE_HIGH>;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+
+               enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
+               power-supply = <&vdd_5v0_bl>;
+               pwms = <&pwm 0 4000000>;
+
+               brightness-levels = <1 255>;
+               num-interpolated-steps = <254>;
+               default-brightness-level = <40>;
+       };
+
+       /* PMIC has a built-in 32KHz oscillator which is used by PMC */
+       clk32k_in: clock-32k {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "pmic-oscillator";
+       };
+
+       cpus {
+               cpu0: cpu@0 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+               cpu1: cpu@1 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+               cpu2: cpu@2 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+               cpu3: cpu@3 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+       };
+
+       extcon-keys {
+               compatible = "gpio-keys";
+               interrupt-parent = <&gpio>;
+
+               dock-hall-sensor {
+                       label = "Lid sensor";
+                       gpios = <&gpio TEGRA_GPIO(S, 6) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       debounce-interval = <500>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               lineout-detect {
+                       label = "Audio dock line-out detect";
+                       gpios = <&gpio TEGRA_GPIO(X, 3) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LINEOUT_INSERT>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+       };
+
+       firmware {
+               trusted-foundations {
+                       compatible = "tlm,trusted-foundations";
+                       tlm,version-major = <2>;
+                       tlm,version-minor = <8>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               interrupt-parent = <&gpio>;
+
+               power {
+                       label = "Power";
+                       gpios = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               volume-up {
+                       label = "Volume Up";
+                       gpios = <&gpio TEGRA_GPIO(Q, 2) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               volume-down {
+                       label = "Volume Down";
+                       gpios = <&gpio TEGRA_GPIO(Q, 3) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+       };
+
+       vdd_5v0_bat: regulator-bat {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_ac_bat";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_5v0_cp: regulator-sby {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0_sby";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+               gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_bat>;
+       };
+
+       vdd_5v0_sys: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0_sys";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+               gpio = <&pmic 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_bat>;
+       };
+
+       vdd_1v5_ddr: regulator-ddr {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_ddr";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+               regulator-always-on;
+               regulator-boot-on;
+               gpio = <&pmic 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_bat>;
+       };
+
+       vdd_3v3_sys: regulator-3v {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3_sys";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+               gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_bat>;
+       };
+
+       vdd_pnl: regulator-panel {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_panel";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-enable-ramp-delay = <20000>;
+               gpio = <&gpio TEGRA_GPIO(W, 1) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_3v3_sys>;
+       };
+
+       vdd_3v3_com: regulator-com {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3_com";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               gpio = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_3v3_sys>;
+       };
+
+       vdd_5v0_bl: regulator-bl {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0_bl";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
+               gpio = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_bat>;
+       };
+
+       hdmi_5v0_sys: regulator-hdmi {
+               compatible = "regulator-fixed";
+               regulator-name = "hdmi_5v0_sys";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio TEGRA_GPIO(P, 2) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_sys>;
+       };
+
+       sound {
+               nvidia,i2s-controller = <&tegra_i2s1>;
+
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
+               nvidia,hp-mute-gpios = <&gpio TEGRA_GPIO(X, 2) GPIO_ACTIVE_LOW>;
+
+               clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
+                        <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
+                        <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
+
+               assigned-clocks = <&tegra_car TEGRA30_CLK_EXTERN1>,
+                                 <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+
+               assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
+                                        <&tegra_car TEGRA30_CLK_EXTERN1>;
+       };
+
+       thermal-zones {
+               /*
+                * NCT72 has two sensors:
+                *
+                *      0: internal that monitors ambient/skin temperature
+                *      1: external that is connected to the CPU's diode
+                *
+                * Ideally we should use userspace thermal governor,
+                * but it's a much more complex solution.  The "skin"
+                * zone exists as a simpler solution which prevents
+                * Transformers from getting too hot from a user's
+                * tactile perspective. The CPU zone is intended to
+                * protect silicon from damage.
+                */
+
+               skin-thermal {
+                       polling-delay-passive = <1000>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&nct72 0>;
+
+                       trips {
+                               trip0: skin-alert {
+                                       /* throttle at 57C until temperature drops to 56.8C */
+                                       temperature = <57000>;
+                                       hysteresis = <200>;
+                                       type = "passive";
+                               };
+
+                               trip1: skin-crit {
+                                       /* shut down at 65C */
+                                       temperature = <65000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&trip0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&actmon THERMAL_NO_LIMIT
+                                                                 THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-thermal {
+                       polling-delay-passive = <1000>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&nct72 1>;
+
+                       trips {
+                               trip2: cpu-alert {
+                                       /* throttle at 75C until temperature drops to 74.8C */
+                                       temperature = <75000>;
+                                       hysteresis = <200>;
+                                       type = "passive";
+                               };
+
+                               trip3: cpu-crit {
+                                       /* shut down at 90C */
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map1 {
+                                       trip = <&trip2>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&actmon THERMAL_NO_LIMIT
+                                                                 THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+
+       brcm_wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+
+               clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+               clock-names = "ext_clock";
+
+               reset-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_LOW>;
+               post-power-on-delay-ms = <300>;
+               power-off-delay-us = <300>;
+       };
+};
index e159fee..5ad62b5 100644 (file)
        spi@7000da00 {
                status = "okay";
                spi-max-frequency = <25000000>;
-               spi-flash@1 {
+
+               flash@1 {
                        compatible = "winbond,w25q32", "jedec,spi-nor";
                        reg = <1>;
                        spi-max-frequency = <20000000>;
                nvidia,core-pwr-off-time = <0>;
                nvidia,core-power-req-active-high;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&core_vdd_reg>;
        };
 
        ahub@70080000 {
                status = "okay";
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                };
        };
 
-       vdd_5v_in_reg: regulator@0 {
+       vdd_5v_in_reg: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v_in";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       chargepump_5v_reg: regulator@1 {
+       chargepump_5v_reg: regulator-chargepump {
                compatible = "regulator-fixed";
                regulator-name = "chargepump_5v";
                regulator-min-microvolt = <5000000>;
                gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
        };
 
-       ddr_reg: regulator@2 {
+       ddr_reg: regulator-ddr {
                compatible = "regulator-fixed";
                regulator-name = "vdd_ddr";
                regulator-min-microvolt = <1500000>;
                vin-supply = <&vdd_5v_in_reg>;
        };
 
-       vdd_5v_sata_reg: regulator@3 {
+       vdd_5v_sata_reg: regulator-sata {
                compatible = "regulator-fixed";
                regulator-name = "vdd_5v_sata";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v_in_reg>;
        };
 
-       usb1_vbus_reg: regulator@4 {
+       usb1_vbus_reg: regulator-usb1 {
                compatible = "regulator-fixed";
                regulator-name = "usb1_vbus";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v_in_reg>;
        };
 
-       usb3_vbus_reg: regulator@5 {
+       usb3_vbus_reg: regulator-usb3 {
                compatible = "regulator-fixed";
                regulator-name = "usb3_vbus";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v_in_reg>;
        };
 
-       sys_3v3_reg: regulator@6 {
+       sys_3v3_reg: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "sys_3v3,vdd_3v3_alw";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_5v_in_reg>;
        };
 
-       sys_3v3_pexs_reg: regulator@7 {
+       sys_3v3_pexs_reg: regulator-pexs {
                compatible = "regulator-fixed";
                regulator-name = "sys_3v3_pexs";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&sys_3v3_reg>;
        };
 
-       vdd_5v0_hdmi: regulator@8 {
+       vdd_5v0_hdmi: regulator-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "+VDD_5V_HDMI";
                regulator-min-microvolt = <5000000>;
index 4899e05..2471853 100644 (file)
@@ -16,7 +16,7 @@
                keep-power-in-suspend;
        };
 
-       ddr_reg: regulator@100 {
+       ddr_reg: regulator-ddr {
                compatible = "regulator-fixed";
                regulator-name = "vdd_ddr";
                regulator-min-microvolt = <1500000>;
@@ -27,7 +27,7 @@
                gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
        };
 
-       sys_3v3_reg: regulator@101 {
+       sys_3v3_reg: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "sys_3v3";
                regulator-min-microvolt = <3300000>;
@@ -38,7 +38,7 @@
                gpio = <&pmic 7 GPIO_ACTIVE_HIGH>;
        };
 
-       usb1_vbus_reg: regulator@102 {
+       usb1_vbus_reg: regulator-usb1 {
                compatible = "regulator-fixed";
                regulator-name = "usb1_vbus";
                regulator-min-microvolt = <5000000>;
@@ -49,7 +49,7 @@
                vin-supply = <&vdd_5v0_reg>;
        };
 
-       usb3_vbus_reg: regulator@103 {
+       usb3_vbus_reg: regulator-usb3 {
                compatible = "regulator-fixed";
                regulator-name = "usb3_vbus";
                regulator-min-microvolt = <5000000>;
@@ -60,7 +60,7 @@
                vin-supply = <&vdd_5v0_reg>;
        };
 
-       vdd_5v0_reg: regulator@104 {
+       vdd_5v0_reg: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "5v0";
                regulator-min-microvolt = <5000000>;
@@ -69,7 +69,7 @@
                gpio = <&pmic 2 GPIO_ACTIVE_HIGH>;
        };
 
-       vdd_bl_reg: regulator@105 {
+       vdd_bl_reg: regulator-bl {
                compatible = "regulator-fixed";
                regulator-name = "vdd_bl";
                regulator-min-microvolt = <5000000>;
index a11028b..2911f08 100644 (file)
@@ -16,7 +16,7 @@
                keep-power-in-suspend;
        };
 
-       ddr_reg: regulator@100 {
+       ddr_reg: regulator-ddr {
                compatible = "regulator-fixed";
                regulator-name = "ddr";
                regulator-min-microvolt = <1500000>;
@@ -27,7 +27,7 @@
                gpio = <&pmic 7 GPIO_ACTIVE_HIGH>;
        };
 
-       sys_3v3_reg: regulator@101 {
+       sys_3v3_reg: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "sys_3v3";
                regulator-min-microvolt = <3300000>;
@@ -38,7 +38,7 @@
                gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
        };
 
-       usb1_vbus_reg: regulator@102 {
+       usb1_vbus_reg: regulator-usb1 {
                compatible = "regulator-fixed";
                regulator-name = "usb1_vbus";
                regulator-min-microvolt = <5000000>;
@@ -49,7 +49,7 @@
                vin-supply = <&vdd_5v0_reg>;
        };
 
-       usb3_vbus_reg: regulator@103 {
+       usb3_vbus_reg: regulator-usb3 {
                compatible = "regulator-fixed";
                regulator-name = "usb3_vbus";
                regulator-min-microvolt = <5000000>;
@@ -60,7 +60,7 @@
                vin-supply = <&vdd_5v0_reg>;
        };
 
-       vdd_5v0_reg: regulator@104 {
+       vdd_5v0_reg: regulator-5v0 {
                compatible = "regulator-fixed";
                regulator-name = "5v0";
                regulator-min-microvolt = <5000000>;
@@ -69,7 +69,7 @@
                gpio = <&pmic 8 GPIO_ACTIVE_HIGH>;
        };
 
-       vdd_bl_reg: regulator@105 {
+       vdd_bl_reg: regulator-bl {
                compatible = "regulator-fixed";
                regulator-name = "vdd_bl";
                regulator-min-microvolt = <5000000>;
@@ -80,7 +80,7 @@
                gpio = <&gpio TEGRA_GPIO(DD, 2) GPIO_ACTIVE_HIGH>;
        };
 
-       vdd_bl2_reg: regulator@106 {
+       vdd_bl2_reg: regulator-bl2 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_bl2";
                regulator-min-microvolt = <5000000>;
index 448f139..ba257ed 100644 (file)
 
        serial@70006200 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
                status = "okay";
        };
 
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x70>;
-                       reset-gpio = <&gpio TEGRA_GPIO(BB, 0) GPIO_ACTIVE_LOW>;
+                       reset-gpios = <&gpio TEGRA_GPIO(BB, 0) GPIO_ACTIVE_LOW>;
                };
        };
 
        spi@7000da00 {
                status = "okay";
                spi-max-frequency = <25000000>;
-               spi-flash@1 {
+
+               flash@1 {
                        compatible = "winbond,w25q32", "jedec,spi-nor";
                        reg = <1>;
                        spi-max-frequency = <20000000>;
                nvidia,core-pwr-off-time = <0>;
                nvidia,core-power-req-active-high;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
        };
 
        ahub@70080000 {
                default-brightness-level = <6>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                backlight = <&backlight>;
        };
 
-       vdd_ac_bat_reg: regulator@0 {
+       vdd_ac_bat_reg: regulator-acbat {
                compatible = "regulator-fixed";
                regulator-name = "vdd_ac_bat";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       cam_1v8_reg: regulator@1 {
+       cam_1v8_reg: regulator-cam {
                compatible = "regulator-fixed";
                regulator-name = "cam_1v8";
                regulator-min-microvolt = <1800000>;
                vin-supply = <&vio_reg>;
        };
 
-       cp_5v_reg: regulator@2 {
+       cp_5v_reg: regulator-5v0cp {
                compatible = "regulator-fixed";
                regulator-name = "cp_5v";
                regulator-min-microvolt = <5000000>;
                gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
        };
 
-       emmc_3v3_reg: regulator@3 {
+       emmc_3v3_reg: regulator-emmc {
                compatible = "regulator-fixed";
                regulator-name = "emmc_3v3";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&sys_3v3_reg>;
        };
 
-       modem_3v3_reg: regulator@4 {
+       modem_3v3_reg: regulator-modem {
                compatible = "regulator-fixed";
                regulator-name = "modem_3v3";
                regulator-min-microvolt = <3300000>;
                gpio = <&gpio TEGRA_GPIO(D, 6) GPIO_ACTIVE_HIGH>;
        };
 
-       pex_hvdd_3v3_reg: regulator@5 {
+       pex_hvdd_3v3_reg: regulator-pex {
                compatible = "regulator-fixed";
                regulator-name = "pex_hvdd_3v3";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&sys_3v3_reg>;
        };
 
-       vdd_cam1_ldo_reg: regulator@6 {
+       vdd_cam1_ldo_reg: regulator-cam1 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_cam1_ldo";
                regulator-min-microvolt = <2800000>;
                vin-supply = <&sys_3v3_reg>;
        };
 
-       vdd_cam2_ldo_reg: regulator@7 {
+       vdd_cam2_ldo_reg: regulator-cam2 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_cam2_ldo";
                regulator-min-microvolt = <2800000>;
                vin-supply = <&sys_3v3_reg>;
        };
 
-       vdd_cam3_ldo_reg: regulator@8 {
+       vdd_cam3_ldo_reg: regulator-cam3 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_cam3_ldo";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&sys_3v3_reg>;
        };
 
-       vdd_com_reg: regulator@9 {
+       vdd_com_reg: regulator-com {
                compatible = "regulator-fixed";
                regulator-name = "vdd_com";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&sys_3v3_reg>;
        };
 
-       vdd_fuse_3v3_reg: regulator@10 {
+       vdd_fuse_3v3_reg: regulator-fuse {
                compatible = "regulator-fixed";
                regulator-name = "vdd_fuse_3v3";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&sys_3v3_reg>;
        };
 
-       vdd_pnl1_reg: regulator@11 {
+       vdd_pnl1_reg: regulator-pnl1 {
                compatible = "regulator-fixed";
                regulator-name = "vdd_pnl1";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&sys_3v3_reg>;
        };
 
-       vdd_vid_reg: regulator@12 {
+       vdd_vid_reg: regulator-vid {
                compatible = "regulator-fixed";
                regulator-name = "vddio_vid";
                regulator-min-microvolt = <5000000>;
index 413e352..be691a1 100644 (file)
 
        serial@70006040 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        serial@70006300 {
                compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
        };
 
        hdmi_ddc: i2c@7000c700 {
 
                                vddctrl_reg: vddctrl {
                                        regulator-name = "+V1.0_VDD_CPU";
-                                       regulator-min-microvolt = <1150000>;
-                                       regulator-max-microvolt = <1150000>;
+                                       regulator-min-microvolt = <800000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-coupled-with = <&vdd_core>;
+                                       regulator-coupled-max-spread = <300000>;
+                                       regulator-max-step-microvolt = <100000>;
                                        regulator-always-on;
+
+                                       nvidia,tegra-cpu-regulator;
                                };
 
                                reg_1v8_vio: vio {
                };
 
                /* SW: +V1.2_VDD_CORE */
-               regulator@60 {
+               vdd_core: regulator@60 {
                        compatible = "ti,tps62362";
                        reg = <0x60>;
 
                        regulator-name = "tps62362-vout";
                        regulator-min-microvolt = <900000>;
                        regulator-max-microvolt = <1400000>;
+                       regulator-coupled-with = <&vddctrl_reg>;
+                       regulator-coupled-max-spread = <300000>;
+                       regulator-max-step-microvolt = <100000>;
                        regulator-boot-on;
                        regulator-always-on;
-                       ti,vsel0-state-low;
-                       /* VSEL1: EN_CORE_DVFS_N low for DVFS */
-                       ti,vsel1-state-low;
+
+                       nvidia,tegra-core-regulator;
                };
        };
 
                nvidia,core-pwr-off-time = <0>;
                nvidia,core-power-req-active-high;
                nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
 
                /* Set DEV_OFF bit in DCDC control register of TPS65911 PMIC */
                i2c-thermtrip {
                #size-cells = <0>;
 
                asix@1 {
+                       compatible = "usbb95,772b";
                        reg = <1>;
                        local-mac-address = [00 00 00 00 00 00];
                };
 };
 
 &gpio {
-       lan-reset-n {
+       lan-reset-n-hog {
                gpio-hog;
                gpios = <TEGRA_GPIO(DD, 0) GPIO_ACTIVE_HIGH>;
                output-high;
index 1be715d..b8e0e91 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
 / {
-       cpu0_opp_table: cpu_opp_table0 {
-               opp@51000000,800 {
+       cpu0_opp_table: opp-table-cpu0 {
+               opp-51000000-800 {
                        opp-microvolt = <800000 800000 1250000>;
                };
 
-               opp@51000000,850 {
+               opp-51000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@51000000,912 {
+               opp-51000000-912 {
                        opp-microvolt = <912000 912000 1250000>;
                };
 
-               opp@102000000,800 {
+               opp-102000000-800 {
                        opp-microvolt = <800000 800000 1250000>;
                };
 
-               opp@102000000,850 {
+               opp-102000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@102000000,912 {
+               opp-102000000-912 {
                        opp-microvolt = <912000 912000 1250000>;
                };
 
-               opp@204000000,800 {
+               opp-204000000-800 {
                        opp-microvolt = <800000 800000 1250000>;
                };
 
-               opp@204000000,850 {
+               opp-204000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@204000000,912 {
+               opp-204000000-912 {
                        opp-microvolt = <912000 912000 1250000>;
                };
 
-               opp@312000000,850 {
+               opp-312000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@312000000,912 {
+               opp-312000000-912 {
                        opp-microvolt = <912000 912000 1250000>;
                };
 
-               opp@340000000,800 {
+               opp-340000000-800 {
                        opp-microvolt = <800000 800000 1250000>;
                };
 
-               opp@340000000,850 {
+               opp-340000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@370000000,800 {
+               opp-370000000-800 {
                        opp-microvolt = <800000 800000 1250000>;
                };
 
-               opp@456000000,850 {
+               opp-456000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@456000000,912 {
+               opp-456000000-912 {
                        opp-microvolt = <912000 912000 1250000>;
                };
 
-               opp@475000000,800 {
+               opp-475000000-800 {
                        opp-microvolt = <800000 800000 1250000>;
                };
 
-               opp@475000000,850 {
+               opp-475000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@608000000,850 {
+               opp-608000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@608000000,912 {
+               opp-608000000-912 {
                        opp-microvolt = <912000 912000 1250000>;
                };
 
-               opp@620000000,850 {
+               opp-620000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@640000000,850 {
+               opp-640000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@640000000,900 {
+               opp-640000000-900 {
                        opp-microvolt = <900000 900000 1250000>;
                };
 
-               opp@760000000,850 {
+               opp-760000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@760000000,900 {
+               opp-760000000-900 {
                        opp-microvolt = <900000 900000 1250000>;
                };
 
-               opp@760000000,912 {
+               opp-760000000-912 {
                        opp-microvolt = <912000 912000 1250000>;
                };
 
-               opp@760000000,975 {
+               opp-760000000-975 {
                        opp-microvolt = <975000 975000 1250000>;
                };
 
-               opp@816000000,850 {
+               opp-816000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@816000000,912 {
+               opp-816000000-912 {
                        opp-microvolt = <912000 912000 1250000>;
                };
 
-               opp@860000000,850 {
+               opp-860000000-850 {
                        opp-microvolt = <850000 850000 1250000>;
                };
 
-               opp@860000000,900 {
+               opp-860000000-900 {
                        opp-microvolt = <900000 900000 1250000>;
                };
 
-               opp@860000000,975 {
+               opp-860000000-975 {
                        opp-microvolt = <975000 975000 1250000>;
                };
 
-               opp@860000000,1000 {
+               opp-860000000-1000 {
                        opp-microvolt = <1000000 1000000 1250000>;
                };
 
-               opp@910000000,900 {
+               opp-910000000-900 {
                        opp-microvolt = <900000 900000 1250000>;
                };
 
-               opp@1000000000,900 {
+               opp-1000000000-900 {
                        opp-microvolt = <900000 900000 1250000>;
                };
 
-               opp@1000000000,975 {
+               opp-1000000000-975 {
                        opp-microvolt = <975000 975000 1250000>;
                };
 
-               opp@1000000000,1000 {
+               opp-1000000000-1000 {
                        opp-microvolt = <1000000 1000000 1250000>;
                };
 
-               opp@1000000000,1025 {
+               opp-1000000000-1025 {
                        opp-microvolt = <1025000 1025000 1250000>;
                };
 
-               opp@1100000000,900 {
+               opp-1100000000-900 {
                        opp-microvolt = <900000 900000 1250000>;
                };
 
-               opp@1100000000,975 {
+               opp-1100000000-975 {
                        opp-microvolt = <975000 975000 1250000>;
                };
 
-               opp@1100000000,1000 {
+               opp-1100000000-1000 {
                        opp-microvolt = <1000000 1000000 1250000>;
                };
 
-               opp@1100000000,1025 {
+               opp-1100000000-1025 {
                        opp-microvolt = <1025000 1025000 1250000>;
                };
 
-               opp@1100000000,1075 {
+               opp-1100000000-1075 {
                        opp-microvolt = <1075000 1075000 1250000>;
                };
 
-               opp@1150000000,975 {
+               opp-1150000000-975 {
                        opp-microvolt = <975000 975000 1250000>;
                };
 
-               opp@1200000000,975 {
+               opp-1200000000-975 {
                        opp-microvolt = <975000 975000 1250000>;
                };
 
-               opp@1200000000,1000 {
+               opp-1200000000-1000 {
                        opp-microvolt = <1000000 1000000 1250000>;
                };
 
-               opp@1200000000,1025 {
+               opp-1200000000-1025 {
                        opp-microvolt = <1025000 1025000 1250000>;
                };
 
-               opp@1200000000,1050 {
+               opp-1200000000-1050 {
                        opp-microvolt = <1050000 1050000 1250000>;
                };
 
-               opp@1200000000,1075 {
+               opp-1200000000-1075 {
                        opp-microvolt = <1075000 1075000 1250000>;
                };
 
-               opp@1200000000,1100 {
+               opp-1200000000-1100 {
                        opp-microvolt = <1100000 1100000 1250000>;
                };
 
-               opp@1300000000,1000 {
+               opp-1300000000-1000 {
                        opp-microvolt = <1000000 1000000 1250000>;
                };
 
-               opp@1300000000,1025 {
+               opp-1300000000-1025 {
                        opp-microvolt = <1025000 1025000 1250000>;
                };
 
-               opp@1300000000,1050 {
+               opp-1300000000-1050 {
                        opp-microvolt = <1050000 1050000 1250000>;
                };
 
-               opp@1300000000,1075 {
+               opp-1300000000-1075 {
                        opp-microvolt = <1075000 1075000 1250000>;
                };
 
-               opp@1300000000,1100 {
+               opp-1300000000-1100 {
                        opp-microvolt = <1100000 1100000 1250000>;
                };
 
-               opp@1300000000,1125 {
+               opp-1300000000-1125 {
                        opp-microvolt = <1125000 1125000 1250000>;
                };
 
-               opp@1300000000,1150 {
+               opp-1300000000-1150 {
                        opp-microvolt = <1150000 1150000 1250000>;
                };
 
-               opp@1300000000,1175 {
+               opp-1300000000-1175 {
                        opp-microvolt = <1175000 1175000 1250000>;
                };
 
-               opp@1400000000,1100 {
+               opp-1400000000-1100 {
                        opp-microvolt = <1100000 1100000 1250000>;
                };
 
-               opp@1400000000,1125 {
+               opp-1400000000-1125 {
                        opp-microvolt = <1125000 1125000 1250000>;
                };
 
-               opp@1400000000,1150 {
+               opp-1400000000-1150 {
                        opp-microvolt = <1150000 1150000 1250000>;
                };
 
-               opp@1400000000,1175 {
+               opp-1400000000-1175 {
                        opp-microvolt = <1175000 1175000 1250000>;
                };
 
-               opp@1400000000,1237 {
+               opp-1400000000-1237 {
                        opp-microvolt = <1237000 1237000 1250000>;
                };
 
-               opp@1500000000,1125 {
+               opp-1500000000-1125 {
                        opp-microvolt = <1125000 1125000 1250000>;
                };
 
-               opp@1500000000,1150 {
+               opp-1500000000-1150 {
                        opp-microvolt = <1150000 1150000 1250000>;
                };
 
-               opp@1500000000,1200 {
+               opp-1500000000-1200 {
                        opp-microvolt = <1200000 1200000 1250000>;
                };
 
-               opp@1500000000,1237 {
+               opp-1500000000-1237 {
                        opp-microvolt = <1237000 1237000 1250000>;
                };
 
-               opp@1600000000,1212 {
+               opp-1600000000-1212 {
                        opp-microvolt = <1212000 1212000 1250000>;
                };
 
-               opp@1600000000,1237 {
+               opp-1600000000-1237 {
                        opp-microvolt = <1237000 1237000 1250000>;
                };
 
-               opp@1700000000,1212 {
+               opp-1700000000-1212 {
                        opp-microvolt = <1212000 1212000 1250000>;
                };
 
-               opp@1700000000,1237 {
+               opp-1700000000-1237 {
                        opp-microvolt = <1237000 1237000 1250000>;
                };
        };
index 72f2fe2..5b9ebb7 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
 / {
-       cpu0_opp_table: cpu_opp_table0 {
+       cpu0_opp_table: opp-table-cpu0 {
                compatible = "operating-points-v2";
                opp-shared;
 
-               opp@51000000,800 {
+               opp-51000000-800 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x31FE>;
                        opp-hz = /bits/ 64 <51000000>;
                };
 
-               opp@51000000,850 {
+               opp-51000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0C01>;
                        opp-hz = /bits/ 64 <51000000>;
                };
 
-               opp@51000000,912 {
+               opp-51000000-912 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0200>;
                        opp-hz = /bits/ 64 <51000000>;
                };
 
-               opp@102000000,800 {
+               opp-102000000-800 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x31FE>;
                        opp-hz = /bits/ 64 <102000000>;
                };
 
-               opp@102000000,850 {
+               opp-102000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0C01>;
                        opp-hz = /bits/ 64 <102000000>;
                };
 
-               opp@102000000,912 {
+               opp-102000000-912 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0200>;
                        opp-hz = /bits/ 64 <102000000>;
                };
 
-               opp@204000000,800 {
+               opp-204000000-800 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x31FE>;
                        opp-hz = /bits/ 64 <204000000>;
                        opp-suspend;
                };
 
-               opp@204000000,850 {
+               opp-204000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0C01>;
                        opp-hz = /bits/ 64 <204000000>;
                        opp-suspend;
                };
 
-               opp@204000000,912 {
+               opp-204000000-912 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0200>;
                        opp-hz = /bits/ 64 <204000000>;
                        opp-suspend;
                };
 
-               opp@312000000,850 {
+               opp-312000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0C00>;
                        opp-hz = /bits/ 64 <312000000>;
                };
 
-               opp@312000000,912 {
+               opp-312000000-912 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0200>;
                        opp-hz = /bits/ 64 <312000000>;
                };
 
-               opp@340000000,800 {
+               opp-340000000-800 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0192>;
                        opp-hz = /bits/ 64 <340000000>;
                };
 
-               opp@340000000,850 {
+               opp-340000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x0F 0x0001>;
                        opp-hz = /bits/ 64 <340000000>;
                };
 
-               opp@370000000,800 {
+               opp-370000000-800 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1E 0x306C>;
                        opp-hz = /bits/ 64 <370000000>;
                };
 
-               opp@456000000,850 {
+               opp-456000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0C00>;
                        opp-hz = /bits/ 64 <456000000>;
                };
 
-               opp@456000000,912 {
+               opp-456000000-912 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0200>;
                        opp-hz = /bits/ 64 <456000000>;
                };
 
-               opp@475000000,800 {
+               opp-475000000-800 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1E 0x31FE>;
                        opp-hz = /bits/ 64 <475000000>;
                };
 
-               opp@475000000,850 {
+               opp-475000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x0F 0x0001>, <0x01 0x0002>,
                                           <0x01 0x0010>, <0x01 0x0080>,
                        opp-hz = /bits/ 64 <475000000>;
                };
 
-               opp@608000000,850 {
+               opp-608000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0400>;
                        opp-hz = /bits/ 64 <608000000>;
                };
 
-               opp@608000000,912 {
+               opp-608000000-912 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0200>;
                        opp-hz = /bits/ 64 <608000000>;
                };
 
-               opp@620000000,850 {
+               opp-620000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1E 0x306C>;
                        opp-hz = /bits/ 64 <620000000>;
                };
 
-               opp@640000000,850 {
+               opp-640000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x0F 0x0001>, <0x02 0x0002>,
                                           <0x04 0x0002>, <0x08 0x0002>,
                        opp-hz = /bits/ 64 <640000000>;
                };
 
-               opp@640000000,900 {
+               opp-640000000-900 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0192>;
                        opp-hz = /bits/ 64 <640000000>;
                };
 
-               opp@760000000,850 {
+               opp-760000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1E 0x3461>, <0x08 0x0002>,
                                           <0x08 0x0004>, <0x08 0x0008>,
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@760000000,900 {
+               opp-760000000-900 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0001>, <0x02 0x0002>,
                                           <0x04 0x0002>, <0x02 0x0004>,
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@760000000,912 {
+               opp-760000000-912 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0200>;
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@760000000,975 {
+               opp-760000000-975 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0192>;
                        opp-hz = /bits/ 64 <760000000>;
                };
 
-               opp@816000000,850 {
+               opp-816000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0400>;
                        opp-hz = /bits/ 64 <816000000>;
                };
 
-               opp@816000000,912 {
+               opp-816000000-912 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x1F 0x0200>;
                        opp-hz = /bits/ 64 <816000000>;
                };
 
-               opp@860000000,850 {
+               opp-860000000-850 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x0C 0x0001>;
                        opp-hz = /bits/ 64 <860000000>;
                };
 
-               opp@860000000,900 {
+               opp-860000000-900 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x0001>, <0x04 0x0002>,
                                           <0x08 0x0002>, <0x04 0x0004>,
                        opp-hz = /bits/ 64 <860000000>;
                };
 
-               opp@860000000,975 {
+               opp-860000000-975 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0001>, <0x02 0x0002>,
                                           <0x02 0x0004>, <0x02 0x0008>,
                        opp-hz = /bits/ 64 <860000000>;
                };
 
-               opp@860000000,1000 {
+               opp-860000000-1000 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0192>;
                        opp-hz = /bits/ 64 <860000000>;
                };
 
-               opp@910000000,900 {
+               opp-910000000-900 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x18 0x3060>;
                        opp-hz = /bits/ 64 <910000000>;
                };
 
-               opp@1000000000,900 {
+               opp-1000000000-900 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x0C 0x0001>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1000000000,975 {
+               opp-1000000000-975 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x03 0x0001>, <0x04 0x0002>,
                                           <0x08 0x0002>, <0x04 0x0004>,
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1000000000,1000 {
+               opp-1000000000-1000 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x019E>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1000000000,1025 {
+               opp-1000000000-1025 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0192>;
                        opp-hz = /bits/ 64 <1000000000>;
                };
 
-               opp@1100000000,900 {
+               opp-1100000000-900 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x08 0x0001>;
                        opp-hz = /bits/ 64 <1100000000>;
                };
 
-               opp@1100000000,975 {
+               opp-1100000000-975 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x06 0x0001>, <0x08 0x0002>,
                                           <0x08 0x0004>, <0x08 0x0008>,
                        opp-hz = /bits/ 64 <1100000000>;
                };
 
-               opp@1100000000,1000 {
+               opp-1100000000-1000 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0001>, <0x04 0x0002>,
                                           <0x04 0x0004>, <0x04 0x0008>,
                        opp-hz = /bits/ 64 <1100000000>;
                };
 
-               opp@1100000000,1025 {
+               opp-1100000000-1025 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x019E>;
                        opp-hz = /bits/ 64 <1100000000>;
                };
 
-               opp@1100000000,1075 {
+               opp-1100000000-1075 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0192>;
                        opp-hz = /bits/ 64 <1100000000>;
                };
 
-               opp@1150000000,975 {
+               opp-1150000000-975 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x18 0x3060>;
                        opp-hz = /bits/ 64 <1150000000>;
                };
 
-               opp@1200000000,975 {
+               opp-1200000000-975 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x08 0x0001>;
                        opp-hz = /bits/ 64 <1200000000>;
                };
 
-               opp@1200000000,1000 {
+               opp-1200000000-1000 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x04 0x0001>, <0x08 0x0002>,
                                           <0x08 0x0004>, <0x08 0x0008>,
                        opp-hz = /bits/ 64 <1200000000>;
                };
 
-               opp@1200000000,1025 {
+               opp-1200000000-1025 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x0001>, <0x04 0x0002>,
                                           <0x04 0x0004>, <0x04 0x0008>,
                        opp-hz = /bits/ 64 <1200000000>;
                };
 
-               opp@1200000000,1050 {
+               opp-1200000000-1050 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x019E>;
                        opp-hz = /bits/ 64 <1200000000>;
                };
 
-               opp@1200000000,1075 {
+               opp-1200000000-1075 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0001>;
                        opp-hz = /bits/ 64 <1200000000>;
                };
 
-               opp@1200000000,1100 {
+               opp-1200000000-1100 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0192>;
                        opp-hz = /bits/ 64 <1200000000>;
                };
 
-               opp@1300000000,1000 {
+               opp-1300000000-1000 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x08 0x0001>, <0x10 0x0080>,
                                           <0x10 0x0100>;
                        opp-hz = /bits/ 64 <1300000000>;
                };
 
-               opp@1300000000,1025 {
+               opp-1300000000-1025 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x04 0x0001>, <0x08 0x0002>,
                                           <0x08 0x0080>, <0x08 0x0100>;
                        opp-hz = /bits/ 64 <1300000000>;
                };
 
-               opp@1300000000,1050 {
+               opp-1300000000-1050 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x12 0x3061>, <0x04 0x0002>,
                                           <0x08 0x0004>, <0x08 0x0008>,
                        opp-hz = /bits/ 64 <1300000000>;
                };
 
-               opp@1300000000,1075 {
+               opp-1300000000-1075 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x0182>, <0x04 0x0004>,
                                           <0x04 0x0008>, <0x04 0x0010>;
                        opp-hz = /bits/ 64 <1300000000>;
                };
 
-               opp@1300000000,1100 {
+               opp-1300000000-1100 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x001C>;
                        opp-hz = /bits/ 64 <1300000000>;
                };
 
-               opp@1300000000,1125 {
+               opp-1300000000-1125 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0001>;
                        opp-hz = /bits/ 64 <1300000000>;
                };
 
-               opp@1300000000,1150 {
+               opp-1300000000-1150 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0182>;
                        opp-hz = /bits/ 64 <1300000000>;
                };
 
-               opp@1300000000,1175 {
+               opp-1300000000-1175 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0010>;
                        opp-hz = /bits/ 64 <1300000000>;
                };
 
-               opp@1400000000,1100 {
+               opp-1400000000-1100 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x18 0x307C>;
                        opp-hz = /bits/ 64 <1400000000>;
                };
 
-               opp@1400000000,1125 {
+               opp-1400000000-1125 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x04 0x000C>;
                        opp-hz = /bits/ 64 <1400000000>;
                };
 
-               opp@1400000000,1150 {
+               opp-1400000000-1150 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x000C>, <0x04 0x0010>;
                        opp-hz = /bits/ 64 <1400000000>;
                };
 
-               opp@1400000000,1175 {
+               opp-1400000000-1175 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x0010>;
                        opp-hz = /bits/ 64 <1400000000>;
                };
 
-               opp@1400000000,1237 {
+               opp-1400000000-1237 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0010>;
                        opp-hz = /bits/ 64 <1400000000>;
                };
 
-               opp@1500000000,1125 {
+               opp-1500000000-1125 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x08 0x0010>, <0x10 0x0020>,
                                           <0x10 0x0040>, <0x10 0x1000>,
                        opp-hz = /bits/ 64 <1500000000>;
                };
 
-               opp@1500000000,1150 {
+               opp-1500000000-1150 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x04 0x0010>, <0x08 0x0020>,
                                           <0x08 0x0040>, <0x08 0x1000>,
                        opp-hz = /bits/ 64 <1500000000>;
                };
 
-               opp@1500000000,1200 {
+               opp-1500000000-1200 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x02 0x0010>;
                        opp-hz = /bits/ 64 <1500000000>;
                };
 
-               opp@1500000000,1237 {
+               opp-1500000000-1237 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x01 0x0010>;
                        opp-hz = /bits/ 64 <1500000000>;
                };
 
-               opp@1600000000,1212 {
+               opp-1600000000-1212 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x10 0x3060>;
                        opp-hz = /bits/ 64 <1600000000>;
                };
 
-               opp@1600000000,1237 {
+               opp-1600000000-1237 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x08 0x3060>;
                        opp-hz = /bits/ 64 <1600000000>;
                };
 
-               opp@1700000000,1212 {
+               opp-1700000000-1212 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x10 0x3060>;
                        opp-hz = /bits/ 64 <1700000000>;
                };
 
-               opp@1700000000,1237 {
+               opp-1700000000-1237 {
                        clock-latency-ns = <100000>;
                        opp-supported-hw = <0x08 0x3060>;
                        opp-hz = /bits/ 64 <1700000000>;
index 4259871..a5cfbab 100644 (file)
                };
        };
 
-       gpio: gpio@6000d000 {
-               gpio-ranges = <&pinmux 0 0 248>;
-               #reset-cells = <1>;
-       };
-
        pinmux@70000868 {
                pinctrl-names = "default";
                pinctrl-0 = <&state_default>;
+
                state_default: pinmux {
-                       /* located at $state_default below */
-               };
-       };
+                       clk_32k_out_pa0 {
+                               nvidia,pins = "clk_32k_out_pa0";
+                               nvidia,function = "blink";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       uartc: serial@70006200 {
-               status = "okay";
-               compatible = "nvidia,tegra30-hsuart";
+                       uart3_cts_n_pa1 {
+                               nvidia,pins = "uart3_cts_n_pa1";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-               nvidia,adjust-baud-rates = <0 9600 100>,
-                                          <9600 115200 200>,
-                                          <1000000 4000000 136>;
+                       dap2_fs_pa2 {
+                               nvidia,pins = "dap2_fs_pa2";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-               /* Azurewave AW-NH660 BCM4330B1 */
-               bluetooth {
-                       compatible = "brcm,bcm4330-bt";
+                       dap2_sclk_pa3 {
+                               nvidia,pins = "dap2_sclk_pa3";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                       interrupt-parent = <&gpio>;
-                       interrupts = <TEGRA_GPIO(U, 6) IRQ_TYPE_EDGE_RISING>;
-                       interrupt-names = "host-wakeup";
+                       dap2_din_pa4 {
+                               nvidia,pins = "dap2_din_pa4";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                       max-speed = <4000000>;
+                       dap2_dout_pa5 {
+                               nvidia,pins = "dap2_dout_pa5";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                       clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
-                       clock-names = "txco";
+                       sdmmc3_clk_pa6 {
+                               nvidia,pins = "sdmmc3_clk_pa6";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                       vbat-supply  = <&sys_3v3_reg>;
-                       vddio-supply = <&vdd_1v8>;
+                       sdmmc3_cmd_pa7 {
+                               nvidia,pins = "sdmmc3_cmd_pa7";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                       shutdown-gpios = <&gpio TEGRA_GPIO(U, 0) GPIO_ACTIVE_HIGH>;
-                       device-wakeup-gpios = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
-               };
-       };
+                       gmi_a17_pb0 {
+                               nvidia,pins = "gmi_a17_pb0";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       uartd: serial@70006300 {
-               status = "okay";
-       };
+                       gmi_a18_pb1 {
+                               nvidia,pins = "gmi_a18_pb1";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       hdmi_ddc: i2c@7000c700 {
-               status = "okay";
-               clock-frequency = <100000>;
-       };
+                       lcd_pwr0_pb2 {
+                               nvidia,pins = "lcd_pwr0_pb2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       i2c@7000d000 {
-               status = "okay";
-               clock-frequency = <400000>;
+                       lcd_pclk_pb3 {
+                               nvidia,pins = "lcd_pclk_pb3";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               cpu_temp: nct1008@4c {
-                       compatible = "onnn,nct1008";
-                       reg = <0x4c>;
-                       vcc-supply = <&sys_3v3_reg>;
+                       sdmmc3_dat3_pb4 {
+                               nvidia,pins = "sdmmc3_dat3_pb4";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                       interrupt-parent = <&gpio>;
-                       interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_EDGE_FALLING>;
+                       sdmmc3_dat2_pb5 {
+                               nvidia,pins = "sdmmc3_dat2_pb5";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                       #thermal-sensor-cells = <1>;
-               };
+                       sdmmc3_dat1_pb6 {
+                               nvidia,pins = "sdmmc3_dat1_pb6";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-               pmic: pmic@2d {
-                       compatible = "ti,tps65911";
-                       reg = <0x2d>;
+                       sdmmc3_dat0_pb7 {
+                               nvidia,pins = "sdmmc3_dat0_pb7";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
-                       #interrupt-cells = <2>;
-                       interrupt-controller;
-                       wakeup-source;
+                       uart3_rts_n_pc0 {
+                               nvidia,pins = "uart3_rts_n_pc0";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                       ti,en-gpio-sleep = <0 1 1 1 1 1 0 0 1>;
-                       ti,system-power-controller;
-                       ti,sleep-keep-ck32k;
-                       ti,sleep-enable;
+                       lcd_pwr1_pc1 {
+                               nvidia,pins = "lcd_pwr1_pc1";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                       #gpio-cells = <2>;
-                       gpio-controller;
+                       uart2_txd_pc2 {
+                               nvidia,pins = "uart2_txd_pc2";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                       vcc1-supply = <&vdd_5v0_reg>;
-                       vcc2-supply = <&vdd_5v0_reg>;
-                       vcc3-supply = <&vdd_1v8>;
-                       vcc4-supply = <&vdd_5v0_reg>;
-                       vcc5-supply = <&vdd_5v0_reg>;
-                       vcc6-supply = <&vdd2_reg>;
-                       vcc7-supply = <&vdd_5v0_reg>;
-                       vccio-supply = <&vdd_5v0_reg>;
+                       uart2_rxd_pc3 {
+                               nvidia,pins = "uart2_rxd_pc3";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                       regulators {
-                               vdd1_reg: vdd1 {
-                                       regulator-name = "vddio_ddr_1v2";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                               };
+                       gen1_i2c_scl_pc4 {
+                               nvidia,pins = "gen1_i2c_scl_pc4";
+                               nvidia,function = "i2c1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+                       };
 
-                               vdd2_reg: vdd2 {
-                                       regulator-name = "vdd_1v5_gen";
-                                       regulator-min-microvolt = <1500000>;
-                                       regulator-max-microvolt = <1500000>;
-                                       regulator-always-on;
-                               };
+                       gen1_i2c_sda_pc5 {
+                               nvidia,pins = "gen1_i2c_sda_pc5";
+                               nvidia,function = "i2c1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+                       };
 
-                               vdd_cpu: vddctrl {
-                                       regulator-name = "vdd_cpu,vdd_sys";
-                                       regulator-min-microvolt = <800000>;
-                                       regulator-max-microvolt = <1270000>;
-                                       regulator-coupled-with = <&vdd_core>;
-                                       regulator-coupled-max-spread = <300000>;
-                                       regulator-max-step-microvolt = <100000>;
-                                       regulator-always-on;
+                       lcd_pwr2_pc6 {
+                               nvidia,pins = "lcd_pwr2_pc6";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                                       nvidia,tegra-cpu-regulator;
-                               };
+                       gmi_wp_n_pc7 {
+                               nvidia,pins = "gmi_wp_n_pc7";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                               vdd_1v8: vio {
-                                       regulator-name = "vdd_1v8_gen";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                                       regulator-always-on;
-                               };
+                       sdmmc3_dat5_pd0 {
+                               nvidia,pins = "sdmmc3_dat5_pd0";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                               ldo1_reg: ldo1 {
-                                       regulator-name = "vdd_pexa,vdd_pexb";
-                                       regulator-min-microvolt = <1050000>;
-                                       regulator-max-microvolt = <1050000>;
-                                       regulator-always-on;
-                               };
+                       sdmmc3_dat4_pd1 {
+                               nvidia,pins = "sdmmc3_dat4_pd1";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                               ldo2_reg: ldo2 {
-                                       regulator-name = "vdd_sata,avdd_plle";
-                                       regulator-min-microvolt = <1050000>;
-                                       regulator-max-microvolt = <1050000>;
-                                       regulator-always-on;
-                               };
+                       lcd_dc1_pd2 {
+                               nvidia,pins = "lcd_dc1_pd2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                               /* LDO3 is not connected to anything */
+                       sdmmc3_dat6_pd3 {
+                               nvidia,pins = "sdmmc3_dat6_pd3";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                               ldo4_reg: ldo4 {
-                                       regulator-name = "vdd_rtc";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                               };
+                       sdmmc3_dat7_pd4 {
+                               nvidia,pins = "sdmmc3_dat7_pd4";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                               ldo5_reg: ldo5 {
-                                       regulator-name = "vddio_sdmmc,avdd_vdac";
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <3300000>;
-                                       regulator-always-on;
-                               };
+                       vi_d1_pd5 {
+                               nvidia,pins = "vi_d1_pd5";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                               ldo6_reg: ldo6 {
-                                       regulator-name = "avdd_dsi_csi,pwrdet_mipi";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                               };
+                       vi_vsync_pd6 {
+                               nvidia,pins = "vi_vsync_pd6";
+                               nvidia,function = "ddr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                               ldo7_reg: ldo7 {
-                                       regulator-name = "vdd_pllm,x,u,a_p_c_s";
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                                       regulator-always-on;
-                               };
+                       vi_hsync_pd7 {
+                               nvidia,pins = "vi_hsync_pd7";
+                               nvidia,function = "ddr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-                               ldo8_reg: ldo8 {
-                                       regulator-name = "vdd_ddr_hs";
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                                       regulator-always-on;
-                               };
+                       lcd_d0_pe0 {
+                               nvidia,pins = "lcd_d0_pe0";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
                        };
-               };
 
-               vdd_core: tps62361@60 {
-                       compatible = "ti,tps62361";
-                       reg = <0x60>;
+                       lcd_d1_pe1 {
+                               nvidia,pins = "lcd_d1_pe1";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                       regulator-name = "vdd_core";
-                       regulator-min-microvolt = <950000>;
-                       regulator-max-microvolt = <1350000>;
-                       regulator-coupled-with = <&vdd_cpu>;
-                       regulator-coupled-max-spread = <300000>;
-                       regulator-max-step-microvolt = <100000>;
-                       regulator-boot-on;
-                       regulator-always-on;
-                       ti,vsel0-state-high;
-                       ti,vsel1-state-high;
-                       ti,enable-vout-discharge;
+                       lcd_d2_pe2 {
+                               nvidia,pins = "lcd_d2_pe2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                       nvidia,tegra-core-regulator;
-               };
-       };
+                       lcd_d3_pe3 {
+                               nvidia,pins = "lcd_d3_pe3";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       pmc@7000e400 {
-               status = "okay";
-               nvidia,invert-interrupt;
-               nvidia,suspend-mode = <1>;
-               nvidia,cpu-pwr-good-time = <2000>;
-               nvidia,cpu-pwr-off-time = <200>;
-               nvidia,core-pwr-good-time = <3845 3845>;
-               nvidia,core-pwr-off-time = <458>;
-               nvidia,core-power-req-active-high;
-               nvidia,sys-clock-req-active-high;
-       };
+                       lcd_d4_pe4 {
+                               nvidia,pins = "lcd_d4_pe4";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       mc_timings: memory-controller@7000f000 {
-               /* timings located at &mc_timings below */
-       };
+                       lcd_d5_pe5 {
+                               nvidia,pins = "lcd_d5_pe5";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       emc_timings: memory-controller@7000f400 {
-               /* timings located at &emc_timings below */
-       };
+                       lcd_d6_pe6 {
+                               nvidia,pins = "lcd_d6_pe6";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       hda@70030000 {
-               status = "okay";
-       };
+                       lcd_d7_pe7 {
+                               nvidia,pins = "lcd_d7_pe7";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       wifi_pwrseq: wifi_pwrseq {
-               compatible = "mmc-pwrseq-simple";
+                       lcd_d8_pf0 {
+                               nvidia,pins = "lcd_d8_pf0";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
-               clock-names = "ext_clock";
+                       lcd_d9_pf1 {
+                               nvidia,pins = "lcd_d9_pf1";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               reset-gpios = <&gpio TEGRA_GPIO(D, 3) GPIO_ACTIVE_LOW>;
-               post-power-on-delay-ms = <300>;
-               power-off-delay-us = <300>;
-       };
+                       lcd_d10_pf2 {
+                               nvidia,pins = "lcd_d10_pf2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       sdmmc3: mmc@78000400 {
-               status = "okay";
+                       lcd_d11_pf3 {
+                               nvidia,pins = "lcd_d11_pf3";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               #address-cells = <1>;
-               #size-cells = <0>;
+                       lcd_d12_pf4 {
+                               nvidia,pins = "lcd_d12_pf4";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               assigned-clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
-               assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_C>;
-               assigned-clock-rates = <50000000>;
+                       lcd_d13_pf5 {
+                               nvidia,pins = "lcd_d13_pf5";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               max-frequency = <50000000>;
-               keep-power-in-suspend;
+                       lcd_d14_pf6 {
+                               nvidia,pins = "lcd_d14_pf6";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               bus-width = <4>;
-               non-removable;
+                       lcd_d15_pf7 {
+                               nvidia,pins = "lcd_d15_pf7";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               mmc-pwrseq = <&wifi_pwrseq>;
-               vmmc-supply = <&sdmmc_3v3_reg>;
-               vqmmc-supply = <&vdd_1v8>;
+                       gmi_ad0_pg0 {
+                               nvidia,pins = "gmi_ad0_pg0";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-               /* Azurewave AW-NH660 BCM4330 */
-               brcmf: wifi@1 {
-                       reg = <1>;
-                       compatible = "brcm,bcm4329-fmac";
-                       interrupt-parent = <&gpio>;
-                       interrupts = <TEGRA_GPIO(O, 4) IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "host-wake";
-               };
-       };
+                       gmi_ad1_pg1 {
+                               nvidia,pins = "gmi_ad1_pg1";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       sdmmc4: mmc@78000600 {
-               status = "okay";
+                       gmi_ad2_pg2 {
+                               nvidia,pins = "gmi_ad2_pg2";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-               keep-power-in-suspend;
-               bus-width = <8>;
-               non-removable;
-               vmmc-supply = <&sys_3v3_reg>;
-               vqmmc-supply = <&vdd_1v8>;
-               nvidia,default-tap = <0x0F>;
-               max-frequency = <25500000>;
-       };
+                       gmi_ad3_pg3 {
+                               nvidia,pins = "gmi_ad3_pg3";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-       usb@7d000000 {
-               compatible = "nvidia,tegra30-udc";
-               status = "okay";
-       };
+                       gmi_ad4_pg4 {
+                               nvidia,pins = "gmi_ad4_pg4";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-       usb-phy@7d000000 {
-               status = "okay";
-               dr_mode = "peripheral";
-       };
+                       gmi_ad5_pg5 {
+                               nvidia,pins = "gmi_ad5_pg5";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-       usb@7d004000 {
-               status = "okay";
-               #address-cells = <1>;
-               #size-cells = <0>;
+                       gmi_ad6_pg6 {
+                               nvidia,pins = "gmi_ad6_pg6";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-               smsc@2 { /* SMSC 10/100T Ethernet Controller */
-                       compatible = "usb424,9e00";
-                       reg = <2>;
-                       local-mac-address = [00 11 22 33 44 55];
-               };
-       };
+                       gmi_ad7_pg7 {
+                               nvidia,pins = "gmi_ad7_pg7";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-       usb-phy@7d004000 {
-               vbus-supply = <&vdd_smsc>;
-               status = "okay";
-       };
+                       gmi_ad8_ph0 {
+                               nvidia,pins = "gmi_ad8_ph0";
+                               nvidia,function = "pwm0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       usb@7d008000 {
-               status = "okay";
-       };
+                       gmi_ad9_ph1 {
+                               nvidia,pins = "gmi_ad9_ph1";
+                               nvidia,function = "pwm1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       usb-phy@7d008000 {
-               vbus-supply = <&usb3_vbus_reg>;
-               status = "okay";
-       };
+                       gmi_ad10_ph2 {
+                               nvidia,pins = "gmi_ad10_ph2";
+                               nvidia,function = "pwm2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       /* PMIC has a built-in 32KHz oscillator which is used by PMC */
-       clk32k_in: clock {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <32768>;
-               clock-output-names = "pmic-oscillator";
-       };
+                       gmi_ad11_ph3 {
+                               nvidia,pins = "gmi_ad11_ph3";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       cpus {
-               cpu0: cpu@0 {
-                       operating-points-v2 = <&cpu0_opp_table>;
-                       cpu-supply = <&vdd_cpu>;
-                       #cooling-cells = <2>;
-               };
+                       gmi_ad12_ph4 {
+                               nvidia,pins = "gmi_ad12_ph4";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               cpu1: cpu@1 {
-                       operating-points-v2 = <&cpu0_opp_table>;
-                       cpu-supply = <&vdd_cpu>;
-                       #cooling-cells = <2>;
-               };
+                       gmi_ad13_ph5 {
+                               nvidia,pins = "gmi_ad13_ph5";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               cpu2: cpu@2 {
-                       operating-points-v2 = <&cpu0_opp_table>;
-                       cpu-supply = <&vdd_cpu>;
-                       #cooling-cells = <2>;
-               };
+                       gmi_ad14_ph6 {
+                               nvidia,pins = "gmi_ad14_ph6";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               cpu3: cpu@3 {
-                       operating-points-v2 = <&cpu0_opp_table>;
-                       cpu-supply = <&vdd_cpu>;
-                       #cooling-cells = <2>;
-               };
-       };
+                       gmi_wr_n_pi0 {
+                               nvidia,pins = "gmi_wr_n_pi0";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       firmware {
-               trusted-foundations {
-                       compatible = "tlm,trusted-foundations";
-                       tlm,version-major = <0x0>;
-                       tlm,version-minor = <0x0>;
-               };
-       };
+                       gmi_oe_n_pi1 {
+                               nvidia,pins = "gmi_oe_n_pi1";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       fan: gpio_fan {
-               compatible = "gpio-fan";
-               gpios = <&gpio TEGRA_GPIO(J, 2) GPIO_ACTIVE_HIGH>;
-               gpio-fan,speed-map = <0    0
-                                     4500 1>;
-               #cooling-cells = <2>;
-       };
+                       gmi_dqs_pi2 {
+                               nvidia,pins = "gmi_dqs_pi2";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       thermal-zones {
-               cpu_thermal: cpu-thermal {
-                       polling-delay = <5000>;
-                       polling-delay-passive = <5000>;
+                       gmi_iordy_pi5 {
+                               nvidia,pins = "gmi_iordy_pi5";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                       thermal-sensors = <&cpu_temp 1>;
+                       gmi_cs7_n_pi6 {
+                               nvidia,pins = "gmi_cs7_n_pi6";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-                       trips {
-                               cpu_alert0: cpu-alert0 {
-                                       temperature = <50000>;
-                                       hysteresis = <10000>;
-                                       type = "active";
-                               };
-                               cpu_alert1: cpu-alert1 {
-                                       temperature = <70000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
-                               };
-                               cpu_crit: cpu-crit {
-                                       temperature = <90000>;
-                                       hysteresis = <2000>;
-                                       type = "critical";
-                               };
+                       gmi_wait_pi7 {
+                               nvidia,pins = "gmi_wait_pi7";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
                        };
 
-                       cooling-maps {
-                               map0 {
-                                       trip = <&cpu_alert0>;
-                                       cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-                               };
-                               map1 {
-                                       trip = <&cpu_alert1>;
-                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                                        <&actmon THERMAL_NO_LIMIT
-                                                                 THERMAL_NO_LIMIT>;
-                               };
+                       lcd_de_pj1 {
+                               nvidia,pins = "lcd_de_pj1";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
                        };
-               };
-       };
 
-       vdd_12v_in: vdd_12v_in {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_12v_in";
-               regulator-min-microvolt = <12000000>;
-               regulator-max-microvolt = <12000000>;
-               regulator-always-on;
-       };
+                       gmi_cs1_n_pj2 {
+                               nvidia,pins = "gmi_cs1_n_pj2";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       sdmmc_3v3_reg: sdmmc_3v3_reg {
-               compatible = "regulator-fixed";
-               regulator-name = "sdmmc_3v3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               enable-active-high;
-               regulator-always-on;
-               gpio = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
-               vin-supply = <&sys_3v3_reg>;
-       };
+                       lcd_hsync_pj3 {
+                               nvidia,pins = "lcd_hsync_pj3";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       vdd_fuse_3v3_reg: vdd_fuse_3v3_reg {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_fuse_3v3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               enable-active-high;
-               gpio = <&gpio TEGRA_GPIO(L, 6) GPIO_ACTIVE_HIGH>;
-               vin-supply = <&sys_3v3_reg>;
-               regulator-always-on;
-       };
+                       lcd_vsync_pj4 {
+                               nvidia,pins = "lcd_vsync_pj4";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       vdd_vid_reg: vdd_vid_reg {
-               compatible = "regulator-fixed";
-               regulator-name = "vddio_vid";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               enable-active-high;
-               gpio = <&gpio TEGRA_GPIO(T, 0) GPIO_ACTIVE_HIGH>;
-               vin-supply = <&vdd_5v0_reg>;
-               regulator-boot-on;
-       };
+                       uart2_cts_n_pj5 {
+                               nvidia,pins = "uart2_cts_n_pj5";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       ddr_reg: ddr_reg {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_ddr";
-               regulator-min-microvolt = <1500000>;
-               regulator-max-microvolt = <1500000>;
-               regulator-always-on;
-               enable-active-high;
-               gpio = <&pmic 7 GPIO_ACTIVE_HIGH>;
-               regulator-boot-on;
-               vin-supply = <&vdd_12v_in>;
-       };
+                       uart2_rts_n_pj6 {
+                               nvidia,pins = "uart2_rts_n_pj6";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       sys_3v3_reg: sys_3v3_reg {
-               compatible = "regulator-fixed";
-               regulator-name = "sys_3v3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               enable-active-high;
-               gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
-               regulator-always-on;
-               regulator-boot-on;
-               vin-supply = <&vdd_12v_in>;
-       };
+                       gmi_a16_pj7 {
+                               nvidia,pins = "gmi_a16_pj7";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       vdd_5v0_reg: vdd_5v0_reg {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_5v0";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               enable-active-high;
-               gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
-               regulator-always-on;
-               regulator-boot-on;
-               vin-supply = <&vdd_12v_in>;
-       };
+                       gmi_adv_n_pk0 {
+                               nvidia,pins = "gmi_adv_n_pk0";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       vdd_smsc: vdd_smsc {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_smsc";
-               enable-active-high;
-               gpio = <&gpio TEGRA_GPIO(DD, 5) GPIO_ACTIVE_HIGH>;
-       };
+                       gmi_clk_pk1 {
+                               nvidia,pins = "gmi_clk_pk1";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       usb3_vbus_reg: usb3_vbus_reg {
-               compatible = "regulator-fixed";
-               regulator-name = "usb3_vbus";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               enable-active-high;
-               gpio = <&gpio TEGRA_GPIO(DD, 4) GPIO_ACTIVE_HIGH>;
-               vin-supply = <&vdd_5v0_reg>;
-       };
+                       gmi_cs2_n_pk3 {
+                               nvidia,pins = "gmi_cs2_n_pk3";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-       gpio-keys {
-               compatible = "gpio-keys";
+                       gmi_cs3_n_pk4 {
+                               nvidia,pins = "gmi_cs3_n_pk4";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               power {
-                       gpios = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
-                       debounce-interval = <10>;
-                       linux,code = <KEY_POWER>;
-                       wakeup-event-action = <EV_ACT_ASSERTED>;
-                       wakeup-source;
-               };
-       };
+                       spdif_out_pk5 {
+                               nvidia,pins = "spdif_out_pk5";
+                               nvidia,function = "spdif";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
+                       spdif_in_pk6 {
+                               nvidia,pins = "spdif_in_pk6";
+                               nvidia,function = "spdif";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
 
-       leds {
-               compatible = "gpio-leds";
+                       gmi_a19_pk7 {
+                               nvidia,pins = "gmi_a19_pk7";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
 
-               led-power {
-                       label = "power-led";
-                       gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
-                       default-state = "on";
-                       linux,default-trigger = "heartbeat";
-                       retain-state-suspended;
-               };
-       };
-};
-&mc_timings {
-       emc-timings-0 {
-               nvidia,ram-code = <0>; /* Samsung RAM */
-               timing-25500000 {
-                       clock-frequency = <25500000>;
-                       nvidia,emem-configuration = <
-                               0x00030003 /* MC_EMEM_ARB_CFG */
-                               0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                               0x75830303 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-51000000 {
-                       clock-frequency = <51000000>;
-                       nvidia,emem-configuration = <
-                               0x00010003 /* MC_EMEM_ARB_CFG */
-                               0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                               0x74630303 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-102000000 {
-                       clock-frequency = <102000000>;
-                       nvidia,emem-configuration = <
-                               0x00000003 /* MC_EMEM_ARB_CFG */
-                               0xc0000018 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0503 /* MC_EMEM_ARB_DA_COVERS */
-                               0x73c30504 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-204000000 {
-                       clock-frequency = <204000000>;
-                       nvidia,emem-configuration = <
-                               0x00000006 /* MC_EMEM_ARB_CFG */
-                               0xc0000025 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000005 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0505 /* MC_EMEM_ARB_DA_COVERS */
-                               0x73840a06 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-400000000 {
-                       clock-frequency = <400000000>;
-                       nvidia,emem-configuration = <
-                               0x0000000c /* MC_EMEM_ARB_CFG */
-                               0xc0000048 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000009 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06030202 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
-                               0x7086120a /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-800000000 {
-                       clock-frequency = <800000000>;
-                       nvidia,emem-configuration = <
-                               0x00000018 /* MC_EMEM_ARB_CFG */
-                               0xc0000090 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000005 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000013 /* MC_EMEM_ARB_TIMING_RC */
-                               0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
-                               0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x08040202 /* MC_EMEM_ARB_DA_TURNS */
-                               0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
-                               0x712c2414 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-       };
-       emc-timings-1 {
-               nvidia,ram-code = <1>; /* Hynix M RAM */
-               timing-25500000 {
-                       clock-frequency = <25500000>;
-                       nvidia,emem-configuration = <
-                               0x00030003 /* MC_EMEM_ARB_CFG */
-                               0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                               0x75830303 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-51000000 {
-                       clock-frequency = <51000000>;
-                       nvidia,emem-configuration = <
-                               0x00010003 /* MC_EMEM_ARB_CFG */
-                               0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                               0x74630303 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-102000000 {
-                       clock-frequency = <102000000>;
-                       nvidia,emem-configuration = <
-                               0x00000003 /* MC_EMEM_ARB_CFG */
-                               0xc0000018 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0503 /* MC_EMEM_ARB_DA_COVERS */
-                               0x73c30504 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-204000000 {
-                       clock-frequency = <204000000>;
-                       nvidia,emem-configuration = <
-                               0x00000006 /* MC_EMEM_ARB_CFG */
-                               0xc0000025 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000005 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0505 /* MC_EMEM_ARB_DA_COVERS */
-                               0x73840a06 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-400000000 {
-                       clock-frequency = <400000000>;
-                       nvidia,emem-configuration = <
-                               0x0000000c /* MC_EMEM_ARB_CFG */
-                               0xc0000048 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000009 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06030202 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
-                               0x7086120a /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-800000000 {
-                       clock-frequency = <800000000>;
-                       nvidia,emem-configuration = <
-                               0x00000018 /* MC_EMEM_ARB_CFG */
-                               0xc0000090 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000005 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000013 /* MC_EMEM_ARB_TIMING_RC */
-                               0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
-                               0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x08040202 /* MC_EMEM_ARB_DA_TURNS */
-                               0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
-                               0x712c2414 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-       };
-       emc-timings-2 {
-               nvidia,ram-code = <2>; /* Hynix A RAM */
-               timing-25500000 {
-                       clock-frequency = <25500000>;
-                       nvidia,emem-configuration = <
-                               0x00030003 /* MC_EMEM_ARB_CFG */
-                               0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                               0x75e30303 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-51000000 {
-                       clock-frequency = <51000000>;
-                       nvidia,emem-configuration = <
-                               0x00010003 /* MC_EMEM_ARB_CFG */
-                               0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
-                               0x74e30303 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-102000000 {
-                       clock-frequency = <102000000>;
-                       nvidia,emem-configuration = <
-                               0x00000003 /* MC_EMEM_ARB_CFG */
-                               0xc0000018 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0503 /* MC_EMEM_ARB_DA_COVERS */
-                               0x74430504 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-204000000 {
-                       clock-frequency = <204000000>;
-                       nvidia,emem-configuration = <
-                               0x00000006 /* MC_EMEM_ARB_CFG */
-                               0xc0000025 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000005 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06020102 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000a0505 /* MC_EMEM_ARB_DA_COVERS */
-                               0x74040a06 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-400000000 {
-                       clock-frequency = <400000000>;
-                       nvidia,emem-configuration = <
-                               0x0000000c /* MC_EMEM_ARB_CFG */
-                               0xc0000048 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000009 /* MC_EMEM_ARB_TIMING_RC */
-                               0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
-                               0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x06030202 /* MC_EMEM_ARB_DA_TURNS */
-                               0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
-                               0x7086120a /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-               timing-800000000 {
-                       clock-frequency = <800000000>;
-                       nvidia,emem-configuration = <
-                               0x00000018 /* MC_EMEM_ARB_CFG */
-                               0xc0000090 /* MC_EMEM_ARB_OUTSTANDING_REQ */
-                               0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
-                               0x00000005 /* MC_EMEM_ARB_TIMING_RP */
-                               0x00000013 /* MC_EMEM_ARB_TIMING_RC */
-                               0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
-                               0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
-                               0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
-                               0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
-                               0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
-                               0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
-                               0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
-                               0x08040202 /* MC_EMEM_ARB_DA_TURNS */
-                               0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
-                               0x712c2414 /* MC_EMEM_ARB_MISC0 */
-                               0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
-                       >;
-               };
-       };
-};
-&emc_timings {
-       emc-timings-0 {
-               nvidia,ram-code = <0>;  /* Samsung RAM */
-               timing-25500000 {
-                       clock-frequency = <25500000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000001 /* EMC_RC */
-                               0x00000006 /* EMC_RFC */
-                               0x00000000 /* EMC_RAS */
-                               0x00000000 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000000 /* EMC_RD_RCD */
-                               0x00000000 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x000000c0 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000030 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x00000007 /* EMC_TXSR */
-                               0x00000007 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000002 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x000000c7 /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x007800a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS3 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS4 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS5 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS6 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00000000 /* EMC_ZCAL_INTERVAL */
-                               0x00000040 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x80000287 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-51000000 {
-                       clock-frequency = <51000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000002 /* EMC_RC */
-                               0x0000000d /* EMC_RFC */
-                               0x00000001 /* EMC_RAS */
-                               0x00000000 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000000 /* EMC_RD_RCD */
-                               0x00000000 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x00000181 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000060 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x0000000e /* EMC_TXSR */
-                               0x0000000e /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000003 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x0000018e /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x007800a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS3 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS4 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS5 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS6 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00000000 /* EMC_ZCAL_INTERVAL */
-                               0x00000040 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x8000040b /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-102000000 {
-                       clock-frequency = <102000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000004 /* EMC_RC */
-                               0x0000001a /* EMC_RFC */
-                               0x00000003 /* EMC_RAS */
-                               0x00000001 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000001 /* EMC_RD_RCD */
-                               0x00000001 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x00000303 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x000000c0 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x0000001c /* EMC_TXSR */
-                               0x0000001c /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000005 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x0000031c /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x007800a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS3 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS4 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS5 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS6 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00000000 /* EMC_ZCAL_INTERVAL */
-                               0x00000040 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-204000000 {
-                       clock-frequency = <204000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000009 /* EMC_RC */
-                               0x00000035 /* EMC_RFC */
-                               0x00000007 /* EMC_RAS */
-                               0x00000002 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000002 /* EMC_RD_RCD */
-                               0x00000002 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x00000607 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x00000038 /* EMC_TXSR */
-                               0x00000038 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000009 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x00000638 /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000006 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x004400a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x00080000 /* EMC_DLL_XFORM_DQS0 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS1 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS2 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS3 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS4 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS5 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS6 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ0 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ1 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ2 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00020000 /* EMC_ZCAL_INTERVAL */
-                               0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-400000000 {
-                       clock-frequency = <400000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100002>;
-                       nvidia,emc-mode-2 = <0x80200000>;
-                       nvidia,emc-mode-reset = <0x80000521>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-configuration = <
-                               0x00000012 /* EMC_RC */
-                               0x00000066 /* EMC_RFC */
-                               0x0000000c /* EMC_RAS */
-                               0x00000004 /* EMC_RP */
-                               0x00000003 /* EMC_R2W */
-                               0x00000008 /* EMC_W2R */
-                               0x00000002 /* EMC_R2P */
-                               0x0000000a /* EMC_W2P */
-                               0x00000004 /* EMC_RD_RCD */
-                               0x00000004 /* EMC_WR_RCD */
-                               0x00000002 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000004 /* EMC_WDV */
-                               0x00000006 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000c /* EMC_RDV */
-                               0x00000bf0 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x000002fc /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000001 /* EMC_PDEX2WR */
-                               0x00000008 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000008 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x0000006c /* EMC_TXSR */
-                               0x00000200 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000010 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x00000c30 /* EMC_TREFBW */
-                               0x00000000 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00007088 /* EMC_FBIO_CFG5 */
-                               0x001d0084 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS0 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS1 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS2 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS3 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS4 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS5 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS6 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x00048000 /* EMC_DLL_XFORM_DQ0 */
-                               0x00048000 /* EMC_DLL_XFORM_DQ1 */
-                               0x00048000 /* EMC_DLL_XFORM_DQ2 */
-                               0x00048000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800013d /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f508 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x080001e8 /* EMC_XM2QUSEPADCTRL */
-                               0x08000021 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00020000 /* EMC_ZCAL_INTERVAL */
-                               0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                               0x0158000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x800018c8 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff89 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-800000000 {
-                       clock-frequency = <800000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100002>;
-                       nvidia,emc-mode-2 = <0x80200018>;
-                       nvidia,emc-mode-reset = <0x80000d71>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-configuration = <
-                               0x00000025 /* EMC_RC */
-                               0x000000ce /* EMC_RFC */
-                               0x0000001a /* EMC_RAS */
-                               0x00000009 /* EMC_RP */
-                               0x00000005 /* EMC_R2W */
-                               0x0000000d /* EMC_W2R */
-                               0x00000004 /* EMC_R2P */
-                               0x00000013 /* EMC_W2P */
-                               0x00000009 /* EMC_RD_RCD */
-                               0x00000009 /* EMC_WR_RCD */
-                               0x00000004 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000007 /* EMC_WDV */
-                               0x0000000a /* EMC_QUSE */
-                               0x00000009 /* EMC_QRST */
-                               0x0000000b /* EMC_QSAFE */
-                               0x00000011 /* EMC_RDV */
-                               0x00001820 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000608 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000003 /* EMC_PDEX2WR */
-                               0x00000012 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x0000000f /* EMC_AR2PDEN */
-                               0x00000018 /* EMC_RW2PDEN */
-                               0x000000d8 /* EMC_TXSR */
-                               0x00000200 /* EMC_TXSRDLL */
-                               0x00000005 /* EMC_TCKE */
-                               0x00000020 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000007 /* EMC_TCLKSTABLE */
-                               0x00000008 /* EMC_TCLKSTOP */
-                               0x00001860 /* EMC_TREFBW */
-                               0x0000000b /* EMC_QUSE_EXTRA */
-                               0x00000006 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00005088 /* EMC_FBIO_CFG5 */
-                               0xf0070191 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x0000800a /* EMC_DLL_XFORM_DQS0 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS1 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS2 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS3 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS4 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS5 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS6 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS7 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ0 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ1 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ2 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0600013d /* EMC_XM2DQSPADCTRL2 */
-                               0x22220000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f501 /* EMC_XM2COMPPADCTRL */
-                               0x07077404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000000 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x080001e8 /* EMC_XM2QUSEPADCTRL */
-                               0x08000021 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00020000 /* EMC_ZCAL_INTERVAL */
-                               0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                               0x00f0000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x8000308c /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff49 /* EMC_CFG_RSV */
-                       >;
-               };
-       };
-       emc-timings-1 {
-               nvidia,ram-code = <1>;  /* Hynix M RAM */
-               timing-25500000 {
-                       clock-frequency = <25500000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000001 /* EMC_RC */
-                               0x00000006 /* EMC_RFC */
-                               0x00000000 /* EMC_RAS */
-                               0x00000000 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000000 /* EMC_RD_RCD */
-                               0x00000000 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x000000c0 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000030 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x00000007 /* EMC_TXSR */
-                               0x00000007 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000002 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x000000c7 /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x007800a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS3 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS4 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS5 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS6 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00000000 /* EMC_ZCAL_INTERVAL */
-                               0x00000040 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x80000287 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-51000000 {
-                       clock-frequency = <51000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000002 /* EMC_RC */
-                               0x0000000d /* EMC_RFC */
-                               0x00000001 /* EMC_RAS */
-                               0x00000000 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000000 /* EMC_RD_RCD */
-                               0x00000000 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x00000181 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000060 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x0000000e /* EMC_TXSR */
-                               0x0000000e /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000003 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x0000018e /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x007800a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS3 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS4 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS5 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS6 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00000000 /* EMC_ZCAL_INTERVAL */
-                               0x00000040 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x8000040b /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-102000000 {
-                       clock-frequency = <102000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000004 /* EMC_RC */
-                               0x0000001a /* EMC_RFC */
-                               0x00000003 /* EMC_RAS */
-                               0x00000001 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000001 /* EMC_RD_RCD */
-                               0x00000001 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x00000303 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x000000c0 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x0000001c /* EMC_TXSR */
-                               0x0000001c /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000005 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x0000031c /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x007800a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS3 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS4 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS5 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS6 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00000000 /* EMC_ZCAL_INTERVAL */
-                               0x00000040 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-204000000 {
-                       clock-frequency = <204000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000009 /* EMC_RC */
-                               0x00000035 /* EMC_RFC */
-                               0x00000007 /* EMC_RAS */
-                               0x00000002 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000002 /* EMC_RD_RCD */
-                               0x00000002 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x00000607 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x00000038 /* EMC_TXSR */
-                               0x00000038 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000009 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x00000638 /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000006 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x004400a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x00080000 /* EMC_DLL_XFORM_DQS0 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS1 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS2 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS3 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS4 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS5 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS6 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ0 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ1 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ2 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00020000 /* EMC_ZCAL_INTERVAL */
-                               0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-400000000 {
-                       clock-frequency = <400000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100002>;
-                       nvidia,emc-mode-2 = <0x80200000>;
-                       nvidia,emc-mode-reset = <0x80000521>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-configuration = <
-                               0x00000012 /* EMC_RC */
-                               0x00000066 /* EMC_RFC */
-                               0x0000000c /* EMC_RAS */
-                               0x00000004 /* EMC_RP */
-                               0x00000003 /* EMC_R2W */
-                               0x00000008 /* EMC_W2R */
-                               0x00000002 /* EMC_R2P */
-                               0x0000000a /* EMC_W2P */
-                               0x00000004 /* EMC_RD_RCD */
-                               0x00000004 /* EMC_WR_RCD */
-                               0x00000002 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000004 /* EMC_WDV */
-                               0x00000006 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000c /* EMC_RDV */
-                               0x00000bf0 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x000002fc /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000001 /* EMC_PDEX2WR */
-                               0x00000008 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000008 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x0000006c /* EMC_TXSR */
-                               0x00000200 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000010 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x00000c30 /* EMC_TREFBW */
-                               0x00000000 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00007088 /* EMC_FBIO_CFG5 */
-                               0x001d0084 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS0 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS1 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS2 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS3 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS4 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS5 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS6 */
-                               0x0003c000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x00048000 /* EMC_DLL_XFORM_DQ0 */
-                               0x00048000 /* EMC_DLL_XFORM_DQ1 */
-                               0x00048000 /* EMC_DLL_XFORM_DQ2 */
-                               0x00048000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800013d /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f508 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x080001e8 /* EMC_XM2QUSEPADCTRL */
-                               0x08000021 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00020000 /* EMC_ZCAL_INTERVAL */
-                               0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                               0x0158000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x800018c8 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff89 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-800000000 {
-                       clock-frequency = <800000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100002>;
-                       nvidia,emc-mode-2 = <0x80200018>;
-                       nvidia,emc-mode-reset = <0x80000d71>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-configuration = <
-                               0x00000025 /* EMC_RC */
-                               0x000000ce /* EMC_RFC */
-                               0x0000001a /* EMC_RAS */
-                               0x00000009 /* EMC_RP */
-                               0x00000005 /* EMC_R2W */
-                               0x0000000d /* EMC_W2R */
-                               0x00000004 /* EMC_R2P */
-                               0x00000013 /* EMC_W2P */
-                               0x00000009 /* EMC_RD_RCD */
-                               0x00000009 /* EMC_WR_RCD */
-                               0x00000004 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000007 /* EMC_WDV */
-                               0x0000000a /* EMC_QUSE */
-                               0x00000009 /* EMC_QRST */
-                               0x0000000b /* EMC_QSAFE */
-                               0x00000011 /* EMC_RDV */
-                               0x00001820 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000608 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000003 /* EMC_PDEX2WR */
-                               0x00000012 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x0000000f /* EMC_AR2PDEN */
-                               0x00000018 /* EMC_RW2PDEN */
-                               0x000000d8 /* EMC_TXSR */
-                               0x00000200 /* EMC_TXSRDLL */
-                               0x00000005 /* EMC_TCKE */
-                               0x00000020 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000007 /* EMC_TCLKSTABLE */
-                               0x00000008 /* EMC_TCLKSTOP */
-                               0x00001860 /* EMC_TREFBW */
-                               0x0000000b /* EMC_QUSE_EXTRA */
-                               0x00000006 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00005088 /* EMC_FBIO_CFG5 */
-                               0xf0070191 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x0000800a /* EMC_DLL_XFORM_DQS0 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS1 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS2 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS3 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS4 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS5 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS6 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS7 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ0 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ1 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ2 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0600013d /* EMC_XM2DQSPADCTRL2 */
-                               0x22220000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f501 /* EMC_XM2COMPPADCTRL */
-                               0x07077404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000000 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x080001e8 /* EMC_XM2QUSEPADCTRL */
-                               0x08000021 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00020000 /* EMC_ZCAL_INTERVAL */
-                               0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                               0x00f0000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x8000308c /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff49 /* EMC_CFG_RSV */
-                       >;
+                       vi_d2_pl0 {
+                               nvidia,pins = "vi_d2_pl0";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d3_pl1 {
+                               nvidia,pins = "vi_d3_pl1";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d4_pl2 {
+                               nvidia,pins = "vi_d4_pl2";
+                               nvidia,function = "vi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d5_pl3 {
+                               nvidia,pins = "vi_d5_pl3";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d6_pl4 {
+                               nvidia,pins = "vi_d6_pl4";
+                               nvidia,function = "vi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d7_pl5 {
+                               nvidia,pins = "vi_d7_pl5";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d8_pl6 {
+                               nvidia,pins = "vi_d8_pl6";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d9_pl7 {
+                               nvidia,pins = "vi_d9_pl7";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_d16_pm0 {
+                               nvidia,pins = "lcd_d16_pm0";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_d17_pm1 {
+                               nvidia,pins = "lcd_d17_pm1";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_d18_pm2 {
+                               nvidia,pins = "lcd_d18_pm2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_d19_pm3 {
+                               nvidia,pins = "lcd_d19_pm3";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_d20_pm4 {
+                               nvidia,pins = "lcd_d20_pm4";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_d21_pm5 {
+                               nvidia,pins = "lcd_d21_pm5";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_d22_pm6 {
+                               nvidia,pins = "lcd_d22_pm6";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_d23_pm7 {
+                               nvidia,pins = "lcd_d23_pm7";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       dap1_fs_pn0 {
+                               nvidia,pins = "dap1_fs_pn0";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap1_din_pn1 {
+                               nvidia,pins = "dap1_din_pn1";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap1_dout_pn2 {
+                               nvidia,pins = "dap1_dout_pn2";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap1_sclk_pn3 {
+                               nvidia,pins = "dap1_sclk_pn3";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       lcd_cs0_n_pn4 {
+                               nvidia,pins = "lcd_cs0_n_pn4";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_sdout_pn5 {
+                               nvidia,pins = "lcd_sdout_pn5";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_dc0_pn6 {
+                               nvidia,pins = "lcd_dc0_pn6";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       hdmi_int_pn7 {
+                               nvidia,pins = "hdmi_int_pn7";
+                               nvidia,function = "hdmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi_data7_po0 {
+                               nvidia,pins = "ulpi_data7_po0";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_data0_po1 {
+                               nvidia,pins = "ulpi_data0_po1";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_data1_po2 {
+                               nvidia,pins = "ulpi_data1_po2";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_data2_po3 {
+                               nvidia,pins = "ulpi_data2_po3";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_data3_po4 {
+                               nvidia,pins = "ulpi_data3_po4";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi_data4_po5 {
+                               nvidia,pins = "ulpi_data4_po5";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_data5_po6 {
+                               nvidia,pins = "ulpi_data5_po6";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_data6_po7 {
+                               nvidia,pins = "ulpi_data6_po7";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       dap3_fs_pp0 {
+                               nvidia,pins = "dap3_fs_pp0";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap3_din_pp1 {
+                               nvidia,pins = "dap3_din_pp1";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap3_dout_pp2 {
+                               nvidia,pins = "dap3_dout_pp2";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap3_sclk_pp3 {
+                               nvidia,pins = "dap3_sclk_pp3";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap4_fs_pp4 {
+                               nvidia,pins = "dap4_fs_pp4";
+                               nvidia,function = "i2s3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap4_din_pp5 {
+                               nvidia,pins = "dap4_din_pp5";
+                               nvidia,function = "i2s3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap4_dout_pp6 {
+                               nvidia,pins = "dap4_dout_pp6";
+                               nvidia,function = "i2s3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap4_sclk_pp7 {
+                               nvidia,pins = "dap4_sclk_pp7";
+                               nvidia,function = "i2s3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kb_col0_pq0 {
+                               nvidia,pins = "kb_col0_pq0";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_col1_pq1 {
+                               nvidia,pins = "kb_col1_pq1";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_col2_pq2 {
+                               nvidia,pins = "kb_col2_pq2";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_col3_pq3 {
+                               nvidia,pins = "kb_col3_pq3";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_col4_pq4 {
+                               nvidia,pins = "kb_col4_pq4";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_col5_pq5 {
+                               nvidia,pins = "kb_col5_pq5";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_col6_pq6 {
+                               nvidia,pins = "kb_col6_pq6";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_col7_pq7 {
+                               nvidia,pins = "kb_col7_pq7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row0_pr0 {
+                               nvidia,pins = "kb_row0_pr0";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row1_pr1 {
+                               nvidia,pins = "kb_row1_pr1";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row2_pr2 {
+                               nvidia,pins = "kb_row2_pr2";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row3_pr3 {
+                               nvidia,pins = "kb_row3_pr3";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row4_pr4 {
+                               nvidia,pins = "kb_row4_pr4";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row5_pr5 {
+                               nvidia,pins = "kb_row5_pr5";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row6_pr6 {
+                               nvidia,pins = "kb_row6_pr6";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row7_pr7 {
+                               nvidia,pins = "kb_row7_pr7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kb_row8_ps0 {
+                               nvidia,pins = "kb_row8_ps0";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row9_ps1 {
+                               nvidia,pins = "kb_row9_ps1";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row10_ps2 {
+                               nvidia,pins = "kb_row10_ps2";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row11_ps3 {
+                               nvidia,pins = "kb_row11_ps3";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row12_ps4 {
+                               nvidia,pins = "kb_row12_ps4";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row13_ps5 {
+                               nvidia,pins = "kb_row13_ps5";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row14_ps6 {
+                               nvidia,pins = "kb_row14_ps6";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       kb_row15_ps7 {
+                               nvidia,pins = "kb_row15_ps7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_pclk_pt0 {
+                               nvidia,pins = "vi_pclk_pt0";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_mclk_pt1 {
+                               nvidia,pins = "vi_mclk_pt1";
+                               nvidia,function = "vi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d10_pt2 {
+                               nvidia,pins = "vi_d10_pt2";
+                               nvidia,function = "ddr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       vi_d11_pt3 {
+                               nvidia,pins = "vi_d11_pt3";
+                               nvidia,function = "ddr";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       vi_d0_pt4 {
+                               nvidia,pins = "vi_d0_pt4";
+                               nvidia,function = "ddr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gen2_i2c_scl_pt5 {
+                               nvidia,pins = "gen2_i2c_scl_pt5";
+                               nvidia,function = "i2c2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gen2_i2c_sda_pt6 {
+                               nvidia,pins = "gen2_i2c_sda_pt6";
+                               nvidia,function = "i2c2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc4_cmd_pt7 {
+                               nvidia,pins = "sdmmc4_cmd_pt7";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu0 {
+                               nvidia,pins = "pu0";
+                               nvidia,function = "owr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu1 {
+                               nvidia,pins = "pu1";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu2 {
+                               nvidia,pins = "pu2";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu3 {
+                               nvidia,pins = "pu3";
+                               nvidia,function = "pwm0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu4 {
+                               nvidia,pins = "pu4";
+                               nvidia,function = "pwm1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu5 {
+                               nvidia,pins = "pu5";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu6 {
+                               nvidia,pins = "pu6";
+                               nvidia,function = "pwm3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       jtag_rtck_pu7 {
+                               nvidia,pins = "jtag_rtck_pu7";
+                               nvidia,function = "rtck";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pv0 {
+                               nvidia,pins = "pv0";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pv1 {
+                               nvidia,pins = "pv1";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pv2 {
+                               nvidia,pins = "pv2";
+                               nvidia,function = "owr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pv3 {
+                               nvidia,pins = "pv3";
+                               nvidia,function = "clk_12m_out";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ddc_scl_pv4 {
+                               nvidia,pins = "ddc_scl_pv4";
+                               nvidia,function = "i2c4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ddc_sda_pv5 {
+                               nvidia,pins = "ddc_sda_pv5";
+                               nvidia,function = "i2c4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       crt_hsync_pv6 {
+                               nvidia,pins = "crt_hsync_pv6";
+                               nvidia,function = "crt";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       crt_vsync_pv7 {
+                               nvidia,pins = "crt_vsync_pv7";
+                               nvidia,function = "crt";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_cs1_n_pw0 {
+                               nvidia,pins = "lcd_cs1_n_pw0";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_m1_pw1 {
+                               nvidia,pins = "lcd_m1_pw1";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi2_cs1_n_pw2 {
+                               nvidia,pins = "spi2_cs1_n_pw2";
+                               nvidia,function = "spi2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk1_out_pw4 {
+                               nvidia,pins = "clk1_out_pw4";
+                               nvidia,function = "extperiph1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       clk2_out_pw5 {
+                               nvidia,pins = "clk2_out_pw5";
+                               nvidia,function = "extperiph2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       uart3_txd_pw6 {
+                               nvidia,pins = "uart3_txd_pw6";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       uart3_rxd_pw7 {
+                               nvidia,pins = "uart3_rxd_pw7";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       spi2_sck_px2 {
+                               nvidia,pins = "spi2_sck_px2";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi1_mosi_px4 {
+                               nvidia,pins = "spi1_mosi_px4";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi1_sck_px5 {
+                               nvidia,pins = "spi1_sck_px5";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi1_cs0_n_px6 {
+                               nvidia,pins = "spi1_cs0_n_px6";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi1_miso_px7 {
+                               nvidia,pins = "spi1_miso_px7";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_clk_py0 {
+                               nvidia,pins = "ulpi_clk_py0";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_dir_py1 {
+                               nvidia,pins = "ulpi_dir_py1";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi_nxt_py2 {
+                               nvidia,pins = "ulpi_nxt_py2";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi_stp_py3 {
+                               nvidia,pins = "ulpi_stp_py3";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc1_dat3_py4 {
+                               nvidia,pins = "sdmmc1_dat3_py4";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc1_dat2_py5 {
+                               nvidia,pins = "sdmmc1_dat2_py5";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc1_dat1_py6 {
+                               nvidia,pins = "sdmmc1_dat1_py6";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc1_dat0_py7 {
+                               nvidia,pins = "sdmmc1_dat0_py7";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc1_clk_pz0 {
+                               nvidia,pins = "sdmmc1_clk_pz0";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc1_cmd_pz1 {
+                               nvidia,pins = "sdmmc1_cmd_pz1";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_sdin_pz2 {
+                               nvidia,pins = "lcd_sdin_pz2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_wr_n_pz3 {
+                               nvidia,pins = "lcd_wr_n_pz3";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       lcd_sck_pz4 {
+                               nvidia,pins = "lcd_sck_pz4";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sys_clk_req_pz5 {
+                               nvidia,pins = "sys_clk_req_pz5";
+                               nvidia,function = "sysclk";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pwr_i2c_scl_pz6 {
+                               nvidia,pins = "pwr_i2c_scl_pz6";
+                               nvidia,function = "i2cpwr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pwr_i2c_sda_pz7 {
+                               nvidia,pins = "pwr_i2c_sda_pz7";
+                               nvidia,function = "i2cpwr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc4_dat0_paa0 {
+                               nvidia,pins = "sdmmc4_dat0_paa0";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc4_dat1_paa1 {
+                               nvidia,pins = "sdmmc4_dat1_paa1";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc4_dat2_paa2 {
+                               nvidia,pins = "sdmmc4_dat2_paa2";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc4_dat3_paa3 {
+                               nvidia,pins = "sdmmc4_dat3_paa3";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc4_dat4_paa4 {
+                               nvidia,pins = "sdmmc4_dat4_paa4";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc4_dat5_paa5 {
+                               nvidia,pins = "sdmmc4_dat5_paa5";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc4_dat6_paa6 {
+                               nvidia,pins = "sdmmc4_dat6_paa6";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc4_dat7_paa7 {
+                               nvidia,pins = "sdmmc4_dat7_paa7";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb0 {
+                               nvidia,pins = "pbb0";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       cam_i2c_scl_pbb1 {
+                               nvidia,pins = "cam_i2c_scl_pbb1";
+                               nvidia,function = "i2c3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       cam_i2c_sda_pbb2 {
+                               nvidia,pins = "cam_i2c_sda_pbb2";
+                               nvidia,function = "i2c3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb3 {
+                               nvidia,pins = "pbb3";
+                               nvidia,function = "vgp3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb4 {
+                               nvidia,pins = "pbb4";
+                               nvidia,function = "vgp4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb5 {
+                               nvidia,pins = "pbb5";
+                               nvidia,function = "vgp5";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb6 {
+                               nvidia,pins = "pbb6";
+                               nvidia,function = "vgp6";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb7 {
+                               nvidia,pins = "pbb7";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       cam_mclk_pcc0 {
+                               nvidia,pins = "cam_mclk_pcc0";
+                               nvidia,function = "vi_alt3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pcc1 {
+                               nvidia,pins = "pcc1";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pcc2 {
+                               nvidia,pins = "pcc2";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc4_rst_n_pcc3 {
+                               nvidia,pins = "sdmmc4_rst_n_pcc3";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sdmmc4_clk_pcc4 {
+                               nvidia,pins = "sdmmc4_clk_pcc4";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk2_req_pcc5 {
+                               nvidia,pins = "clk2_req_pcc5";
+                               nvidia,function = "dap";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l2_rst_n_pcc6 {
+                               nvidia,pins = "pex_l2_rst_n_pcc6";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l2_clkreq_n_pcc7 {
+                               nvidia,pins = "pex_l2_clkreq_n_pcc7";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l0_prsnt_n_pdd0 {
+                               nvidia,pins = "pex_l0_prsnt_n_pdd0";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l0_rst_n_pdd1 {
+                               nvidia,pins = "pex_l0_rst_n_pdd1";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l0_clkreq_n_pdd2 {
+                               nvidia,pins = "pex_l0_clkreq_n_pdd2";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_wake_n_pdd3 {
+                               nvidia,pins = "pex_wake_n_pdd3";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l1_prsnt_n_pdd4 {
+                               nvidia,pins = "pex_l1_prsnt_n_pdd4";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l1_rst_n_pdd5 {
+                               nvidia,pins = "pex_l1_rst_n_pdd5";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l1_clkreq_n_pdd6 {
+                               nvidia,pins = "pex_l1_clkreq_n_pdd6";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l2_prsnt_n_pdd7 {
+                               nvidia,pins = "pex_l2_prsnt_n_pdd7";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk3_out_pee0 {
+                               nvidia,pins = "clk3_out_pee0";
+                               nvidia,function = "extperiph3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk3_req_pee1 {
+                               nvidia,pins = "clk3_req_pee1";
+                               nvidia,function = "dev3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       clk1_req_pee2 {
+                               nvidia,pins = "clk1_req_pee2";
+                               nvidia,function = "dap";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       hdmi_cec_pee3 {
+                               nvidia,pins = "hdmi_cec_pee3";
+                               nvidia,function = "cec";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       owr {
+                               nvidia,pins = "owr";
+                               nvidia,function = "owr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       drive_groups {
+                               nvidia,pins = "drive_gma",
+                                             "drive_gmb",
+                                             "drive_gmc",
+                                             "drive_gmd";
+                               nvidia,pull-down-strength = <9>;
+                               nvidia,pull-up-strength = <9>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                       };
                };
        };
-       emc-timings-2 {
-               nvidia,ram-code = <2>;  /* Hynix A RAM */
-               timing-25500000 {
-                       clock-frequency = <25500000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000001 /* EMC_RC */
-                               0x00000007 /* EMC_RFC */
-                               0x00000000 /* EMC_RAS */
-                               0x00000000 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000000 /* EMC_RD_RCD */
-                               0x00000000 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x000000c0 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000030 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x00000008 /* EMC_TXSR */
-                               0x00000008 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000002 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x000000c7 /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x007800a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS3 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS4 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS5 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS6 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00000000 /* EMC_ZCAL_INTERVAL */
-                               0x00000040 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x80000287 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-51000000 {
-                       clock-frequency = <51000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000002 /* EMC_RC */
-                               0x0000000f /* EMC_RFC */
-                               0x00000001 /* EMC_RAS */
-                               0x00000000 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000000 /* EMC_RD_RCD */
-                               0x00000000 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x00000181 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000060 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x00000010 /* EMC_TXSR */
-                               0x00000010 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000003 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x0000018e /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x007800a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS3 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS4 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS5 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS6 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00000000 /* EMC_ZCAL_INTERVAL */
-                               0x00000040 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x8000040b /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-102000000 {
-                       clock-frequency = <102000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000004 /* EMC_RC */
-                               0x0000001e /* EMC_RFC */
-                               0x00000003 /* EMC_RAS */
-                               0x00000001 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000001 /* EMC_RD_RCD */
-                               0x00000001 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x00000303 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x000000c0 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x00000020 /* EMC_TXSR */
-                               0x00000020 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000005 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x0000031c /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x007800a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS3 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS4 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS5 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS6 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ0 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ1 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ2 */
-                               0x000fc000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00000000 /* EMC_ZCAL_INTERVAL */
-                               0x00000040 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-204000000 {
-                       clock-frequency = <204000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100003>;
-                       nvidia,emc-mode-2 = <0x80200008>;
-                       nvidia,emc-mode-reset = <0x80001221>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-cfg-dyn-self-ref;
-                       nvidia,emc-configuration = <
-                               0x00000009 /* EMC_RC */
-                               0x0000003d /* EMC_RFC */
-                               0x00000007 /* EMC_RAS */
-                               0x00000002 /* EMC_RP */
-                               0x00000002 /* EMC_R2W */
-                               0x0000000a /* EMC_W2R */
-                               0x00000005 /* EMC_R2P */
-                               0x0000000b /* EMC_W2P */
-                               0x00000002 /* EMC_RD_RCD */
-                               0x00000002 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000005 /* EMC_WDV */
-                               0x00000005 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000b /* EMC_RDV */
-                               0x00000607 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000002 /* EMC_PDEX2WR */
-                               0x00000002 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000007 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x00000040 /* EMC_TXSR */
-                               0x00000040 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000009 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x00000638 /* EMC_TREFBW */
-                               0x00000006 /* EMC_QUSE_EXTRA */
-                               0x00000006 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00004288 /* EMC_FBIO_CFG5 */
-                               0x004400a4 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x00080000 /* EMC_DLL_XFORM_DQS0 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS1 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS2 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS3 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS4 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS5 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS6 */
-                               0x00080000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ0 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ1 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ2 */
-                               0x00080000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800211c /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f108 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x08000168 /* EMC_XM2QUSEPADCTRL */
-                               0x08000000 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00020000 /* EMC_ZCAL_INTERVAL */
-                               0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                               0x000c000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff00 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-400000000 {
-                       clock-frequency = <400000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100002>;
-                       nvidia,emc-mode-2 = <0x80200000>;
-                       nvidia,emc-mode-reset = <0x80000521>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-configuration = <
-                               0x00000012 /* EMC_RC */
-                               0x00000076 /* EMC_RFC */
-                               0x0000000c /* EMC_RAS */
-                               0x00000004 /* EMC_RP */
-                               0x00000003 /* EMC_R2W */
-                               0x00000008 /* EMC_W2R */
-                               0x00000002 /* EMC_R2P */
-                               0x0000000a /* EMC_W2P */
-                               0x00000004 /* EMC_RD_RCD */
-                               0x00000004 /* EMC_WR_RCD */
-                               0x00000002 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000004 /* EMC_WDV */
-                               0x00000006 /* EMC_QUSE */
-                               0x00000004 /* EMC_QRST */
-                               0x0000000a /* EMC_QSAFE */
-                               0x0000000c /* EMC_RDV */
-                               0x00000bf0 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x000002fc /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000001 /* EMC_PDEX2WR */
-                               0x00000008 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x00000008 /* EMC_AR2PDEN */
-                               0x0000000f /* EMC_RW2PDEN */
-                               0x0000007c /* EMC_TXSR */
-                               0x00000200 /* EMC_TXSRDLL */
-                               0x00000004 /* EMC_TCKE */
-                               0x00000010 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000004 /* EMC_TCLKSTABLE */
-                               0x00000005 /* EMC_TCLKSTOP */
-                               0x00000c30 /* EMC_TREFBW */
-                               0x00000000 /* EMC_QUSE_EXTRA */
-                               0x00000004 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00007088 /* EMC_FBIO_CFG5 */
-                               0x001d0084 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x00044000 /* EMC_DLL_XFORM_DQS0 */
-                               0x00044000 /* EMC_DLL_XFORM_DQS1 */
-                               0x00044000 /* EMC_DLL_XFORM_DQS2 */
-                               0x00044000 /* EMC_DLL_XFORM_DQS3 */
-                               0x00044000 /* EMC_DLL_XFORM_DQS4 */
-                               0x00044000 /* EMC_DLL_XFORM_DQS5 */
-                               0x00044000 /* EMC_DLL_XFORM_DQS6 */
-                               0x00044000 /* EMC_DLL_XFORM_DQS7 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00000000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x00058000 /* EMC_DLL_XFORM_DQ0 */
-                               0x00058000 /* EMC_DLL_XFORM_DQ1 */
-                               0x00058000 /* EMC_DLL_XFORM_DQ2 */
-                               0x00058000 /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0800013d /* EMC_XM2DQSPADCTRL2 */
-                               0x00000000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f508 /* EMC_XM2COMPPADCTRL */
-                               0x05057404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x080001e8 /* EMC_XM2QUSEPADCTRL */
-                               0x08000021 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00020000 /* EMC_ZCAL_INTERVAL */
-                               0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                               0x0148000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x800018c8 /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff89 /* EMC_CFG_RSV */
-                       >;
-               };
-               timing-800000000 {
-                       clock-frequency = <800000000>;
-                       nvidia,emc-auto-cal-interval = <0x001fffff>;
-                       nvidia,emc-mode-1 = <0x80100002>;
-                       nvidia,emc-mode-2 = <0x80200018>;
-                       nvidia,emc-mode-reset = <0x80000d71>;
-                       nvidia,emc-zcal-cnt-long = <0x00000040>;
-                       nvidia,emc-cfg-periodic-qrst;
-                       nvidia,emc-configuration = <
-                               0x00000025 /* EMC_RC */
-                               0x000000ee /* EMC_RFC */
-                               0x0000001a /* EMC_RAS */
-                               0x00000009 /* EMC_RP */
-                               0x00000005 /* EMC_R2W */
-                               0x0000000d /* EMC_W2R */
-                               0x00000004 /* EMC_R2P */
-                               0x00000013 /* EMC_W2P */
-                               0x00000009 /* EMC_RD_RCD */
-                               0x00000009 /* EMC_WR_RCD */
-                               0x00000003 /* EMC_RRD */
-                               0x00000001 /* EMC_REXT */
-                               0x00000000 /* EMC_WEXT */
-                               0x00000007 /* EMC_WDV */
-                               0x0000000a /* EMC_QUSE */
-                               0x00000009 /* EMC_QRST */
-                               0x0000000b /* EMC_QSAFE */
-                               0x00000011 /* EMC_RDV */
-                               0x00001820 /* EMC_REFRESH */
-                               0x00000000 /* EMC_BURST_REFRESH_NUM */
-                               0x00000608 /* EMC_PRE_REFRESH_REQ_CNT */
-                               0x00000003 /* EMC_PDEX2WR */
-                               0x00000012 /* EMC_PDEX2RD */
-                               0x00000001 /* EMC_PCHG2PDEN */
-                               0x00000000 /* EMC_ACT2PDEN */
-                               0x0000000f /* EMC_AR2PDEN */
-                               0x00000018 /* EMC_RW2PDEN */
-                               0x000000f8 /* EMC_TXSR */
-                               0x00000200 /* EMC_TXSRDLL */
-                               0x00000005 /* EMC_TCKE */
-                               0x00000020 /* EMC_TFAW */
-                               0x00000000 /* EMC_TRPAB */
-                               0x00000007 /* EMC_TCLKSTABLE */
-                               0x00000008 /* EMC_TCLKSTOP */
-                               0x00001860 /* EMC_TREFBW */
-                               0x0000000b /* EMC_QUSE_EXTRA */
-                               0x00000006 /* EMC_FBIO_CFG6 */
-                               0x00000000 /* EMC_ODT_WRITE */
-                               0x00000000 /* EMC_ODT_READ */
-                               0x00005088 /* EMC_FBIO_CFG5 */
-                               0xf0070191 /* EMC_CFG_DIG_DLL */
-                               0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
-                               0x0000000c /* EMC_DLL_XFORM_DQS0 */
-                               0x007fc00a /* EMC_DLL_XFORM_DQS1 */
-                               0x00000008 /* EMC_DLL_XFORM_DQS2 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS3 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS4 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS5 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS6 */
-                               0x0000000a /* EMC_DLL_XFORM_DQS7 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE0 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE1 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE2 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE3 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE4 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE5 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE6 */
-                               0x00018000 /* EMC_DLL_XFORM_QUSE7 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
-                               0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ0 */
-                               0x0000000c /* EMC_DLL_XFORM_DQ1 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ2 */
-                               0x0000000a /* EMC_DLL_XFORM_DQ3 */
-                               0x000002a0 /* EMC_XM2CMDPADCTRL */
-                               0x0600013d /* EMC_XM2DQSPADCTRL2 */
-                               0x22220000 /* EMC_XM2DQPADCTRL2 */
-                               0x77fff884 /* EMC_XM2CLKPADCTRL */
-                               0x01f1f501 /* EMC_XM2COMPPADCTRL */
-                               0x07077404 /* EMC_XM2VTTGENPADCTRL */
-                               0x54000000 /* EMC_XM2VTTGENPADCTRL2 */
-                               0x080001e8 /* EMC_XM2QUSEPADCTRL */
-                               0x0a000021 /* EMC_XM2DQSPADCTRL3 */
-                               0x00000802 /* EMC_CTT_TERM_CTRL */
-                               0x00020000 /* EMC_ZCAL_INTERVAL */
-                               0x00000100 /* EMC_ZCAL_WAIT_CNT */
-                               0x00d0000c /* EMC_MRS_WAIT_CNT */
-                               0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
-                               0x00000000 /* EMC_CTT */
-                               0x00000000 /* EMC_CTT_DURATION */
-                               0x8000308c /* EMC_DYN_SELF_REF_CONTROL */
-                               0xe8000000 /* EMC_FBIO_SPARE */
-                               0xff00ff49 /* EMC_CFG_RSV */
-                       >;
+
+       uartc: serial@70006200 {
+               compatible = "nvidia,tegra30-hsuart";
+               /delete-property/ reg-shift;
+               status = "okay";
+
+               nvidia,adjust-baud-rates = <0 9600 100>,
+                                          <9600 115200 200>,
+                                          <1000000 4000000 136>;
+
+               /* Azurewave AW-NH660 BCM4330B1 */
+               bluetooth {
+                       compatible = "brcm,bcm4330-bt";
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(U, 6) IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "host-wakeup";
+
+                       max-speed = <4000000>;
+
+                       clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+                       clock-names = "txco";
+
+                       vbat-supply  = <&sys_3v3_reg>;
+                       vddio-supply = <&vdd_1v8>;
+
+                       shutdown-gpios = <&gpio TEGRA_GPIO(U, 0) GPIO_ACTIVE_HIGH>;
+                       device-wakeup-gpios = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
                };
        };
-};
-&state_default {
-       clk_32k_out_pa0 {
-               nvidia,pins = "clk_32k_out_pa0";
-               nvidia,function = "blink";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       uart3_cts_n_pa1 {
-               nvidia,pins = "uart3_cts_n_pa1";
-               nvidia,function = "uartc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap2_fs_pa2 {
-               nvidia,pins = "dap2_fs_pa2";
-               nvidia,function = "i2s1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap2_sclk_pa3 {
-               nvidia,pins = "dap2_sclk_pa3";
-               nvidia,function = "i2s1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap2_din_pa4 {
-               nvidia,pins = "dap2_din_pa4";
-               nvidia,function = "i2s1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap2_dout_pa5 {
-               nvidia,pins = "dap2_dout_pa5";
-               nvidia,function = "i2s1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       sdmmc3_clk_pa6 {
-               nvidia,pins = "sdmmc3_clk_pa6";
-               nvidia,function = "sdmmc3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       sdmmc3_cmd_pa7 {
-               nvidia,pins = "sdmmc3_cmd_pa7";
-               nvidia,function = "sdmmc3";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gmi_a17_pb0 {
-               nvidia,pins = "gmi_a17_pb0";
-               nvidia,function = "spi4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_a18_pb1 {
-               nvidia,pins = "gmi_a18_pb1";
-               nvidia,function = "spi4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_pwr0_pb2 {
-               nvidia,pins = "lcd_pwr0_pb2";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_pclk_pb3 {
-               nvidia,pins = "lcd_pclk_pb3";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc3_dat3_pb4 {
-               nvidia,pins = "sdmmc3_dat3_pb4";
-               nvidia,function = "sdmmc3";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       sdmmc3_dat2_pb5 {
-               nvidia,pins = "sdmmc3_dat2_pb5";
-               nvidia,function = "sdmmc3";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       sdmmc3_dat1_pb6 {
-               nvidia,pins = "sdmmc3_dat1_pb6";
-               nvidia,function = "sdmmc3";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       sdmmc3_dat0_pb7 {
-               nvidia,pins = "sdmmc3_dat0_pb7";
-               nvidia,function = "sdmmc3";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       uart3_rts_n_pc0 {
-               nvidia,pins = "uart3_rts_n_pc0";
-               nvidia,function = "uartc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_pwr1_pc1 {
-               nvidia,pins = "lcd_pwr1_pc1";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       uart2_txd_pc2 {
-               nvidia,pins = "uart2_txd_pc2";
-               nvidia,function = "uartb";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       uart2_rxd_pc3 {
-               nvidia,pins = "uart2_rxd_pc3";
-               nvidia,function = "uartb";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gen1_i2c_scl_pc4 {
-               nvidia,pins = "gen1_i2c_scl_pc4";
-               nvidia,function = "i2c1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
-       };
-       gen1_i2c_sda_pc5 {
-               nvidia,pins = "gen1_i2c_sda_pc5";
-               nvidia,function = "i2c1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_pwr2_pc6 {
-               nvidia,pins = "lcd_pwr2_pc6";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_wp_n_pc7 {
-               nvidia,pins = "gmi_wp_n_pc7";
-               nvidia,function = "gmi";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       sdmmc3_dat5_pd0 {
-               nvidia,pins = "sdmmc3_dat5_pd0";
-               nvidia,function = "sdmmc3";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc3_dat4_pd1 {
-               nvidia,pins = "sdmmc3_dat4_pd1";
-               nvidia,function = "sdmmc3";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       lcd_dc1_pd2 {
-               nvidia,pins = "lcd_dc1_pd2";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc3_dat6_pd3 {
-               nvidia,pins = "sdmmc3_dat6_pd3";
-               nvidia,function = "spi4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc3_dat7_pd4 {
-               nvidia,pins = "sdmmc3_dat7_pd4";
-               nvidia,function = "spi4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d1_pd5 {
-               nvidia,pins = "vi_d1_pd5";
-               nvidia,function = "sdmmc2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       vi_vsync_pd6 {
-               nvidia,pins = "vi_vsync_pd6";
-               nvidia,function = "ddr";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       vi_hsync_pd7 {
-               nvidia,pins = "vi_hsync_pd7";
-               nvidia,function = "ddr";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       lcd_d0_pe0 {
-               nvidia,pins = "lcd_d0_pe0";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d1_pe1 {
-               nvidia,pins = "lcd_d1_pe1";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d2_pe2 {
-               nvidia,pins = "lcd_d2_pe2";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d3_pe3 {
-               nvidia,pins = "lcd_d3_pe3";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d4_pe4 {
-               nvidia,pins = "lcd_d4_pe4";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d5_pe5 {
-               nvidia,pins = "lcd_d5_pe5";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d6_pe6 {
-               nvidia,pins = "lcd_d6_pe6";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d7_pe7 {
-               nvidia,pins = "lcd_d7_pe7";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d8_pf0 {
-               nvidia,pins = "lcd_d8_pf0";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d9_pf1 {
-               nvidia,pins = "lcd_d9_pf1";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d10_pf2 {
-               nvidia,pins = "lcd_d10_pf2";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d11_pf3 {
-               nvidia,pins = "lcd_d11_pf3";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d12_pf4 {
-               nvidia,pins = "lcd_d12_pf4";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d13_pf5 {
-               nvidia,pins = "lcd_d13_pf5";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d14_pf6 {
-               nvidia,pins = "lcd_d14_pf6";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d15_pf7 {
-               nvidia,pins = "lcd_d15_pf7";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_ad0_pg0 {
-               nvidia,pins = "gmi_ad0_pg0";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gmi_ad1_pg1 {
-               nvidia,pins = "gmi_ad1_pg1";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_ad2_pg2 {
-               nvidia,pins = "gmi_ad2_pg2";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gmi_ad3_pg3 {
-               nvidia,pins = "gmi_ad3_pg3";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gmi_ad4_pg4 {
-               nvidia,pins = "gmi_ad4_pg4";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gmi_ad5_pg5 {
-               nvidia,pins = "gmi_ad5_pg5";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gmi_ad6_pg6 {
-               nvidia,pins = "gmi_ad6_pg6";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gmi_ad7_pg7 {
-               nvidia,pins = "gmi_ad7_pg7";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gmi_ad8_ph0 {
-               nvidia,pins = "gmi_ad8_ph0";
-               nvidia,function = "pwm0";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_ad9_ph1 {
-               nvidia,pins = "gmi_ad9_ph1";
-               nvidia,function = "pwm1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_ad10_ph2 {
-               nvidia,pins = "gmi_ad10_ph2";
-               nvidia,function = "pwm2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_ad11_ph3 {
-               nvidia,pins = "gmi_ad11_ph3";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_ad12_ph4 {
-               nvidia,pins = "gmi_ad12_ph4";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_ad13_ph5 {
-               nvidia,pins = "gmi_ad13_ph5";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_ad14_ph6 {
-               nvidia,pins = "gmi_ad14_ph6";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_wr_n_pi0 {
-               nvidia,pins = "gmi_wr_n_pi0";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_oe_n_pi1 {
-               nvidia,pins = "gmi_oe_n_pi1";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_dqs_pi2 {
-               nvidia,pins = "gmi_dqs_pi2";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_iordy_pi5 {
-               nvidia,pins = "gmi_iordy_pi5";
-               nvidia,function = "rsvd1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_cs7_n_pi6 {
-               nvidia,pins = "gmi_cs7_n_pi6";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_wait_pi7 {
-               nvidia,pins = "gmi_wait_pi7";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_de_pj1 {
-               nvidia,pins = "lcd_de_pj1";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_cs1_n_pj2 {
-               nvidia,pins = "gmi_cs1_n_pj2";
-               nvidia,function = "rsvd1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_hsync_pj3 {
-               nvidia,pins = "lcd_hsync_pj3";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_vsync_pj4 {
-               nvidia,pins = "lcd_vsync_pj4";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       uart2_cts_n_pj5 {
-               nvidia,pins = "uart2_cts_n_pj5";
-               nvidia,function = "uartb";
-               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       uart2_rts_n_pj6 {
-               nvidia,pins = "uart2_rts_n_pj6";
-               nvidia,function = "uartb";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_a16_pj7 {
-               nvidia,pins = "gmi_a16_pj7";
-               nvidia,function = "spi4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_adv_n_pk0 {
-               nvidia,pins = "gmi_adv_n_pk0";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_clk_pk1 {
-               nvidia,pins = "gmi_clk_pk1";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_cs2_n_pk3 {
-               nvidia,pins = "gmi_cs2_n_pk3";
-               nvidia,function = "rsvd1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       gmi_cs3_n_pk4 {
-               nvidia,pins = "gmi_cs3_n_pk4";
-               nvidia,function = "nand";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       spdif_out_pk5 {
-               nvidia,pins = "spdif_out_pk5";
-               nvidia,function = "spdif";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       spdif_in_pk6 {
-               nvidia,pins = "spdif_in_pk6";
-               nvidia,function = "spdif";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gmi_a19_pk7 {
-               nvidia,pins = "gmi_a19_pk7";
-               nvidia,function = "spi4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d2_pl0 {
-               nvidia,pins = "vi_d2_pl0";
-               nvidia,function = "sdmmc2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d3_pl1 {
-               nvidia,pins = "vi_d3_pl1";
-               nvidia,function = "sdmmc2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d4_pl2 {
-               nvidia,pins = "vi_d4_pl2";
-               nvidia,function = "vi";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d5_pl3 {
-               nvidia,pins = "vi_d5_pl3";
-               nvidia,function = "sdmmc2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d6_pl4 {
-               nvidia,pins = "vi_d6_pl4";
-               nvidia,function = "vi";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d7_pl5 {
-               nvidia,pins = "vi_d7_pl5";
-               nvidia,function = "sdmmc2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d8_pl6 {
-               nvidia,pins = "vi_d8_pl6";
-               nvidia,function = "sdmmc2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d9_pl7 {
-               nvidia,pins = "vi_d9_pl7";
-               nvidia,function = "sdmmc2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d16_pm0 {
-               nvidia,pins = "lcd_d16_pm0";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d17_pm1 {
-               nvidia,pins = "lcd_d17_pm1";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d18_pm2 {
-               nvidia,pins = "lcd_d18_pm2";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d19_pm3 {
-               nvidia,pins = "lcd_d19_pm3";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d20_pm4 {
-               nvidia,pins = "lcd_d20_pm4";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d21_pm5 {
-               nvidia,pins = "lcd_d21_pm5";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d22_pm6 {
-               nvidia,pins = "lcd_d22_pm6";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_d23_pm7 {
-               nvidia,pins = "lcd_d23_pm7";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       dap1_fs_pn0 {
-               nvidia,pins = "dap1_fs_pn0";
-               nvidia,function = "i2s0";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap1_din_pn1 {
-               nvidia,pins = "dap1_din_pn1";
-               nvidia,function = "i2s0";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap1_dout_pn2 {
-               nvidia,pins = "dap1_dout_pn2";
-               nvidia,function = "i2s0";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap1_sclk_pn3 {
-               nvidia,pins = "dap1_sclk_pn3";
-               nvidia,function = "i2s0";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       lcd_cs0_n_pn4 {
-               nvidia,pins = "lcd_cs0_n_pn4";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_sdout_pn5 {
-               nvidia,pins = "lcd_sdout_pn5";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_dc0_pn6 {
-               nvidia,pins = "lcd_dc0_pn6";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       hdmi_int_pn7 {
-               nvidia,pins = "hdmi_int_pn7";
-               nvidia,function = "hdmi";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       ulpi_data7_po0 {
-               nvidia,pins = "ulpi_data7_po0";
-               nvidia,function = "uarta";
-               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       ulpi_data0_po1 {
-               nvidia,pins = "ulpi_data0_po1";
-               nvidia,function = "uarta";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       ulpi_data1_po2 {
-               nvidia,pins = "ulpi_data1_po2";
-               nvidia,function = "uarta";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       ulpi_data2_po3 {
-               nvidia,pins = "ulpi_data2_po3";
-               nvidia,function = "uarta";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       ulpi_data3_po4 {
-               nvidia,pins = "ulpi_data3_po4";
-               nvidia,function = "uarta";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       ulpi_data4_po5 {
-               nvidia,pins = "ulpi_data4_po5";
-               nvidia,function = "uarta";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       ulpi_data5_po6 {
-               nvidia,pins = "ulpi_data5_po6";
-               nvidia,function = "uarta";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       ulpi_data6_po7 {
-               nvidia,pins = "ulpi_data6_po7";
-               nvidia,function = "uarta";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       dap3_fs_pp0 {
-               nvidia,pins = "dap3_fs_pp0";
-               nvidia,function = "i2s2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap3_din_pp1 {
-               nvidia,pins = "dap3_din_pp1";
-               nvidia,function = "i2s2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap3_dout_pp2 {
-               nvidia,pins = "dap3_dout_pp2";
-               nvidia,function = "i2s2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap3_sclk_pp3 {
-               nvidia,pins = "dap3_sclk_pp3";
-               nvidia,function = "i2s2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap4_fs_pp4 {
-               nvidia,pins = "dap4_fs_pp4";
-               nvidia,function = "i2s3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap4_din_pp5 {
-               nvidia,pins = "dap4_din_pp5";
-               nvidia,function = "i2s3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap4_dout_pp6 {
-               nvidia,pins = "dap4_dout_pp6";
-               nvidia,function = "i2s3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       dap4_sclk_pp7 {
-               nvidia,pins = "dap4_sclk_pp7";
-               nvidia,function = "i2s3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       kb_col0_pq0 {
-               nvidia,pins = "kb_col0_pq0";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_col1_pq1 {
-               nvidia,pins = "kb_col1_pq1";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_col2_pq2 {
-               nvidia,pins = "kb_col2_pq2";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_col3_pq3 {
-               nvidia,pins = "kb_col3_pq3";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_col4_pq4 {
-               nvidia,pins = "kb_col4_pq4";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_col5_pq5 {
-               nvidia,pins = "kb_col5_pq5";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_col6_pq6 {
-               nvidia,pins = "kb_col6_pq6";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_col7_pq7 {
-               nvidia,pins = "kb_col7_pq7";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row0_pr0 {
-               nvidia,pins = "kb_row0_pr0";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row1_pr1 {
-               nvidia,pins = "kb_row1_pr1";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row2_pr2 {
-               nvidia,pins = "kb_row2_pr2";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row3_pr3 {
-               nvidia,pins = "kb_row3_pr3";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row4_pr4 {
-               nvidia,pins = "kb_row4_pr4";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row5_pr5 {
-               nvidia,pins = "kb_row5_pr5";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row6_pr6 {
-               nvidia,pins = "kb_row6_pr6";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row7_pr7 {
-               nvidia,pins = "kb_row7_pr7";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       kb_row8_ps0 {
-               nvidia,pins = "kb_row8_ps0";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row9_ps1 {
-               nvidia,pins = "kb_row9_ps1";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row10_ps2 {
-               nvidia,pins = "kb_row10_ps2";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row11_ps3 {
-               nvidia,pins = "kb_row11_ps3";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row12_ps4 {
-               nvidia,pins = "kb_row12_ps4";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row13_ps5 {
-               nvidia,pins = "kb_row13_ps5";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row14_ps6 {
-               nvidia,pins = "kb_row14_ps6";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       kb_row15_ps7 {
-               nvidia,pins = "kb_row15_ps7";
-               nvidia,function = "kbc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_pclk_pt0 {
-               nvidia,pins = "vi_pclk_pt0";
-               nvidia,function = "rsvd1";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_mclk_pt1 {
-               nvidia,pins = "vi_mclk_pt1";
-               nvidia,function = "vi";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       vi_d10_pt2 {
-               nvidia,pins = "vi_d10_pt2";
-               nvidia,function = "ddr";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       vi_d11_pt3 {
-               nvidia,pins = "vi_d11_pt3";
-               nvidia,function = "ddr";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       vi_d0_pt4 {
-               nvidia,pins = "vi_d0_pt4";
-               nvidia,function = "ddr";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       gen2_i2c_scl_pt5 {
-               nvidia,pins = "gen2_i2c_scl_pt5";
-               nvidia,function = "i2c2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
-       };
-       gen2_i2c_sda_pt6 {
-               nvidia,pins = "gen2_i2c_sda_pt6";
-               nvidia,function = "i2c2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc4_cmd_pt7 {
-               nvidia,pins = "sdmmc4_cmd_pt7";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
-       };
-       pu0 {
-               nvidia,pins = "pu0";
-               nvidia,function = "owr";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pu1 {
-               nvidia,pins = "pu1";
-               nvidia,function = "rsvd1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pu2 {
-               nvidia,pins = "pu2";
-               nvidia,function = "rsvd1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pu3 {
-               nvidia,pins = "pu3";
-               nvidia,function = "pwm0";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pu4 {
-               nvidia,pins = "pu4";
-               nvidia,function = "pwm1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pu5 {
-               nvidia,pins = "pu5";
-               nvidia,function = "rsvd4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pu6 {
-               nvidia,pins = "pu6";
-               nvidia,function = "pwm3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       jtag_rtck_pu7 {
-               nvidia,pins = "jtag_rtck_pu7";
-               nvidia,function = "rtck";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pv0 {
-               nvidia,pins = "pv0";
-               nvidia,function = "rsvd1";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       pv1 {
-               nvidia,pins = "pv1";
-               nvidia,function = "rsvd1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pv2 {
-               nvidia,pins = "pv2";
-               nvidia,function = "owr";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pv3 {
-               nvidia,pins = "pv3";
-               nvidia,function = "clk_12m_out";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       ddc_scl_pv4 {
-               nvidia,pins = "ddc_scl_pv4";
-               nvidia,function = "i2c4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       ddc_sda_pv5 {
-               nvidia,pins = "ddc_sda_pv5";
-               nvidia,function = "i2c4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       crt_hsync_pv6 {
-               nvidia,pins = "crt_hsync_pv6";
-               nvidia,function = "crt";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       crt_vsync_pv7 {
-               nvidia,pins = "crt_vsync_pv7";
-               nvidia,function = "crt";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_cs1_n_pw0 {
-               nvidia,pins = "lcd_cs1_n_pw0";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_m1_pw1 {
-               nvidia,pins = "lcd_m1_pw1";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       spi2_cs1_n_pw2 {
-               nvidia,pins = "spi2_cs1_n_pw2";
-               nvidia,function = "spi2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       clk1_out_pw4 {
-               nvidia,pins = "clk1_out_pw4";
-               nvidia,function = "extperiph1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       clk2_out_pw5 {
-               nvidia,pins = "clk2_out_pw5";
-               nvidia,function = "extperiph2";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       uart3_txd_pw6 {
-               nvidia,pins = "uart3_txd_pw6";
-               nvidia,function = "uartc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       uart3_rxd_pw7 {
-               nvidia,pins = "uart3_rxd_pw7";
-               nvidia,function = "uartc";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       spi2_sck_px2 {
-               nvidia,pins = "spi2_sck_px2";
-               nvidia,function = "gmi";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       spi1_mosi_px4 {
-               nvidia,pins = "spi1_mosi_px4";
-               nvidia,function = "spi1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       spi1_sck_px5 {
-               nvidia,pins = "spi1_sck_px5";
-               nvidia,function = "spi1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       spi1_cs0_n_px6 {
-               nvidia,pins = "spi1_cs0_n_px6";
-               nvidia,function = "spi1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       spi1_miso_px7 {
-               nvidia,pins = "spi1_miso_px7";
-               nvidia,function = "spi1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       ulpi_clk_py0 {
-               nvidia,pins = "ulpi_clk_py0";
-               nvidia,function = "uartd";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       ulpi_dir_py1 {
-               nvidia,pins = "ulpi_dir_py1";
-               nvidia,function = "uartd";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       ulpi_nxt_py2 {
-               nvidia,pins = "ulpi_nxt_py2";
-               nvidia,function = "uartd";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-       };
-       ulpi_stp_py3 {
-               nvidia,pins = "ulpi_stp_py3";
-               nvidia,function = "uartd";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc1_dat3_py4 {
-               nvidia,pins = "sdmmc1_dat3_py4";
-               nvidia,function = "sdmmc1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc1_dat2_py5 {
-               nvidia,pins = "sdmmc1_dat2_py5";
-               nvidia,function = "sdmmc1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc1_dat1_py6 {
-               nvidia,pins = "sdmmc1_dat1_py6";
-               nvidia,function = "sdmmc1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc1_dat0_py7 {
-               nvidia,pins = "sdmmc1_dat0_py7";
-               nvidia,function = "sdmmc1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc1_clk_pz0 {
-               nvidia,pins = "sdmmc1_clk_pz0";
-               nvidia,function = "sdmmc1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc1_cmd_pz1 {
-               nvidia,pins = "sdmmc1_cmd_pz1";
-               nvidia,function = "sdmmc1";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_sdin_pz2 {
-               nvidia,pins = "lcd_sdin_pz2";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_wr_n_pz3 {
-               nvidia,pins = "lcd_wr_n_pz3";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       lcd_sck_pz4 {
-               nvidia,pins = "lcd_sck_pz4";
-               nvidia,function = "displaya";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       sys_clk_req_pz5 {
-               nvidia,pins = "sys_clk_req_pz5";
-               nvidia,function = "sysclk";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-       };
-       pwr_i2c_scl_pz6 {
-               nvidia,pins = "pwr_i2c_scl_pz6";
-               nvidia,function = "i2cpwr";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
-       };
-       pwr_i2c_sda_pz7 {
-               nvidia,pins = "pwr_i2c_sda_pz7";
-               nvidia,function = "i2cpwr";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
-       };
-       sdmmc4_dat0_paa0 {
-               nvidia,pins = "sdmmc4_dat0_paa0";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc4_dat1_paa1 {
-               nvidia,pins = "sdmmc4_dat1_paa1";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc4_dat2_paa2 {
-               nvidia,pins = "sdmmc4_dat2_paa2";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc4_dat3_paa3 {
-               nvidia,pins = "sdmmc4_dat3_paa3";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc4_dat4_paa4 {
-               nvidia,pins = "sdmmc4_dat4_paa4";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc4_dat5_paa5 {
-               nvidia,pins = "sdmmc4_dat5_paa5";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
-       };
-       sdmmc4_dat6_paa6 {
-               nvidia,pins = "sdmmc4_dat6_paa6";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+
+       uartd: serial@70006300 {
+               status = "okay";
        };
-       sdmmc4_dat7_paa7 {
-               nvidia,pins = "sdmmc4_dat7_paa7";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_UP>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+
+       hdmi_ddc: i2c@7000c700 {
+               status = "okay";
+               clock-frequency = <100000>;
        };
-       pbb0 {
-               nvidia,pins = "pbb0";
-               nvidia,function = "i2s4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       i2c@7000d000 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               cpu_temp: nct1008@4c {
+                       compatible = "onnn,nct1008";
+                       reg = <0x4c>;
+                       vcc-supply = <&sys_3v3_reg>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_EDGE_FALLING>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
+               pmic: pmic@2d {
+                       compatible = "ti,tps65911";
+                       reg = <0x2d>;
+
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       wakeup-source;
+
+                       ti,en-gpio-sleep = <0 1 1 1 1 1 0 0 1>;
+                       ti,system-power-controller;
+                       ti,sleep-keep-ck32k;
+                       ti,sleep-enable;
+
+                       #gpio-cells = <2>;
+                       gpio-controller;
+
+                       vcc1-supply = <&vdd_5v0_reg>;
+                       vcc2-supply = <&vdd_5v0_reg>;
+                       vcc3-supply = <&vdd_1v8>;
+                       vcc4-supply = <&vdd_5v0_reg>;
+                       vcc5-supply = <&vdd_5v0_reg>;
+                       vcc6-supply = <&vdd2_reg>;
+                       vcc7-supply = <&vdd_5v0_reg>;
+                       vccio-supply = <&vdd_5v0_reg>;
+
+                       regulators {
+                               vdd1_reg: vdd1 {
+                                       regulator-name = "vddio_ddr_1v2";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                               };
+
+                               vdd2_reg: vdd2 {
+                                       regulator-name = "vdd_1v5_gen";
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <1500000>;
+                                       regulator-always-on;
+                               };
+
+                               vdd_cpu: vddctrl {
+                                       regulator-name = "vdd_cpu,vdd_sys";
+                                       regulator-min-microvolt = <800000>;
+                                       regulator-max-microvolt = <1270000>;
+                                       regulator-coupled-with = <&vdd_core>;
+                                       regulator-coupled-max-spread = <300000>;
+                                       regulator-max-step-microvolt = <100000>;
+                                       regulator-always-on;
+
+                                       nvidia,tegra-cpu-regulator;
+                               };
+
+                               vdd_1v8: vio {
+                                       regulator-name = "vdd_1v8_gen";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo1_reg: ldo1 {
+                                       regulator-name = "vdd_pexa,vdd_pexb";
+                                       regulator-min-microvolt = <1050000>;
+                                       regulator-max-microvolt = <1050000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo2_reg: ldo2 {
+                                       regulator-name = "vdd_sata,avdd_plle";
+                                       regulator-min-microvolt = <1050000>;
+                                       regulator-max-microvolt = <1050000>;
+                                       regulator-always-on;
+                               };
+
+                               /* LDO3 is not connected to anything */
+
+                               ldo4_reg: ldo4 {
+                                       regulator-name = "vdd_rtc";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo5_reg: ldo5 {
+                                       regulator-name = "vddio_sdmmc,avdd_vdac";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo6_reg: ldo6 {
+                                       regulator-name = "avdd_dsi_csi,pwrdet_mipi";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo7_reg: ldo7 {
+                                       regulator-name = "vdd_pllm,x,u,a_p_c_s";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo8_reg: ldo8 {
+                                       regulator-name = "vdd_ddr_hs";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                               };
+                       };
+               };
+
+               vdd_core: tps62361@60 {
+                       compatible = "ti,tps62361";
+                       reg = <0x60>;
+
+                       regulator-name = "vdd_core";
+                       regulator-min-microvolt = <950000>;
+                       regulator-max-microvolt = <1350000>;
+                       regulator-coupled-with = <&vdd_cpu>;
+                       regulator-coupled-max-spread = <300000>;
+                       regulator-max-step-microvolt = <100000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+                       ti,vsel0-state-high;
+                       ti,vsel1-state-high;
+                       ti,enable-vout-discharge;
+
+                       nvidia,tegra-core-regulator;
+               };
        };
-       cam_i2c_scl_pbb1 {
-               nvidia,pins = "cam_i2c_scl_pbb1";
-               nvidia,function = "i2c3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+
+       pmc@7000e400 {
+               status = "okay";
+               nvidia,invert-interrupt;
+               nvidia,suspend-mode = <1>;
+               nvidia,cpu-pwr-good-time = <2000>;
+               nvidia,cpu-pwr-off-time = <200>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <458>;
+               nvidia,core-power-req-active-high;
+               nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
        };
-       cam_i2c_sda_pbb2 {
-               nvidia,pins = "cam_i2c_sda_pbb2";
-               nvidia,function = "i2c3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
-               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+
+       memory-controller@7000f000 {
+               emc-timings-0 {
+                       nvidia,ram-code = <0>; /* Samsung RAM */
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+                               nvidia,emem-configuration = <
+                                       0x00030003 /* MC_EMEM_ARB_CFG */
+                                       0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x75830303 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+                               nvidia,emem-configuration = <
+                                       0x00010003 /* MC_EMEM_ARB_CFG */
+                                       0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74630303 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000003 /* MC_EMEM_ARB_CFG */
+                                       0xc0000018 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0503 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73c30504 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000006 /* MC_EMEM_ARB_CFG */
+                                       0xc0000025 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0505 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73840a06 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+                               nvidia,emem-configuration = <
+                                       0x0000000c /* MC_EMEM_ARB_CFG */
+                                       0xc0000048 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x7086120a /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000018 /* MC_EMEM_ARB_CFG */
+                                       0xc0000090 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000013 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x08040202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x712c2414 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+               };
+
+               emc-timings-1 {
+                       nvidia,ram-code = <1>; /* Hynix M RAM */
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+                               nvidia,emem-configuration = <
+                                       0x00030003 /* MC_EMEM_ARB_CFG */
+                                       0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x75830303 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+                               nvidia,emem-configuration = <
+                                       0x00010003 /* MC_EMEM_ARB_CFG */
+                                       0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74630303 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000003 /* MC_EMEM_ARB_CFG */
+                                       0xc0000018 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0503 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73c30504 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000006 /* MC_EMEM_ARB_CFG */
+                                       0xc0000025 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0505 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x73840a06 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+                               nvidia,emem-configuration = <
+                                       0x0000000c /* MC_EMEM_ARB_CFG */
+                                       0xc0000048 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x7086120a /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000018 /* MC_EMEM_ARB_CFG */
+                                       0xc0000090 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000013 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x08040202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x712c2414 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+               };
+
+               emc-timings-2 {
+                       nvidia,ram-code = <2>; /* Hynix A RAM */
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+                               nvidia,emem-configuration = <
+                                       0x00030003 /* MC_EMEM_ARB_CFG */
+                                       0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x75e30303 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+                               nvidia,emem-configuration = <
+                                       0x00010003 /* MC_EMEM_ARB_CFG */
+                                       0xc0000010 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0502 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74e30303 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000003 /* MC_EMEM_ARB_CFG */
+                                       0xc0000018 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000000 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0503 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74430504 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000006 /* MC_EMEM_ARB_CFG */
+                                       0xc0000025 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06020102 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000a0505 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x74040a06 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+                               nvidia,emem-configuration = <
+                                       0x0000000c /* MC_EMEM_ARB_CFG */
+                                       0xc0000048 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000009 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x00000007 /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000001 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000006 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x06030202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x000d0709 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x7086120a /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+                               nvidia,emem-configuration = <
+                                       0x00000018 /* MC_EMEM_ARB_CFG */
+                                       0xc0000090 /* MC_EMEM_ARB_OUTSTANDING_REQ */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_RCD */
+                                       0x00000005 /* MC_EMEM_ARB_TIMING_RP */
+                                       0x00000013 /* MC_EMEM_ARB_TIMING_RC */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_RAS */
+                                       0x0000000f /* MC_EMEM_ARB_TIMING_FAW */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_RRD */
+                                       0x00000003 /* MC_EMEM_ARB_TIMING_RAP2PRE */
+                                       0x0000000c /* MC_EMEM_ARB_TIMING_WAP2PRE */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_R2R */
+                                       0x00000002 /* MC_EMEM_ARB_TIMING_W2W */
+                                       0x00000004 /* MC_EMEM_ARB_TIMING_R2W */
+                                       0x00000008 /* MC_EMEM_ARB_TIMING_W2R */
+                                       0x08040202 /* MC_EMEM_ARB_DA_TURNS */
+                                       0x00160d13 /* MC_EMEM_ARB_DA_COVERS */
+                                       0x712c2414 /* MC_EMEM_ARB_MISC0 */
+                                       0x001f0000 /* MC_EMEM_ARB_RING1_THROTTLE */
+                               >;
+                       };
+               };
        };
-       pbb3 {
-               nvidia,pins = "pbb3";
-               nvidia,function = "vgp3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       memory-controller@7000f400 {
+               emc-timings-0 {
+                       nvidia,ram-code = <0>;  /* Samsung RAM */
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000001 /* EMC_RC */
+                                       0x00000006 /* EMC_RFC */
+                                       0x00000000 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x000000c0 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000030 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000007 /* EMC_TXSR */
+                                       0x00000007 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000002 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x000000c7 /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x007800a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00000000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000040 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x80000287 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000002 /* EMC_RC */
+                                       0x0000000d /* EMC_RFC */
+                                       0x00000001 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x00000181 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000060 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000000e /* EMC_TXSR */
+                                       0x0000000e /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000003 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000018e /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x007800a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00000000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000040 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x8000040b /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000004 /* EMC_RC */
+                                       0x0000001a /* EMC_RFC */
+                                       0x00000003 /* EMC_RAS */
+                                       0x00000001 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000001 /* EMC_RD_RCD */
+                                       0x00000001 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x00000303 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000000c0 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000001c /* EMC_TXSR */
+                                       0x0000001c /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000031c /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x007800a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00000000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000040 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000009 /* EMC_RC */
+                                       0x00000035 /* EMC_RFC */
+                                       0x00000007 /* EMC_RAS */
+                                       0x00000002 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000002 /* EMC_RD_RCD */
+                                       0x00000002 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x00000607 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000038 /* EMC_TXSR */
+                                       0x00000038 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000009 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000638 /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000006 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x004400a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00020000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-reset = <0x80000521>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-configuration = <
+                                       0x00000012 /* EMC_RC */
+                                       0x00000066 /* EMC_RFC */
+                                       0x0000000c /* EMC_RAS */
+                                       0x00000004 /* EMC_RP */
+                                       0x00000003 /* EMC_R2W */
+                                       0x00000008 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x0000000a /* EMC_W2P */
+                                       0x00000004 /* EMC_RD_RCD */
+                                       0x00000004 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000004 /* EMC_WDV */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000c /* EMC_RDV */
+                                       0x00000bf0 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000002fc /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000001 /* EMC_PDEX2WR */
+                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000008 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000006c /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000010 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000c30 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00007088 /* EMC_FBIO_CFG5 */
+                                       0x001d0084 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800013d /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f508 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x080001e8 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000021 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00020000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x0158000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x800018c8 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff89 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-reset = <0x80000d71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-configuration = <
+                                       0x00000025 /* EMC_RC */
+                                       0x000000ce /* EMC_RFC */
+                                       0x0000001a /* EMC_RAS */
+                                       0x00000009 /* EMC_RP */
+                                       0x00000005 /* EMC_R2W */
+                                       0x0000000d /* EMC_W2R */
+                                       0x00000004 /* EMC_R2P */
+                                       0x00000013 /* EMC_W2P */
+                                       0x00000009 /* EMC_RD_RCD */
+                                       0x00000009 /* EMC_WR_RCD */
+                                       0x00000004 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000007 /* EMC_WDV */
+                                       0x0000000a /* EMC_QUSE */
+                                       0x00000009 /* EMC_QRST */
+                                       0x0000000b /* EMC_QSAFE */
+                                       0x00000011 /* EMC_RDV */
+                                       0x00001820 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000608 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000003 /* EMC_PDEX2WR */
+                                       0x00000012 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x0000000f /* EMC_AR2PDEN */
+                                       0x00000018 /* EMC_RW2PDEN */
+                                       0x000000d8 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000005 /* EMC_TCKE */
+                                       0x00000020 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000007 /* EMC_TCLKSTABLE */
+                                       0x00000008 /* EMC_TCLKSTOP */
+                                       0x00001860 /* EMC_TREFBW */
+                                       0x0000000b /* EMC_QUSE_EXTRA */
+                                       0x00000006 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00005088 /* EMC_FBIO_CFG5 */
+                                       0xf0070191 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0000800a /* EMC_DLL_XFORM_DQS0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0600013d /* EMC_XM2DQSPADCTRL2 */
+                                       0x22220000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f501 /* EMC_XM2COMPPADCTRL */
+                                       0x07077404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x080001e8 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000021 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00020000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x00f0000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x8000308c /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff49 /* EMC_CFG_RSV */
+                               >;
+                       };
+               };
+
+               emc-timings-1 {
+                       nvidia,ram-code = <1>;  /* Hynix M RAM */
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000001 /* EMC_RC */
+                                       0x00000006 /* EMC_RFC */
+                                       0x00000000 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x000000c0 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000030 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000007 /* EMC_TXSR */
+                                       0x00000007 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000002 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x000000c7 /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x007800a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00000000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000040 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x80000287 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000002 /* EMC_RC */
+                                       0x0000000d /* EMC_RFC */
+                                       0x00000001 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x00000181 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000060 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000000e /* EMC_TXSR */
+                                       0x0000000e /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000003 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000018e /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x007800a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00000000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000040 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x8000040b /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000004 /* EMC_RC */
+                                       0x0000001a /* EMC_RFC */
+                                       0x00000003 /* EMC_RAS */
+                                       0x00000001 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000001 /* EMC_RD_RCD */
+                                       0x00000001 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x00000303 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000000c0 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000001c /* EMC_TXSR */
+                                       0x0000001c /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000031c /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x007800a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00000000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000040 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000009 /* EMC_RC */
+                                       0x00000035 /* EMC_RFC */
+                                       0x00000007 /* EMC_RAS */
+                                       0x00000002 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000002 /* EMC_RD_RCD */
+                                       0x00000002 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x00000607 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000038 /* EMC_TXSR */
+                                       0x00000038 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000009 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000638 /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000006 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x004400a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00020000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-reset = <0x80000521>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-configuration = <
+                                       0x00000012 /* EMC_RC */
+                                       0x00000066 /* EMC_RFC */
+                                       0x0000000c /* EMC_RAS */
+                                       0x00000004 /* EMC_RP */
+                                       0x00000003 /* EMC_R2W */
+                                       0x00000008 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x0000000a /* EMC_W2P */
+                                       0x00000004 /* EMC_RD_RCD */
+                                       0x00000004 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000004 /* EMC_WDV */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000c /* EMC_RDV */
+                                       0x00000bf0 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000002fc /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000001 /* EMC_PDEX2WR */
+                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000008 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000006c /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000010 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000c30 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00007088 /* EMC_FBIO_CFG5 */
+                                       0x001d0084 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x0003c000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00048000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800013d /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f508 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x080001e8 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000021 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00020000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x0158000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x800018c8 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff89 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-reset = <0x80000d71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-configuration = <
+                                       0x00000025 /* EMC_RC */
+                                       0x000000ce /* EMC_RFC */
+                                       0x0000001a /* EMC_RAS */
+                                       0x00000009 /* EMC_RP */
+                                       0x00000005 /* EMC_R2W */
+                                       0x0000000d /* EMC_W2R */
+                                       0x00000004 /* EMC_R2P */
+                                       0x00000013 /* EMC_W2P */
+                                       0x00000009 /* EMC_RD_RCD */
+                                       0x00000009 /* EMC_WR_RCD */
+                                       0x00000004 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000007 /* EMC_WDV */
+                                       0x0000000a /* EMC_QUSE */
+                                       0x00000009 /* EMC_QRST */
+                                       0x0000000b /* EMC_QSAFE */
+                                       0x00000011 /* EMC_RDV */
+                                       0x00001820 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000608 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000003 /* EMC_PDEX2WR */
+                                       0x00000012 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x0000000f /* EMC_AR2PDEN */
+                                       0x00000018 /* EMC_RW2PDEN */
+                                       0x000000d8 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000005 /* EMC_TCKE */
+                                       0x00000020 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000007 /* EMC_TCLKSTABLE */
+                                       0x00000008 /* EMC_TCLKSTOP */
+                                       0x00001860 /* EMC_TREFBW */
+                                       0x0000000b /* EMC_QUSE_EXTRA */
+                                       0x00000006 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00005088 /* EMC_FBIO_CFG5 */
+                                       0xf0070191 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0000800a /* EMC_DLL_XFORM_DQS0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0600013d /* EMC_XM2DQSPADCTRL2 */
+                                       0x22220000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f501 /* EMC_XM2COMPPADCTRL */
+                                       0x07077404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x080001e8 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000021 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00020000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x00f0000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x8000308c /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff49 /* EMC_CFG_RSV */
+                               >;
+                       };
+               };
+
+               emc-timings-2 {
+                       nvidia,ram-code = <2>;  /* Hynix A RAM */
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000001 /* EMC_RC */
+                                       0x00000007 /* EMC_RFC */
+                                       0x00000000 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x000000c0 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000030 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000008 /* EMC_TXSR */
+                                       0x00000008 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000002 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x000000c7 /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x007800a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00000000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000040 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x80000287 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000002 /* EMC_RC */
+                                       0x0000000f /* EMC_RFC */
+                                       0x00000001 /* EMC_RAS */
+                                       0x00000000 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000000 /* EMC_RD_RCD */
+                                       0x00000000 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x00000181 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000060 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000010 /* EMC_TXSR */
+                                       0x00000010 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000003 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000018e /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x007800a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00000000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000040 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x8000040b /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000004 /* EMC_RC */
+                                       0x0000001e /* EMC_RFC */
+                                       0x00000003 /* EMC_RAS */
+                                       0x00000001 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000001 /* EMC_RD_RCD */
+                                       0x00000001 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x00000303 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000000c0 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000020 /* EMC_TXSR */
+                                       0x00000020 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000005 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x0000031c /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x007800a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x000fc000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00000000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000040 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x80000713 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100003>;
+                               nvidia,emc-mode-2 = <0x80200008>;
+                               nvidia,emc-mode-reset = <0x80001221>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-configuration = <
+                                       0x00000009 /* EMC_RC */
+                                       0x0000003d /* EMC_RFC */
+                                       0x00000007 /* EMC_RAS */
+                                       0x00000002 /* EMC_RP */
+                                       0x00000002 /* EMC_R2W */
+                                       0x0000000a /* EMC_W2R */
+                                       0x00000005 /* EMC_R2P */
+                                       0x0000000b /* EMC_W2P */
+                                       0x00000002 /* EMC_RD_RCD */
+                                       0x00000002 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000005 /* EMC_WDV */
+                                       0x00000005 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000b /* EMC_RDV */
+                                       0x00000607 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000181 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000002 /* EMC_PDEX2WR */
+                                       0x00000002 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000007 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x00000040 /* EMC_TXSR */
+                                       0x00000040 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000009 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000638 /* EMC_TREFBW */
+                                       0x00000006 /* EMC_QUSE_EXTRA */
+                                       0x00000006 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00004288 /* EMC_FBIO_CFG5 */
+                                       0x004400a4 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00080000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800211c /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f108 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x08000168 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000000 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00020000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x000c000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x80000d22 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff00 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200000>;
+                               nvidia,emc-mode-reset = <0x80000521>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-configuration = <
+                                       0x00000012 /* EMC_RC */
+                                       0x00000076 /* EMC_RFC */
+                                       0x0000000c /* EMC_RAS */
+                                       0x00000004 /* EMC_RP */
+                                       0x00000003 /* EMC_R2W */
+                                       0x00000008 /* EMC_W2R */
+                                       0x00000002 /* EMC_R2P */
+                                       0x0000000a /* EMC_W2P */
+                                       0x00000004 /* EMC_RD_RCD */
+                                       0x00000004 /* EMC_WR_RCD */
+                                       0x00000002 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000004 /* EMC_WDV */
+                                       0x00000006 /* EMC_QUSE */
+                                       0x00000004 /* EMC_QRST */
+                                       0x0000000a /* EMC_QSAFE */
+                                       0x0000000c /* EMC_RDV */
+                                       0x00000bf0 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x000002fc /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000001 /* EMC_PDEX2WR */
+                                       0x00000008 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x00000008 /* EMC_AR2PDEN */
+                                       0x0000000f /* EMC_RW2PDEN */
+                                       0x0000007c /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000004 /* EMC_TCKE */
+                                       0x00000010 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000004 /* EMC_TCLKSTABLE */
+                                       0x00000005 /* EMC_TCLKSTOP */
+                                       0x00000c30 /* EMC_TREFBW */
+                                       0x00000000 /* EMC_QUSE_EXTRA */
+                                       0x00000004 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00007088 /* EMC_FBIO_CFG5 */
+                                       0x001d0084 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x00044000 /* EMC_DLL_XFORM_DQS0 */
+                                       0x00044000 /* EMC_DLL_XFORM_DQS1 */
+                                       0x00044000 /* EMC_DLL_XFORM_DQS2 */
+                                       0x00044000 /* EMC_DLL_XFORM_DQS3 */
+                                       0x00044000 /* EMC_DLL_XFORM_DQS4 */
+                                       0x00044000 /* EMC_DLL_XFORM_DQS5 */
+                                       0x00044000 /* EMC_DLL_XFORM_DQS6 */
+                                       0x00044000 /* EMC_DLL_XFORM_DQS7 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00000000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x00058000 /* EMC_DLL_XFORM_DQ0 */
+                                       0x00058000 /* EMC_DLL_XFORM_DQ1 */
+                                       0x00058000 /* EMC_DLL_XFORM_DQ2 */
+                                       0x00058000 /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0800013d /* EMC_XM2DQSPADCTRL2 */
+                                       0x00000000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f508 /* EMC_XM2COMPPADCTRL */
+                                       0x05057404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000007 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x080001e8 /* EMC_XM2QUSEPADCTRL */
+                                       0x08000021 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00020000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x0148000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x800018c8 /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff89 /* EMC_CFG_RSV */
+                               >;
+                       };
+
+                       timing-800000000 {
+                               clock-frequency = <800000000>;
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x80100002>;
+                               nvidia,emc-mode-2 = <0x80200018>;
+                               nvidia,emc-mode-reset = <0x80000d71>;
+                               nvidia,emc-zcal-cnt-long = <0x00000040>;
+                               nvidia,emc-cfg-periodic-qrst;
+                               nvidia,emc-configuration = <
+                                       0x00000025 /* EMC_RC */
+                                       0x000000ee /* EMC_RFC */
+                                       0x0000001a /* EMC_RAS */
+                                       0x00000009 /* EMC_RP */
+                                       0x00000005 /* EMC_R2W */
+                                       0x0000000d /* EMC_W2R */
+                                       0x00000004 /* EMC_R2P */
+                                       0x00000013 /* EMC_W2P */
+                                       0x00000009 /* EMC_RD_RCD */
+                                       0x00000009 /* EMC_WR_RCD */
+                                       0x00000003 /* EMC_RRD */
+                                       0x00000001 /* EMC_REXT */
+                                       0x00000000 /* EMC_WEXT */
+                                       0x00000007 /* EMC_WDV */
+                                       0x0000000a /* EMC_QUSE */
+                                       0x00000009 /* EMC_QRST */
+                                       0x0000000b /* EMC_QSAFE */
+                                       0x00000011 /* EMC_RDV */
+                                       0x00001820 /* EMC_REFRESH */
+                                       0x00000000 /* EMC_BURST_REFRESH_NUM */
+                                       0x00000608 /* EMC_PRE_REFRESH_REQ_CNT */
+                                       0x00000003 /* EMC_PDEX2WR */
+                                       0x00000012 /* EMC_PDEX2RD */
+                                       0x00000001 /* EMC_PCHG2PDEN */
+                                       0x00000000 /* EMC_ACT2PDEN */
+                                       0x0000000f /* EMC_AR2PDEN */
+                                       0x00000018 /* EMC_RW2PDEN */
+                                       0x000000f8 /* EMC_TXSR */
+                                       0x00000200 /* EMC_TXSRDLL */
+                                       0x00000005 /* EMC_TCKE */
+                                       0x00000020 /* EMC_TFAW */
+                                       0x00000000 /* EMC_TRPAB */
+                                       0x00000007 /* EMC_TCLKSTABLE */
+                                       0x00000008 /* EMC_TCLKSTOP */
+                                       0x00001860 /* EMC_TREFBW */
+                                       0x0000000b /* EMC_QUSE_EXTRA */
+                                       0x00000006 /* EMC_FBIO_CFG6 */
+                                       0x00000000 /* EMC_ODT_WRITE */
+                                       0x00000000 /* EMC_ODT_READ */
+                                       0x00005088 /* EMC_FBIO_CFG5 */
+                                       0xf0070191 /* EMC_CFG_DIG_DLL */
+                                       0x00008000 /* EMC_CFG_DIG_DLL_PERIOD */
+                                       0x0000000c /* EMC_DLL_XFORM_DQS0 */
+                                       0x007fc00a /* EMC_DLL_XFORM_DQS1 */
+                                       0x00000008 /* EMC_DLL_XFORM_DQS2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS3 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS4 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS5 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS6 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQS7 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE0 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE1 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE2 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE3 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE4 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE5 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE6 */
+                                       0x00018000 /* EMC_DLL_XFORM_QUSE7 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS0 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS1 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS2 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS3 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS4 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS5 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS6 */
+                                       0x00000000 /* EMC_DLI_TRIM_TXDQS7 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ0 */
+                                       0x0000000c /* EMC_DLL_XFORM_DQ1 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ2 */
+                                       0x0000000a /* EMC_DLL_XFORM_DQ3 */
+                                       0x000002a0 /* EMC_XM2CMDPADCTRL */
+                                       0x0600013d /* EMC_XM2DQSPADCTRL2 */
+                                       0x22220000 /* EMC_XM2DQPADCTRL2 */
+                                       0x77fff884 /* EMC_XM2CLKPADCTRL */
+                                       0x01f1f501 /* EMC_XM2COMPPADCTRL */
+                                       0x07077404 /* EMC_XM2VTTGENPADCTRL */
+                                       0x54000000 /* EMC_XM2VTTGENPADCTRL2 */
+                                       0x080001e8 /* EMC_XM2QUSEPADCTRL */
+                                       0x0a000021 /* EMC_XM2DQSPADCTRL3 */
+                                       0x00000802 /* EMC_CTT_TERM_CTRL */
+                                       0x00020000 /* EMC_ZCAL_INTERVAL */
+                                       0x00000100 /* EMC_ZCAL_WAIT_CNT */
+                                       0x00d0000c /* EMC_MRS_WAIT_CNT */
+                                       0xa0f10000 /* EMC_AUTO_CAL_CONFIG */
+                                       0x00000000 /* EMC_CTT */
+                                       0x00000000 /* EMC_CTT_DURATION */
+                                       0x8000308c /* EMC_DYN_SELF_REF_CONTROL */
+                                       0xe8000000 /* EMC_FBIO_SPARE */
+                                       0xff00ff49 /* EMC_CFG_RSV */
+                               >;
+                       };
+               };
        };
-       pbb4 {
-               nvidia,pins = "pbb4";
-               nvidia,function = "vgp4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       hda@70030000 {
+               status = "okay";
        };
-       pbb5 {
-               nvidia,pins = "pbb5";
-               nvidia,function = "vgp5";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       wifi_pwrseq: wifi_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+
+               clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+               clock-names = "ext_clock";
+
+               reset-gpios = <&gpio TEGRA_GPIO(D, 3) GPIO_ACTIVE_LOW>;
+               post-power-on-delay-ms = <300>;
+               power-off-delay-us = <300>;
        };
-       pbb6 {
-               nvidia,pins = "pbb6";
-               nvidia,function = "vgp6";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       sdmmc3: mmc@78000400 {
+               status = "okay";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               assigned-clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
+               assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_C>;
+               assigned-clock-rates = <50000000>;
+
+               max-frequency = <50000000>;
+               keep-power-in-suspend;
+
+               bus-width = <4>;
+               non-removable;
+
+               mmc-pwrseq = <&wifi_pwrseq>;
+               vmmc-supply = <&sdmmc_3v3_reg>;
+               vqmmc-supply = <&vdd_1v8>;
+
+               /* Azurewave AW-NH660 BCM4330 */
+               brcmf: wifi@1 {
+                       reg = <1>;
+                       compatible = "brcm,bcm4329-fmac";
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(O, 4) IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "host-wake";
+               };
        };
-       pbb7 {
-               nvidia,pins = "pbb7";
-               nvidia,function = "i2s4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       sdmmc4: mmc@78000600 {
+               status = "okay";
+
+               keep-power-in-suspend;
+               bus-width = <8>;
+               non-removable;
+               vmmc-supply = <&sys_3v3_reg>;
+               vqmmc-supply = <&vdd_1v8>;
+               nvidia,default-tap = <0x0F>;
+               max-frequency = <25500000>;
        };
-       cam_mclk_pcc0 {
-               nvidia,pins = "cam_mclk_pcc0";
-               nvidia,function = "vi_alt3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+
+       usb@7d000000 {
+               compatible = "nvidia,tegra30-udc";
+               status = "okay";
        };
-       pcc1 {
-               nvidia,pins = "pcc1";
-               nvidia,function = "i2s4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+
+       usb-phy@7d000000 {
+               status = "okay";
+               dr_mode = "peripheral";
        };
-       pcc2 {
-               nvidia,pins = "pcc2";
-               nvidia,function = "i2s4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+
+       usb@7d004000 {
+               status = "okay";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               smsc@2 { /* SMSC 10/100T Ethernet Controller */
+                       compatible = "usb424,9e00";
+                       reg = <2>;
+                       local-mac-address = [00 11 22 33 44 55];
+               };
        };
-       sdmmc4_rst_n_pcc3 {
-               nvidia,pins = "sdmmc4_rst_n_pcc3";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+
+       usb-phy@7d004000 {
+               vbus-supply = <&vdd_smsc>;
+               status = "okay";
        };
-       sdmmc4_clk_pcc4 {
-               nvidia,pins = "sdmmc4_clk_pcc4";
-               nvidia,function = "sdmmc4";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,io-reset = <TEGRA_PIN_DISABLE>;
+
+       usb@7d008000 {
+               status = "okay";
        };
-       clk2_req_pcc5 {
-               nvidia,pins = "clk2_req_pcc5";
-               nvidia,function = "dap";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       usb-phy@7d008000 {
+               vbus-supply = <&usb3_vbus_reg>;
+               status = "okay";
        };
-       pex_l2_rst_n_pcc6 {
-               nvidia,pins = "pex_l2_rst_n_pcc6";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       /* PMIC has a built-in 32KHz oscillator which is used by PMC */
+       clk32k_in: clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "pmic-oscillator";
        };
-       pex_l2_clkreq_n_pcc7 {
-               nvidia,pins = "pex_l2_clkreq_n_pcc7";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       cpus {
+               cpu0: cpu@0 {
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       cpu-supply = <&vdd_cpu>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu1: cpu@1 {
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       cpu-supply = <&vdd_cpu>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu2: cpu@2 {
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       cpu-supply = <&vdd_cpu>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu3: cpu@3 {
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       cpu-supply = <&vdd_cpu>;
+                       #cooling-cells = <2>;
+               };
        };
-       pex_l0_prsnt_n_pdd0 {
-               nvidia,pins = "pex_l0_prsnt_n_pdd0";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       firmware {
+               trusted-foundations {
+                       compatible = "tlm,trusted-foundations";
+                       tlm,version-major = <0x0>;
+                       tlm,version-minor = <0x0>;
+               };
        };
-       pex_l0_rst_n_pdd1 {
-               nvidia,pins = "pex_l0_rst_n_pdd1";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       fan: gpio_fan {
+               compatible = "gpio-fan";
+               gpios = <&gpio TEGRA_GPIO(J, 2) GPIO_ACTIVE_HIGH>;
+               gpio-fan,speed-map = <0    0
+                                     4500 1>;
+               #cooling-cells = <2>;
        };
-       pex_l0_clkreq_n_pdd2 {
-               nvidia,pins = "pex_l0_clkreq_n_pdd2";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       thermal-zones {
+               cpu_thermal: cpu-thermal {
+                       polling-delay = <5000>;
+                       polling-delay-passive = <5000>;
+
+                       thermal-sensors = <&cpu_temp 1>;
+
+                       trips {
+                               cpu_alert0: cpu-alert0 {
+                                       temperature = <50000>;
+                                       hysteresis = <10000>;
+                                       type = "active";
+                               };
+                               cpu_alert1: cpu-alert1 {
+                                       temperature = <70000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                               cpu_crit: cpu-crit {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert0>;
+                                       cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                               map1 {
+                                       trip = <&cpu_alert1>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&actmon THERMAL_NO_LIMIT
+                                                                 THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
        };
-       pex_wake_n_pdd3 {
-               nvidia,pins = "pex_wake_n_pdd3";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       vdd_12v_in: vdd_12v_in {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_12v_in";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-always-on;
        };
-       pex_l1_prsnt_n_pdd4 {
-               nvidia,pins = "pex_l1_prsnt_n_pdd4";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       sdmmc_3v3_reg: sdmmc_3v3_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "sdmmc_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               regulator-always-on;
+               gpio = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
+               vin-supply = <&sys_3v3_reg>;
        };
-       pex_l1_rst_n_pdd5 {
-               nvidia,pins = "pex_l1_rst_n_pdd5";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       vdd_fuse_3v3_reg: vdd_fuse_3v3_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_fuse_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               gpio = <&gpio TEGRA_GPIO(L, 6) GPIO_ACTIVE_HIGH>;
+               vin-supply = <&sys_3v3_reg>;
+               regulator-always-on;
        };
-       pex_l1_clkreq_n_pdd6 {
-               nvidia,pins = "pex_l1_clkreq_n_pdd6";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       vdd_vid_reg: vdd_vid_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "vddio_vid";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&gpio TEGRA_GPIO(T, 0) GPIO_ACTIVE_HIGH>;
+               vin-supply = <&vdd_5v0_reg>;
+               regulator-boot-on;
        };
-       pex_l2_prsnt_n_pdd7 {
-               nvidia,pins = "pex_l2_prsnt_n_pdd7";
-               nvidia,function = "pcie";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       ddr_reg: ddr_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_ddr";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+               regulator-always-on;
+               enable-active-high;
+               gpio = <&pmic 7 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               vin-supply = <&vdd_12v_in>;
        };
-       clk3_out_pee0 {
-               nvidia,pins = "clk3_out_pee0";
-               nvidia,function = "extperiph3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       sys_3v3_reg: sys_3v3_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "sys_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vdd_12v_in>;
        };
-       clk3_req_pee1 {
-               nvidia,pins = "clk3_req_pee1";
-               nvidia,function = "dev3";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+
+       vdd_5v0_reg: vdd_5v0_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vdd_12v_in>;
        };
-       clk1_req_pee2 {
-               nvidia,pins = "clk1_req_pee2";
-               nvidia,function = "dap";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+
+       vdd_smsc: vdd_smsc {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_smsc";
+               enable-active-high;
+               gpio = <&gpio TEGRA_GPIO(DD, 5) GPIO_ACTIVE_HIGH>;
        };
-       hdmi_cec_pee3 {
-               nvidia,pins = "hdmi_cec_pee3";
-               nvidia,function = "cec";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_DISABLE>;
-               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
-               nvidia,open-drain = <TEGRA_PIN_DISABLE>;
+
+       usb3_vbus_reg: usb3_vbus_reg {
+               compatible = "regulator-fixed";
+               regulator-name = "usb3_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&gpio TEGRA_GPIO(DD, 4) GPIO_ACTIVE_HIGH>;
+               vin-supply = <&vdd_5v0_reg>;
        };
-       owr {
-               nvidia,pins = "owr";
-               nvidia,function = "owr";
-               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
-               nvidia,tristate = <TEGRA_PIN_ENABLE>;
-               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               power {
+                       gpios = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
+                       debounce-interval = <10>;
+                       linux,code = <KEY_POWER>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
        };
-       drive_groups {
-               nvidia,pins = "drive_gma",
-                             "drive_gmb",
-                             "drive_gmc",
-                             "drive_gmd";
-               nvidia,pull-down-strength = <9>;
-               nvidia,pull-up-strength = <9>;
-               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
-               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-power {
+                       label = "power-led";
+                       gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+                       retain-state-suspended;
+               };
        };
 };
 
 &emc_icc_dvfs_opp_table {
-       /delete-node/ opp@900000000,1350;
+       /delete-node/ opp-900000000-1350;
 };
 
 &emc_bw_dfs_opp_table {
-       /delete-node/ opp@900000000;
+       /delete-node/ opp-900000000;
 };
diff --git a/arch/arm/boot/dts/tegra30-pegatron-chagall.dts b/arch/arm/boot/dts/tegra30-pegatron-chagall.dts
new file mode 100644 (file)
index 0000000..f4b2d42
--- /dev/null
@@ -0,0 +1,2859 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/thermal/thermal.h>
+
+#include "tegra30.dtsi"
+#include "tegra30-cpu-opp.dtsi"
+#include "tegra30-cpu-opp-microvolt.dtsi"
+#include "tegra30-asus-lvds-display.dtsi"
+
+/ {
+       model = "Pegatron Chagall";
+       compatible = "pegatron,chagall", "nvidia,tegra30";
+       chassis-type = "tablet";
+
+       aliases {
+               mmc0 = &sdmmc4; /* eMMC */
+               mmc1 = &sdmmc1; /* uSD slot */
+               mmc2 = &sdmmc3; /* WiFi */
+
+               rtc0 = &pmic;
+               rtc1 = "/rtc@7000e000";
+
+               display0 = &lcd;
+               display1 = &hdmi;
+
+               serial1 = &uartc; /* Bluetooth */
+               serial2 = &uartb; /* GPS */
+       };
+
+       /*
+        * The decompressor and also some bootloaders rely on a
+        * pre-existing /chosen node to be available to insert the
+        * command line and merge other ATAGS info.
+        */
+       chosen {};
+
+       memory@80000000 {
+               reg = <0x80000000 0x40000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               linux,cma@80000000 {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x80000000 0x30000000>;
+                       size = <0x10000000>; /* 256MiB */
+                       linux,cma-default;
+                       reusable;
+               };
+
+               ramoops@beb00000 {
+                       compatible = "ramoops";
+                       reg = <0xbeb00000 0x10000>; /* 64kB */
+                       console-size = <0x8000>; /* 32kB */
+                       record-size = <0x400>; /* 1kB */
+                       ecc-size = <16>;
+               };
+
+               trustzone@bfe00000 {
+                       reg = <0xbfe00000 0x200000>; /* 2MB */
+                       no-map;
+               };
+       };
+
+       host1x@50000000 {
+               hdmi: hdmi@54280000 {
+                       status = "okay";
+
+                       hdmi-supply = <&hdmi_5v0_sys>;
+                       pll-supply = <&vdd_1v8_vio>;
+                       vdd-supply = <&vdd_3v3_sys>;
+
+                       nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
+                       nvidia,ddc-i2c-bus = <&hdmi_ddc>;
+               };
+       };
+
+       vde@6001a000 {
+               assigned-clocks = <&tegra_car TEGRA30_CLK_VDE>;
+               assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>;
+               assigned-clock-rates = <408000000>;
+       };
+
+       pinmux@70000868 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+
+               state_default: pinmux {
+                       /* SDMMC1 pinmux */
+                       sdmmc1_clk_pz0 {
+                               nvidia,pins = "sdmmc1_clk_pz0";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc1_dat3_py4 {
+                               nvidia,pins = "sdmmc1_dat3_py4",
+                                               "sdmmc1_dat2_py5",
+                                               "sdmmc1_dat1_py6",
+                                               "sdmmc1_dat0_py7",
+                                               "sdmmc1_cmd_pz1";
+                               nvidia,function = "sdmmc1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* SDMMC2 pinmux */
+                       vi_d1_pd5 {
+                               nvidia,pins = "vi_d1_pd5",
+                                               "vi_d2_pl0",
+                                               "vi_d3_pl1",
+                                               "vi_d5_pl3",
+                                               "vi_d7_pl5";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       vi_d8_pl6 {
+                               nvidia,pins = "vi_d8_pl6",
+                                               "vi_d9_pl7";
+                               nvidia,function = "sdmmc2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                               nvidia,ioreset = <0>;
+                       };
+
+                       /* SDMMC3 pinmux */
+                       sdmmc3_clk_pa6 {
+                               nvidia,pins = "sdmmc3_clk_pa6";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc3_cmd_pa7 {
+                               nvidia,pins = "sdmmc3_cmd_pa7",
+                                               "sdmmc3_dat3_pb4",
+                                               "sdmmc3_dat2_pb5",
+                                               "sdmmc3_dat2_pb5",
+                                               "sdmmc3_dat1_pb6",
+                                               "sdmmc3_dat0_pb7",
+                                               "sdmmc3_dat5_pd0",
+                                               "sdmmc3_dat4_pd1",
+                                               "sdmmc3_dat6_pd3",
+                                               "sdmmc3_dat7_pd4";
+                               nvidia,function = "sdmmc3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* SDMMC4 pinmux */
+                       sdmmc4_clk_pcc4 {
+                               nvidia,pins = "sdmmc4_clk_pcc4";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc4_cmd_pt7 {
+                               nvidia,pins = "sdmmc4_cmd_pt7",
+                                               "sdmmc4_dat0_paa0",
+                                               "sdmmc4_dat1_paa1",
+                                               "sdmmc4_dat2_paa2",
+                                               "sdmmc4_dat3_paa3",
+                                               "sdmmc4_dat4_paa4",
+                                               "sdmmc4_dat5_paa5",
+                                               "sdmmc4_dat6_paa6",
+                                               "sdmmc4_dat7_paa7";
+                               nvidia,function = "sdmmc4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* I2C pinmux */
+                       gen1_i2c_scl_pc4 {
+                               nvidia,pins = "gen1_i2c_scl_pc4",
+                                               "gen1_i2c_sda_pc5";
+                               nvidia,function = "i2c1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       gen2_i2c_scl_pt5 {
+                               nvidia,pins = "gen2_i2c_scl_pt5",
+                                               "gen2_i2c_sda_pt6";
+                               nvidia,function = "i2c2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       cam_i2c_scl_pbb1 {
+                               nvidia,pins = "cam_i2c_scl_pbb1",
+                                               "cam_i2c_sda_pbb2";
+                               nvidia,function = "i2c3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       ddc_scl_pv4 {
+                               nvidia,pins = "ddc_scl_pv4",
+                                               "ddc_sda_pv5";
+                               nvidia,function = "i2c4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       pwr_i2c_scl_pz6 {
+                               nvidia,pins = "pwr_i2c_scl_pz6",
+                                               "pwr_i2c_sda_pz7";
+                               nvidia,function = "i2cpwr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       /* HDMI-CEC pinmux */
+                       hdmi_cec_pee3 {
+                               nvidia,pins = "hdmi_cec_pee3";
+                               nvidia,function = "cec";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,open-drain = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                       };
+
+                       /* UART-A */
+                       ulpi_data0_po1 {
+                               nvidia,pins = "ulpi_data0_po1";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_data1_po2 {
+                               nvidia,pins = "ulpi_data1_po2",
+                                               "ulpi_data2_po3",
+                                               "ulpi_data3_po4",
+                                               "ulpi_data4_po5",
+                                               "ulpi_data5_po6",
+                                               "ulpi_data6_po7";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       ulpi_data7_po0 {
+                               nvidia,pins = "ulpi_data7_po0";
+                               nvidia,function = "uarta";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* UART-B */
+                       uart2_txd_pc2 {
+                               nvidia,pins = "uart2_txd_pc2",
+                                               "uart2_rts_n_pj6";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       uart2_rxd_pc3 {
+                               nvidia,pins = "uart2_rxd_pc3",
+                                               "uart2_cts_n_pj5";
+                               nvidia,function = "uartb";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* UART-C */
+                       uart3_cts_n_pa1 {
+                               nvidia,pins = "uart3_cts_n_pa1",
+                                               "uart3_rxd_pw7";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       uart3_rts_n_pc0 {
+                               nvidia,pins = "uart3_rts_n_pc0",
+                                               "uart3_txd_pw6";
+                               nvidia,function = "uartc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* UART-D */
+                       ulpi_clk_py0 {
+                               nvidia,pins = "ulpi_clk_py0",
+                                               "ulpi_stp_py3";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       ulpi_dir_py1 {
+                               nvidia,pins = "ulpi_dir_py1",
+                                               "ulpi_nxt_py2";
+                               nvidia,function = "uartd";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* I2S pinmux */
+                       dap1_fs_pn0 {
+                               nvidia,pins = "dap1_fs_pn0",
+                                               "dap1_din_pn1",
+                                               "dap1_dout_pn2",
+                                               "dap1_sclk_pn3";
+                               nvidia,function = "i2s0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap2_fs_pa2 {
+                               nvidia,pins = "dap2_fs_pa2",
+                                               "dap2_sclk_pa3",
+                                               "dap2_din_pa4",
+                                               "dap2_dout_pa5";
+                               nvidia,function = "i2s1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap3_fs_pp0 {
+                               nvidia,pins = "dap3_fs_pp0",
+                                               "dap3_din_pp1",
+                                               "dap3_dout_pp2",
+                                               "dap3_sclk_pp3";
+                               nvidia,function = "i2s2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       dap4_fs_pp4 {
+                               nvidia,pins = "dap4_fs_pp4",
+                                               "dap4_din_pp5",
+                                               "dap4_dout_pp6",
+                                               "dap4_sclk_pp7";
+                               nvidia,function = "i2s3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pcc2 {
+                               nvidia,pins = "pcc2";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* PCI-e pinmux */
+                       pex_l2_rst_n_pcc6 {
+                               nvidia,pins = "pex_l2_rst_n_pcc6",
+                                               "pex_l0_rst_n_pdd1",
+                                               "pex_l1_rst_n_pdd5";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pex_l2_clkreq_n_pcc7 {
+                               nvidia,pins = "pex_l2_clkreq_n_pcc7",
+                                               "pex_l0_prsnt_n_pdd0",
+                                               "pex_l0_clkreq_n_pdd2",
+                                               "pex_l2_prsnt_n_pdd7";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pex_wake_n_pdd3 {
+                               nvidia,pins = "pex_wake_n_pdd3";
+                               nvidia,function = "pcie";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* SPI pinmux */
+                       spi1_mosi_px4 {
+                               nvidia,pins = "spi1_mosi_px4",
+                                               "spi1_sck_px5",
+                                               "spi1_cs0_n_px6",
+                                               "spi1_miso_px7";
+                               nvidia,function = "spi1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       spi2_cs1_n_pw2 {
+                               nvidia,pins = "spi2_cs1_n_pw2",
+                                               "spi2_cs2_n_pw3";
+                               nvidia,function = "spi2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       spi2_sck_px2 {
+                               nvidia,pins = "spi2_sck_px2";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_a16_pj7 {
+                               nvidia,pins = "gmi_a16_pj7",
+                                               "gmi_a19_pk7";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_a17_pb0 {
+                               nvidia,pins = "gmi_a17_pb0",
+                                               "gmi_a18_pb1";
+                               nvidia,function = "spi4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spi2_mosi_px0 {
+                               nvidia,pins = "spi2_mosi_px0";
+                               nvidia,function = "spi6";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spdif_out_pk5 {
+                               nvidia,pins = "spdif_out_pk5";
+                               nvidia,function = "spdif";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       spdif_in_pk6 {
+                               nvidia,pins = "spdif_in_pk6";
+                               nvidia,function = "spdif";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* Display A pinmux */
+                       lcd_pwr0_pb2 {
+                               nvidia,pins = "lcd_pwr0_pb2",
+                                               "lcd_pclk_pb3",
+                                               "lcd_pwr1_pc1",
+                                               "lcd_pwr2_pc6",
+                                               "lcd_d0_pe0",
+                                               "lcd_d1_pe1",
+                                               "lcd_d2_pe2",
+                                               "lcd_d3_pe3",
+                                               "lcd_d4_pe4",
+                                               "lcd_d5_pe5",
+                                               "lcd_d6_pe6",
+                                               "lcd_d7_pe7",
+                                               "lcd_d8_pf0",
+                                               "lcd_d9_pf1",
+                                               "lcd_d10_pf2",
+                                               "lcd_d11_pf3",
+                                               "lcd_d12_pf4",
+                                               "lcd_d13_pf5",
+                                               "lcd_d14_pf6",
+                                               "lcd_d15_pf7",
+                                               "lcd_de_pj1",
+                                               "lcd_hsync_pj3",
+                                               "lcd_vsync_pj4",
+                                               "lcd_d16_pm0",
+                                               "lcd_d17_pm1",
+                                               "lcd_d18_pm2",
+                                               "lcd_d19_pm3",
+                                               "lcd_d20_pm4",
+                                               "lcd_d21_pm5",
+                                               "lcd_d22_pm6",
+                                               "lcd_d23_pm7",
+                                               "lcd_cs0_n_pn4",
+                                               "lcd_sdout_pn5",
+                                               "lcd_dc0_pn6",
+                                               "lcd_sdin_pz2",
+                                               "lcd_wr_n_pz3",
+                                               "lcd_sck_pz4",
+                                               "lcd_cs1_n_pw0",
+                                               "lcd_m1_pw1";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       lcd_dc1_pd2 {
+                               nvidia,pins = "lcd_dc1_pd2";
+                               nvidia,function = "displaya";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk_32k_out_pa0 {
+                               nvidia,pins = "clk_32k_out_pa0";
+                               nvidia,function = "blink";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       /* KBC keys */
+                       kb_row0_pr0 {
+                               nvidia,pins = "kb_row0_pr0",
+                                               "kb_row1_pr1",
+                                               "kb_row2_pr2",
+                                               "kb_row3_pr3",
+                                               "kb_row8_ps0",
+                                               "kb_col0_pq0",
+                                               "kb_col1_pq1",
+                                               "kb_col2_pq2",
+                                               "kb_col3_pq3",
+                                               "kb_col4_pq4",
+                                               "kb_col5_pq5",
+                                               "kb_col7_pq7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kb_row4_pr4 {
+                               nvidia,pins = "kb_row4_pr4",
+                                               "kb_row7_pr7",
+                                               "kb_row10_ps2",
+                                               "kb_row13_ps5";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kb_row11_ps3 {
+                               nvidia,pins = "kb_row11_ps3",
+                                               "kb_row12_ps4",
+                                               "kb_row15_ps7";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       kb_row14_ps6 {
+                               nvidia,pins = "kb_row14_ps6";
+                               nvidia,function = "kbc";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_iordy_pi5 {
+                               nvidia,pins = "gmi_iordy_pi5";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       vi_pclk_pt0 {
+                               nvidia,pins = "vi_pclk_pt0";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                               nvidia,ioreset = <0>;
+                       };
+
+                       pu1 {
+                               nvidia,pins = "pu1";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu2 {
+                               nvidia,pins = "pu2";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pv0 {
+                               nvidia,pins = "pv0";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pv1 {
+                               nvidia,pins = "pv1";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pcc1 {
+                               nvidia,pins = "pcc1";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       sdmmc4_rst_n_pcc3 {
+                               nvidia,pins = "sdmmc4_rst_n_pcc3";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pv3 {
+                               nvidia,pins = "pv3";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_vsync_pd6 {
+                               nvidia,pins = "vi_vsync_pd6",
+                                               "vi_hsync_pd7";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                               nvidia,lock = <0>;
+                               nvidia,ioreset = <0>;
+                       };
+
+                       vi_d10_pt2 {
+                               nvidia,pins = "vi_d10_pt2",
+                                               "vi_d0_pt4", "pbb0";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       vi_d11_pt3 {
+                               nvidia,pins = "vi_d11_pt3";
+                               nvidia,function = "rsvd2";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pu0 {
+                               nvidia,pins = "pu0";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pu3 {
+                               nvidia,pins = "pu3";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pu6 {
+                               nvidia,pins = "pu6";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pex_l1_prsnt_n_pdd4 {
+                               nvidia,pins = "pex_l1_prsnt_n_pdd4",
+                                               "pex_l1_clkreq_n_pdd6";
+                               nvidia,function = "rsvd4";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_wait_pi7 {
+                               nvidia,pins = "gmi_wait_pi7",
+                                               "gmi_cs0_n_pj0",
+                                               "gmi_cs1_n_pj2",
+                                               "gmi_cs4_n_pk2";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_ad0_pg0 {
+                               nvidia,pins = "gmi_ad0_pg0",
+                                               "gmi_ad1_pg1",
+                                               "gmi_ad2_pg2",
+                                               "gmi_ad3_pg3",
+                                               "gmi_ad4_pg4",
+                                               "gmi_ad5_pg5",
+                                               "gmi_ad6_pg6",
+                                               "gmi_ad7_pg7",
+                                               "gmi_wr_n_pi0",
+                                               "gmi_oe_n_pi1",
+                                               "gmi_dqs_pi2",
+                                               "gmi_adv_n_pk0",
+                                               "gmi_clk_pk1";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_cs2_n_pk3 {
+                               nvidia,pins = "gmi_cs2_n_pk3";
+                               nvidia,function = "rsvd1";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_cs3_n_pk4 {
+                               nvidia,pins = "gmi_cs3_n_pk4";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_ad10_ph2 {
+                               nvidia,pins = "gmi_ad10_ph2",
+                                               "gmi_ad11_ph3",
+                                               "gmi_ad14_ph6";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_ad13_ph5 {
+                               nvidia,pins = "gmi_ad13_ph5",
+                                               "gmi_ad12_ph4",
+                                               "gmi_cs7_n_pi6";
+                               nvidia,function = "nand";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_rst_n_pi4 {
+                               nvidia,pins = "gmi_rst_n_pi4";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_ad8_ph0 {
+                               nvidia,pins = "gmi_ad8_ph0";
+                               nvidia,function = "pwm0";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_ad9_ph1 {
+                               nvidia,pins = "gmi_ad9_ph1";
+                               nvidia,function = "pwm1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       gmi_wp_n_pc7 {
+                               nvidia,pins = "gmi_wp_n_pc7";
+                               nvidia,function = "gmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       gmi_cs6_n_pi3 {
+                               nvidia,pins = "gmi_cs6_n_pi3";
+                               nvidia,function = "sata";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d4_pl2 {
+                               nvidia,pins = "vi_d4_pl2";
+                               nvidia,function = "vi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       vi_d6_pl4 {
+                               nvidia,pins = "vi_d6_pl4";
+                               nvidia,function = "vi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                               nvidia,lock = <0>;
+                               nvidia,ioreset = <0>;
+                       };
+
+                       vi_mclk_pt1 {
+                               nvidia,pins = "vi_mclk_pt1";
+                               nvidia,function = "vi";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* HDMI hot-plug-detect */
+                       hdmi_int_pn7 {
+                               nvidia,pins = "hdmi_int_pn7";
+                               nvidia,function = "hdmi";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_ENABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pu4 {
+                               nvidia,pins = "pu4";
+                               nvidia,function = "pwm1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pu5 {
+                               nvidia,pins = "pu5";
+                               nvidia,function = "pwm2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       jtag_rtck_pu7 {
+                               nvidia,pins = "jtag_rtck_pu7";
+                               nvidia,function = "rtck";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       crt_hsync_pv6 {
+                               nvidia,pins = "crt_hsync_pv6",
+                                               "crt_vsync_pv7";
+                               nvidia,function = "crt";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk1_out_pw4 {
+                               nvidia,pins = "clk1_out_pw4";
+                               nvidia,function = "extperiph1";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       clk2_out_pw5 {
+                               nvidia,pins = "clk2_out_pw5";
+                               nvidia,function = "extperiph2";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk3_out_pee0 {
+                               nvidia,pins = "clk3_out_pee0";
+                               nvidia,function = "extperiph3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       sys_clk_req_pz5 {
+                               nvidia,pins = "sys_clk_req_pz5";
+                               nvidia,function = "sysclk";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb4 {
+                               nvidia,pins = "pbb4";
+                               nvidia,function = "vgp4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb5 {
+                               nvidia,pins = "pbb5";
+                               nvidia,function = "vgp5";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb6 {
+                               nvidia,pins = "pbb6";
+                               nvidia,function = "vgp6";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       clk1_req_pee2 {
+                               nvidia,pins = "clk1_req_pee2";
+                               nvidia,function = "dap";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk2_req_pcc5 {
+                               nvidia,pins = "clk2_req_pcc5";
+                               nvidia,function = "dap";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       clk3_req_pee1 {
+                               nvidia,pins = "clk3_req_pee1";
+                               nvidia,function = "dev3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       owr {
+                               nvidia,pins = "owr";
+                               nvidia,function = "owr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pv2 {
+                               nvidia,pins = "pv2",
+                                               "kb_row5_pr5";
+                               nvidia,function = "owr";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_DISABLE>;
+                       };
+
+                       pbb3 {
+                               nvidia,pins = "pbb3";
+                               nvidia,function = "vgp3";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       pbb7 {
+                               nvidia,pins = "pbb7";
+                               nvidia,function = "i2s4";
+                               nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       cam_mclk_pcc0 {
+                               nvidia,pins = "cam_mclk_pcc0";
+                               nvidia,function = "vi_alt3";
+                               nvidia,pull = <TEGRA_PIN_PULL_UP>;
+                               nvidia,tristate = <TEGRA_PIN_DISABLE>;
+                               nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+                       };
+
+                       /* GPIO power/drive control */
+                       drive_dap1 {
+                               nvidia,pins = "drive_dap1",
+                                               "drive_dap2",
+                                               "drive_dbg",
+                                               "drive_at5",
+                                               "drive_gme",
+                                               "drive_ddc",
+                                               "drive_ao1",
+                                               "drive_uart3";
+                               nvidia,high-speed-mode = <0>;
+                               nvidia,schmitt = <TEGRA_PIN_ENABLE>;
+                               nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
+                               nvidia,pull-down-strength = <31>;
+                               nvidia,pull-up-strength = <31>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                       };
+
+                       drive_sdio1 {
+                               nvidia,pins = "drive_sdio1";
+                               nvidia,high-speed-mode = <0>;
+                               nvidia,schmitt = <TEGRA_PIN_DISABLE>;
+                               nvidia,pull-down-strength = <5>;
+                               nvidia,pull-up-strength = <5>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FAST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FAST>;
+                       };
+
+                       drive_sdio3 {
+                               nvidia,pins = "drive_sdio3";
+                               nvidia,high-speed-mode = <0>;
+                               nvidia,schmitt = <TEGRA_PIN_DISABLE>;
+                               nvidia,pull-down-strength = <46>;
+                               nvidia,pull-up-strength = <42>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FAST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FAST>;
+                       };
+
+                       drive_gma {
+                               nvidia,pins = "drive_gma",
+                                               "drive_gmb",
+                                               "drive_gmc",
+                                               "drive_gmd";
+                               nvidia,pull-down-strength = <9>;
+                               nvidia,pull-up-strength = <9>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
+                       };
+
+                       drive_lcd2 {
+                               nvidia,pins = "drive_lcd2";
+                               nvidia,high-speed-mode = <0>;
+                               nvidia,schmitt = <TEGRA_PIN_ENABLE>;
+                               nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_4>;
+                               nvidia,pull-down-strength = <20>;
+                               nvidia,pull-up-strength = <20>;
+                               nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                               nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>;
+                       };
+               };
+       };
+
+       uartb: serial@70006040 {
+               compatible = "nvidia,tegra30-hsuart";
+               status = "okay";
+
+               /* Broadcom GPS BCM47511 */
+       };
+
+       uartc: serial@70006200 {
+               compatible = "nvidia,tegra30-hsuart";
+               status = "okay";
+
+               nvidia,adjust-baud-rates = <0 9600 100>,
+                                          <9600 115200 200>,
+                                          <1000000 4000000 136>;
+
+               /* Azurewave AW-AH663 BCM4330B1 */
+               bluetooth {
+                       compatible = "brcm,bcm4330-bt";
+                       max-speed = <4000000>;
+
+                       clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+                       clock-names = "txco";
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(U, 6) IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "host-wakeup";
+
+                       device-wakeup-gpios = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
+                       shutdown-gpios = <&gpio TEGRA_GPIO(U, 0) GPIO_ACTIVE_HIGH>;
+
+                       vbat-supply  = <&vdd_3v3_sys>;
+                       vddio-supply = <&vdd_1v8_vio>;
+               };
+       };
+
+       pwm: pwm@7000a000 {
+               status = "okay";
+       };
+
+       lcd_ddc: i2c@7000c000 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               /* Wolfson Microelectronics WM8903 audio codec */
+               wm8903: audio-codec@1a {
+                       compatible = "wlf,wm8903";
+                       reg = <0x1a>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_EDGE_BOTH>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       micdet-cfg = <0>;
+                       micdet-delay = <100>;
+
+                       gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
+
+                       AVDD-supply  = <&vdd_1v8_vio>;
+                       CPVDD-supply = <&vdd_1v8_vio>;
+                       DBVDD-supply = <&vdd_1v8_vio>;
+                       DCVDD-supply = <&vdd_1v8_vio>;
+               };
+       };
+
+       i2c2: i2c@7000c400 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               /* Atmel touchscreen */
+               touchscreen@4d {
+                       compatible = "atmel,maxtouch";
+                       reg = <0x4d>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(H, 4) IRQ_TYPE_EDGE_FALLING>;
+                       reset-gpios = <&gpio TEGRA_GPIO(H, 6) GPIO_ACTIVE_LOW>;
+
+                       vdda-supply = <&vdd_3v3_sys>;
+                       vdd-supply  = <&vdd_3v3_sys>;
+               };
+       };
+
+       i2c3: i2c@7000c500 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               light-sensor@44 {
+                       compatible = "isil,isl29023";
+                       reg = <0x44>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(Q, 3) IRQ_TYPE_LEVEL_HIGH>;
+
+                       vcc-supply = <&vdd_3v3_sen>;
+               };
+
+               /* AsahiKASEI AK8975 magnetometer sensor */
+               magnetometer@c {
+                       compatible = "asahi-kasei,ak8975";
+                       reg = <0x0c>;
+
+                       vdd-supply = <&vdd_3v3_sen>;
+                       vid-supply = <&vdd_1v8_vio>;
+
+                       mount-matrix =   "0",  "1",  "0",
+                                        "1",  "0",  "0",
+                                        "0",  "0", "-1";
+               };
+
+               gyroscope@68 {
+                       compatible = "invensense,mpu3050";
+                       reg = <0x68>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(X, 1) IRQ_TYPE_EDGE_RISING>;
+
+                       vdd-supply = <&vdd_3v3_sen>;
+                       vlogic-supply = <&vdd_1v8_vio>;
+
+                       mount-matrix =   "0",  "1",  "0",
+                                        "1",  "0",  "0",
+                                        "0",  "0", "-1";
+
+                       /* External I2C interface */
+                       i2c-gate {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               accelerometer@f {
+                                       compatible = "kionix,kxtf9";
+                                       reg = <0x0f>;
+
+                                       interrupt-parent = <&gpio>;
+                                       interrupts = <TEGRA_GPIO(L, 1) IRQ_TYPE_EDGE_RISING>;
+
+                                       vdd-supply = <&vdd_1v8_vio>;
+                                       vddio-supply = <&vdd_1v8_vio>;
+
+                                       mount-matrix =  "-1",  "0",  "0",
+                                                        "0",  "1",  "0",
+                                                        "0",  "0",  "1";
+                               };
+                       };
+               };
+       };
+
+       hdmi_ddc: i2c@7000c700 {
+               status = "okay";
+               clock-frequency = <93750>;
+       };
+
+       i2c5: i2c@7000d000 {
+               status = "okay";
+               clock-frequency = <400000>;
+
+               nct72: temperature-sensor@4c {
+                       compatible = "onnn,nct1008";
+                       reg = <0x4c>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(U, 5) IRQ_TYPE_EDGE_FALLING>;
+
+                       vcc-supply = <&vdd_3v3_sys>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               /* Texas Instruments TPS659110 PMIC */
+               pmic: pmic@2d {
+                       compatible = "ti,tps65911";
+                       reg = <0x2d>;
+
+                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       wakeup-source;
+
+                       ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
+                       ti,system-power-controller;
+                       ti,sleep-keep-ck32k;
+                       ti,sleep-enable;
+
+                       #gpio-cells = <2>;
+                       gpio-controller;
+
+                       vcc1-supply = <&vdd_5v0_sys>;
+                       vcc2-supply = <&vdd_5v0_sys>;
+                       vcc3-supply = <&vdd_1v8_vio>;
+                       vcc4-supply = <&vdd_1v8_vio>;
+                       vcc5-supply = <&vdd_5v0_sys>;
+                       vcc6-supply = <&vddio_1v2_ddr>;
+                       vcc7-supply = <&vdd_5v0_sys>;
+                       vccio-supply = <&vdd_5v0_sys>;
+
+                       pmic-sleep-hog {
+                               gpio-hog;
+                               gpios = <0 GPIO_ACTIVE_HIGH>,
+                                       <2 GPIO_ACTIVE_HIGH>,
+                                       <6 GPIO_ACTIVE_HIGH>,
+                                       <8 GPIO_ACTIVE_HIGH>;
+                               output-high;
+                       };
+
+                       regulators {
+                               /* VDD1 is not used by Chagall */
+
+                               vddio_1v2_ddr: vdd2 {
+                                       regulator-name = "vddio_1v2_ddr";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               vdd_cpu: vddctrl {
+                                       regulator-name = "vdd_cpu,vdd_sys";
+                                       regulator-min-microvolt = <600000>;
+                                       regulator-max-microvolt = <1400000>;
+                                       regulator-coupled-with = <&vdd_core>;
+                                       regulator-coupled-max-spread = <300000>;
+                                       regulator-max-step-microvolt = <100000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       ti,regulator-ext-sleep-control = <1>;
+
+                                       nvidia,tegra-cpu-regulator;
+                               };
+
+                               vdd_1v8_vio: vio {
+                                       regulator-name = "vdd_1v8_gen";
+                                       /* FIXME: eMMC won't work, if set to 1.8 V */
+                                       regulator-min-microvolt = <1500000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               /* eMMC VDD */
+                               vcore_emmc: ldo1 {
+                                       regulator-name = "vdd_emmc_core";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-always-on;
+                               };
+
+                               /* uSD slot VDD */
+                               vdd_usd: ldo2 {
+                                       regulator-name = "vdd_usd";
+                                       regulator-min-microvolt = <3200000>;
+                                       regulator-max-microvolt = <3200000>;
+                               };
+
+                               /* uSD slot VDDIO */
+                               vddio_usd: ldo3 {
+                                       regulator-name = "vddio_usd";
+                                       regulator-min-microvolt = <1900000>;
+                                       regulator-max-microvolt = <3200000>;
+                               };
+
+                               ldo4 {
+                                       regulator-name = "vdd_rtc";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                               };
+
+                               ldo5 {
+                                       regulator-name = "vdd_1v3_cam_isp";
+                                       regulator-min-microvolt = <1300000>;
+                                       regulator-max-microvolt = <1300000>;
+                               };
+
+                               ldo6 {
+                                       regulator-name = "avdd_dsi_csi,pwrdet_mipi";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                               };
+
+                               ldo7 {
+                                       regulator-name = "vdd_pllm,x,u,a_p_c_s";
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       ti,regulator-ext-sleep-control = <8>;
+                               };
+
+                               ldo8 {
+                                       regulator-name = "vdd_ddr_hs";
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                                       regulator-always-on;
+                                       ti,regulator-ext-sleep-control = <8>;
+                               };
+                       };
+               };
+
+               vdd_core: core-regulator@60 {
+                       compatible = "ti,tps62361";
+                       reg = <0x60>;
+
+                       regulator-name = "tps62361-vout";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1770000>;
+                       regulator-coupled-with = <&vdd_cpu>;
+                       regulator-coupled-max-spread = <300000>;
+                       regulator-max-step-microvolt = <100000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+                       ti,enable-vout-discharge;
+                       ti,vsel0-state-high;
+                       ti,vsel1-state-high;
+
+                       nvidia,tegra-core-regulator;
+               };
+       };
+
+       vdd_5v0_sys: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0_sys";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_3v3_sys: regulator-3v {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3_sys";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_pnl: regulator-panel {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_panel";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-enable-ramp-delay = <300000>;
+               gpio = <&gpio TEGRA_GPIO(W, 1) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_3v3_sys>;
+       };
+
+       vdd_3v3_sen: regulator-sensors {
+               compatible = "regulator-fixed";
+               regulator-name = "sen_3v3_en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio TEGRA_GPIO(K, 5) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_3v3_sys>;
+       };
+
+       vdd_5v0_bl: regulator-bl {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_5v0_bl";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
+               gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_sys>;
+       };
+
+       hdmi_5v0_sys: regulator-hdmi {
+               compatible = "regulator-fixed";
+               regulator-name = "hdmi_5v0_sys";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio TEGRA_GPIO(P, 2) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_sys>;
+       };
+
+       vdd_vbus_usb1: regulator-usb1 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_vbus_micro_usb";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio TEGRA_GPIO(DD, 3) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_sys>;
+       };
+
+       vdd_vbus_usb3: regulator-usb3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_vbus_typea_usb";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio TEGRA_GPIO(CC, 6) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vdd_5v0_sys>;
+       };
+
+       pmc@7000e400 {
+               status = "okay";
+               nvidia,invert-interrupt;
+               nvidia,suspend-mode = <2>;
+               nvidia,cpu-pwr-good-time = <2000>;
+               nvidia,cpu-pwr-off-time = <200>;
+               nvidia,core-pwr-good-time = <3845 3845>;
+               nvidia,core-pwr-off-time = <0>;
+               nvidia,core-power-req-active-high;
+               nvidia,sys-clock-req-active-high;
+               core-supply = <&vdd_core>;
+
+               /* Set DEV_OFF + PWR_OFF_SET bit in DCDC control register of TPS65911 PMIC  */
+               i2c-thermtrip {
+                       nvidia,i2c-controller-id = <4>;
+                       nvidia,bus-addr = <0x2d>;
+                       nvidia,reg-addr = <0x3f>;
+                       nvidia,reg-data = <0x81>;
+               };
+       };
+
+       memory-controller@7000f000 {
+               emc-timings-0 {
+                       /* SAMSUNG K4P8G304EB FGC1 */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x73e30303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x72c30303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000018
+                                       0x00000001 0x00000001 0x00000003 0x00000001
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060403 0x72430504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000006 0x00000003
+                                       0x00000005 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000003 0x00000002
+                                       0x02030001 0x00070506 0x71e40a07 0x001f0000 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emem-configuration = < 0x00000006 0xc0000048
+                                       0x00000002 0x00000003 0x0000000c 0x00000007
+                                       0x00000009 0x00000001 0x00000002 0x00000006
+                                       0x00000001 0x00000000 0x00000004 0x00000004
+                                       0x04040001 0x000d090c 0x7026120d 0x001f0000 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* ELPIDA EDB8132B2MA 8D_F */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x73e30303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x72c30303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000018
+                                       0x00000001 0x00000001 0x00000003 0x00000001
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060403 0x72430504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000006 0x00000003
+                                       0x00000005 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000003 0x00000002
+                                       0x02030001 0x00070506 0x71e40a07 0x001f0000 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emem-configuration = < 0x00000006 0xc0000048
+                                       0x00000002 0x00000003 0x0000000c 0x00000007
+                                       0x00000009 0x00000001 0x00000002 0x00000006
+                                       0x00000001 0x00000000 0x00000004 0x00000004
+                                       0x04040001 0x000d090c 0x7026120d 0x001f0000 >;
+                       };
+               };
+
+               emc-timings-2 {
+                       /* SAMSUNG K4P8G304EB FGC2 */
+                       nvidia,ram-code = <2>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x73e30303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x72c30303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000018
+                                       0x00000001 0x00000001 0x00000003 0x00000001
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060403 0x72430504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000006 0x00000003
+                                       0x00000005 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000003 0x00000002
+                                       0x02030001 0x00070506 0x71e40a07 0x001f0000 >;
+                       };
+
+                       timing-533000000 {
+                               clock-frequency = <533000000>;
+
+                               nvidia,emem-configuration = < 0x00000008 0xc0000060
+                                       0x00000003 0x00000004 0x00000010 0x0000000a
+                                       0x0000000d 0x00000002 0x00000002 0x00000008
+                                       0x00000002 0x00000000 0x00000004 0x00000005
+                                       0x05040002 0x00110b10 0x70281811 0x001f0000 >;
+                       };
+               };
+
+               emc-timings-3 {
+                       /* HYNIX H9TCNNN8JDMMPR NGM */
+                       nvidia,ram-code = <3>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emem-configuration = < 0x00020001 0xc0000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x73e30303 0x001f0000 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emem-configuration = < 0x00010001 0xc0000010
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060402 0x72c30303 0x001f0000 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emem-configuration = < 0x00000001 0xc0000018
+                                       0x00000001 0x00000001 0x00000003 0x00000001
+                                       0x00000003 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000002 0x00000002
+                                       0x02020001 0x00060403 0x72430504 0x001f0000 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emem-configuration = < 0x00000003 0xc0000025
+                                       0x00000001 0x00000001 0x00000006 0x00000003
+                                       0x00000005 0x00000001 0x00000002 0x00000004
+                                       0x00000001 0x00000000 0x00000003 0x00000002
+                                       0x02030001 0x00070506 0x71e40a07 0x001f0000 >;
+                       };
+
+                       timing-533000000 {
+                               clock-frequency = <533000000>;
+
+                               nvidia,emem-configuration = < 0x00000008 0xc0000060
+                                       0x00000003 0x00000004 0x00000010 0x0000000a
+                                       0x0000000d 0x00000002 0x00000002 0x00000008
+                                       0x00000002 0x00000000 0x00000004 0x00000005
+                                       0x05040002 0x00110b10 0x70281811 0x001f0000 >;
+                       };
+               };
+       };
+
+       memory-controller@7000f400 {
+               emc-timings-0 {
+                       /* SAMSUNG K4P8G304EB FGC1 */
+                       nvidia,ram-code = <0>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000003 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x00000009 0x00000060 0x00000000 0x00000018
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000004 0x00000004
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x0000006b 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000000a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x800001c5 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000003
+                                       0x00000006 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x00000009 0x000000c0 0x00000000 0x00000030
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000008 0x00000008
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000000d5 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000013 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x0000000a>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000006
+                                       0x0000000d 0x00000004 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x00000009 0x00000181 0x00000000 0x00000060
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x0000000f 0x0000000f
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000001a9 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000025 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010042>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000013>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000c
+                                       0x0000001a 0x00000008 0x00000003 0x00000005
+                                       0x00000004 0x00000001 0x00000006 0x00000003
+                                       0x00000003 0x00000002 0x00000002 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000c
+                                       0x0000000a 0x00000303 0x00000000 0x000000c0
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000007 0x0000001d 0x0000001d
+                                       0x00000004 0x0000000b 0x00000005 0x00000004
+                                       0x00000002 0x00000351 0x00000004 0x00000006
+                                       0x00000000 0x00000000 0x00004282 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000e0220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000004a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010082>;
+                               nvidia,emc-mode-2 = <0x00020004>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000024>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000017
+                                       0x00000033 0x00000010 0x00000007 0x00000007
+                                       0x00000007 0x00000002 0x0000000a 0x00000007
+                                       0x00000007 0x00000003 0x00000002 0x00000000
+                                       0x00000003 0x00000007 0x00000004 0x0000000d
+                                       0x0000000e 0x000005e9 0x00000000 0x0000017a
+                                       0x00000002 0x00000002 0x00000007 0x00000000
+                                       0x00000001 0x0000000c 0x00000038 0x00000038
+                                       0x00000006 0x00000014 0x00000009 0x00000004
+                                       0x00000002 0x00000680 0x00000000 0x00000006
+                                       0x00000000 0x00000000 0x00006282 0x001d0084
+                                       0x00008000 0x00034000 0x00034000 0x00034000
+                                       0x00034000 0x00034000 0x00034000 0x00034000
+                                       0x00034000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00038000 0x00038000 0x00038000
+                                       0x00038000 0x00080220 0x0800003d 0x00000000
+                                       0x77ffc004 0x01f1f408 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000090 0x000c000c 0xa0f10404 0x00000000
+                                       0x00000000 0x80000ce6 0xe0000000 0xff00ff88 >;
+                       };
+               };
+
+               emc-timings-1 {
+                       /* ELPIDA EDB8132B2MA 8D_F */
+                       nvidia,ram-code = <1>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000003 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x00000060 0x00000000 0x00000018
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000004 0x00000004
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x0000006b 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000000a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x800001c5 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000003
+                                       0x00000006 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x000000c0 0x00000000 0x00000030
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000008 0x00000008
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000000d5 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000013 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x0000000a>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000006
+                                       0x0000000d 0x00000004 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x00000181 0x00000000 0x00000060
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x0000000f 0x0000000f
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000001a9 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000025 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010042>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000013>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000c
+                                       0x0000001a 0x00000008 0x00000003 0x00000005
+                                       0x00000004 0x00000001 0x00000006 0x00000003
+                                       0x00000003 0x00000002 0x00000002 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000c
+                                       0x0000000a 0x00000303 0x00000000 0x000000c0
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000007 0x0000001d 0x0000001d
+                                       0x00000004 0x0000000b 0x00000005 0x00000004
+                                       0x00000002 0x00000351 0x00000004 0x00000006
+                                       0x00000000 0x00000000 0x00004282 0x004400a4
+                                       0x00008000 0x00070000 0x00070000 0x00070000
+                                       0x00070000 0x00070000 0x00070000 0x00070000
+                                       0x00070000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000e0220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000004a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-400000000 {
+                               clock-frequency = <400000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010082>;
+                               nvidia,emc-mode-2 = <0x00020004>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000024>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000017
+                                       0x00000033 0x00000010 0x00000007 0x00000007
+                                       0x00000007 0x00000002 0x0000000a 0x00000007
+                                       0x00000007 0x00000003 0x00000002 0x00000000
+                                       0x00000003 0x00000007 0x00000004 0x0000000d
+                                       0x0000000e 0x000005e9 0x00000000 0x0000017a
+                                       0x00000002 0x00000002 0x00000007 0x00000000
+                                       0x00000001 0x0000000c 0x00000038 0x00000038
+                                       0x00000006 0x00000014 0x00000009 0x00000004
+                                       0x00000002 0x00000680 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00006282 0x001d0084
+                                       0x00008000 0x00034000 0x00034000 0x00034000
+                                       0x00034000 0x00034000 0x00034000 0x00034000
+                                       0x00034000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00048000 0x00048000 0x00048000
+                                       0x00048000 0x00060220 0x0800003d 0x00000000
+                                       0x77ffc004 0x01f1f408 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000090 0x000c000c 0xa0f10000 0x00000000
+                                       0x00000000 0x80000ce6 0xe0000000 0xff00ff88 >;
+                       };
+               };
+
+               emc-timings-2 {
+                       /* SAMSUNG K4P8G304EB FGC2 */
+                       nvidia,ram-code = <2>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000003 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x00000060 0x00000000 0x00000018
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000004 0x00000004
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x0000006b 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000000a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x800001c5 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000003
+                                       0x00000006 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x000000c0 0x00000000 0x00000030
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000008 0x00000008
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000000d5 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000013 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x0000000a>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000006
+                                       0x0000000d 0x00000004 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x00000009 0x00000181 0x00000000 0x00000060
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x0000000f 0x0000000f
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000001a9 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000025 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010042>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000013>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000c
+                                       0x0000001a 0x00000008 0x00000003 0x00000005
+                                       0x00000004 0x00000001 0x00000006 0x00000003
+                                       0x00000003 0x00000002 0x00000002 0x00000000
+                                       0x00000001 0x00000004 0x00000001 0x0000000c
+                                       0x0000000a 0x00000303 0x00000000 0x000000c0
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000007 0x0000001d 0x0000001d
+                                       0x00000004 0x0000000b 0x00000005 0x00000004
+                                       0x00000002 0x00000351 0x00000005 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x004400a4
+                                       0x00008000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000e0220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000004a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-533000000 {
+                               clock-frequency = <533000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x000100c2>;
+                               nvidia,emc-mode-2 = <0x00020006>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000030>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000001f
+                                       0x00000045 0x00000016 0x00000009 0x00000008
+                                       0x00000009 0x00000003 0x0000000d 0x00000009
+                                       0x00000009 0x00000005 0x00000003 0x00000000
+                                       0x00000004 0x0000000a 0x00000006 0x0000000d
+                                       0x00000010 0x000007df 0x00000000 0x000001f7
+                                       0x00000003 0x00000003 0x00000009 0x00000000
+                                       0x00000001 0x0000000f 0x0000004b 0x0000004b
+                                       0x00000008 0x0000001b 0x0000000c 0x00000004
+                                       0x00000002 0x000008aa 0x00000000 0x00000004
+                                       0x00000000 0x00000000 0x00006282 0xf0120091
+                                       0x00008000 0x007f8008 0x007f8008 0x007f8008
+                                       0x007f8008 0x007f8008 0x007f8008 0x007f8008
+                                       0x007f8008 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000c 0x0000000c 0x0000000c
+                                       0x0000000c 0x00080220 0x0200003d 0x00000000
+                                       0x77ffc004 0x01f1f408 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x000000c0 0x000e000e 0xa0f10000 0x00000000
+                                       0x00000000 0x800010d9 0xf0000000 0xff00ff88 >;
+                       };
+               };
+
+               emc-timings-3 {
+                       /* HYNIX H9TCNNN8JDMMPR NGM */
+                       nvidia,ram-code = <3>;
+
+                       timing-25500000 {
+                               clock-frequency = <25500000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000001
+                                       0x00000003 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x00000060 0x00000000 0x00000018
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000004 0x00000004
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x0000006b 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000000a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x800001c5 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-51000000 {
+                               clock-frequency = <51000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000009>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000003
+                                       0x00000006 0x00000002 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x000000c0 0x00000000 0x00000030
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x00000008 0x00000008
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000000d5 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000013 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000287 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-102000000 {
+                               clock-frequency = <102000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010022>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x0000000a>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x00000006
+                                       0x0000000d 0x00000004 0x00000002 0x00000004
+                                       0x00000004 0x00000001 0x00000005 0x00000002
+                                       0x00000002 0x00000001 0x00000001 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000b
+                                       0x0000000a 0x00000181 0x00000000 0x00000060
+                                       0x00000001 0x00000001 0x00000002 0x00000000
+                                       0x00000001 0x00000007 0x0000000f 0x0000000f
+                                       0x00000003 0x00000008 0x00000004 0x00000004
+                                       0x00000002 0x000001a9 0x00000004 0x00000004
+                                       0x00000000 0x00000000 0x00004282 0x007800a4
+                                       0x00008000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x000fc000 0x000fc000 0x000fc000
+                                       0x000fc000 0x00100220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x00000025 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x8000040b 0xe0000000 0xff00ff00 >;
+                       };
+
+                       timing-204000000 {
+                               clock-frequency = <204000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x00010042>;
+                               nvidia,emc-mode-2 = <0x00020001>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000013>;
+                               nvidia,emc-cfg-dyn-self-ref;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000000c
+                                       0x0000001a 0x00000008 0x00000003 0x00000005
+                                       0x00000004 0x00000001 0x00000006 0x00000003
+                                       0x00000003 0x00000002 0x00000002 0x00000000
+                                       0x00000001 0x00000003 0x00000001 0x0000000c
+                                       0x0000000b 0x00000303 0x00000000 0x000000c0
+                                       0x00000001 0x00000001 0x00000003 0x00000000
+                                       0x00000001 0x00000007 0x0000001d 0x0000001d
+                                       0x00000004 0x0000000b 0x00000005 0x00000004
+                                       0x00000002 0x00000351 0x00000004 0x00000006
+                                       0x00000000 0x00000000 0x00004282 0x004400a4
+                                       0x00008000 0x00072000 0x00072000 0x00072000
+                                       0x00072000 0x00072000 0x00072000 0x00072000
+                                       0x00072000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00080000 0x00080000 0x00080000
+                                       0x00080000 0x000e0220 0x0800201c 0x00000000
+                                       0x77ffc004 0x01f1f008 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x0000004a 0x00090009 0xa0f10000 0x00000000
+                                       0x00000000 0x80000713 0xd0000000 0xff00ff00 >;
+                       };
+
+                       timing-533000000 {
+                               clock-frequency = <533000000>;
+
+                               nvidia,emc-auto-cal-interval = <0x001fffff>;
+                               nvidia,emc-mode-1 = <0x000100c2>;
+                               nvidia,emc-mode-2 = <0x00020006>;
+                               nvidia,emc-mode-reset = <0x00000000>;
+                               nvidia,emc-zcal-cnt-long = <0x00000030>;
+                               nvidia,emc-cfg-periodic-qrst;
+
+                               nvidia,emc-configuration =  < 0x0000001f
+                                       0x00000045 0x00000016 0x00000009 0x00000008
+                                       0x00000009 0x00000003 0x0000000d 0x00000009
+                                       0x00000009 0x00000005 0x00000003 0x00000000
+                                       0x00000004 0x00000009 0x00000006 0x0000000d
+                                       0x00000010 0x000007df 0x00000000 0x000001f7
+                                       0x00000003 0x00000003 0x00000009 0x00000000
+                                       0x00000001 0x0000000f 0x0000004b 0x0000004b
+                                       0x00000008 0x0000001b 0x0000000c 0x00000004
+                                       0x00000002 0x000008aa 0x00000000 0x00000006
+                                       0x00000000 0x00000000 0x00006282 0xf0120091
+                                       0x00008000 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x0000000a 0x0000000a 0x0000000a
+                                       0x0000000a 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000
+                                       0x00000000 0x0000000c 0x0000000c 0x0000000c
+                                       0x0000000c 0x000a0220 0x0800003d 0x00000000
+                                       0x77ffc004 0x01f1f408 0x00000000 0x00000007
+                                       0x08000068 0x08000000 0x00000802 0x00064000
+                                       0x000000c0 0x000e000e 0xa0f10000 0x00000000
+                                       0x00000000 0x800010d9 0xe0000000 0xff00ff88 >;
+                       };
+               };
+       };
+
+       hda@70030000 {
+               status = "okay";
+       };
+
+       ahub@70080000 {
+               i2s@70080400 { /* i2s1 */
+                       status = "okay";
+               };
+
+               /* BT SCO */
+               i2s@70080600 { /* i2s3 */
+                       status = "okay";
+               };
+       };
+
+       sdmmc1: mmc@78000000 {
+               status = "okay";
+
+               cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
+               bus-width = <4>;
+
+               vmmc-supply = <&vdd_usd>; /* ldo2 */
+               vqmmc-supply = <&vddio_usd>; /* ldo3 */
+       };
+
+       brcm_wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+
+               clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
+               clock-names = "ext_clock";
+
+               reset-gpios = <&gpio TEGRA_GPIO(D, 3) GPIO_ACTIVE_LOW>;
+               post-power-on-delay-ms = <300>;
+               power-off-delay-us = <300>;
+       };
+
+       sdmmc3: mmc@78000400 {
+               status = "okay";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               assigned-clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
+               assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_C>;
+               assigned-clock-rates = <50000000>;
+
+               max-frequency = <50000000>;
+               keep-power-in-suspend;
+               bus-width = <4>;
+               non-removable;
+
+               mmc-pwrseq = <&brcm_wifi_pwrseq>;
+               vmmc-supply = <&vdd_3v3_sys>;
+               vqmmc-supply = <&vdd_1v8_vio>;
+
+               /* Azurewave AW-AH663 BCM4330B1 */
+               wifi@1 {
+                       compatible = "brcm,bcm4329-fmac";
+                       reg = <1>;
+
+                       interrupt-parent = <&gpio>;
+                       interrupts = <TEGRA_GPIO(O, 4) IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "host-wake";
+               };
+       };
+
+       sdmmc4: mmc@78000600 {
+               status = "okay";
+               bus-width = <8>;
+               vmmc-supply = <&vcore_emmc>;
+               vqmmc-supply = <&vdd_1v8_vio>;
+               non-removable;
+       };
+
+       usb@7d000000 {
+               compatible = "nvidia,tegra30-udc";
+               status = "okay";
+               dr_mode = "otg";
+               vbus-supply = <&vdd_vbus_usb1>;
+       };
+
+       usb-phy@7d000000 {
+               status = "okay";
+               dr_mode = "otg";
+               nvidia,hssync-start-delay = <0>;
+               nvidia,xcvr-lsfslew = <2>;
+               nvidia,xcvr-lsrslew = <2>;
+       };
+
+       usb@7d008000 {
+               status = "okay";
+       };
+
+       usb-phy@7d008000 {
+               status = "okay";
+               vbus-supply = <&vdd_vbus_usb3>;
+       };
+
+       mains: ac-adapter-detect {
+               compatible = "gpio-charger";
+               charger-type = "mains";
+               gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_HIGH>;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+
+               enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
+               power-supply = <&vdd_5v0_bl>;
+               pwms = <&pwm 0 5000000>;
+
+               brightness-levels = <1 255>;
+               num-interpolated-steps = <254>;
+               default-brightness-level = <15>;
+       };
+
+       /* PMIC has a built-in 32KHz oscillator which is used by PMC */
+       clk32k_in: clock-32k {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "pmic-oscillator";
+       };
+
+       cpus {
+               cpu0: cpu@0 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+               cpu1: cpu@1 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+               cpu2: cpu@2 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+               cpu3: cpu@3 {
+                       cpu-supply = <&vdd_cpu>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
+               };
+       };
+
+       display-panel {
+               compatible = "panel-lvds";
+
+               width-mm = <217>;
+               height-mm = <136>;
+
+               data-mapping = "jeida-24";
+
+               panel-timing {
+                       /* 1280x800@60Hz */
+                       clock-frequency = <68000000>;
+                       hactive = <1280>;
+                       vactive = <800>;
+                       hfront-porch = <48>;
+                       hback-porch = <18>;
+                       hsync-len = <30>;
+                       vsync-len = <5>;
+                       vfront-porch = <3>;
+                       vback-porch = <12>;
+               };
+       };
+
+       extcon-keys {
+               compatible = "gpio-keys";
+               interrupt-parent = <&gpio>;
+
+               dock-insert {
+                       label = "Chagall Dock";
+                       gpios = <&gpio TEGRA_GPIO(S, 4) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_DOCK>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               lineout-detect {
+                       label = "Audio dock line-out detect";
+                       gpios = <&gpio TEGRA_GPIO(S, 3) GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LINEOUT_INSERT>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+       };
+
+       firmware {
+               trusted-foundations {
+                       compatible = "tlm,trusted-foundations";
+                       tlm,version-major = <2>;
+                       tlm,version-minor = <8>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               interrupt-parent = <&gpio>;
+
+               power {
+                       label = "Power";
+                       gpios = <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               volume-up {
+                       label = "Volume Up";
+                       gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               volume-down {
+                       label = "Volume Down";
+                       gpios = <&gpio TEGRA_GPIO(Q, 1) GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <10>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+       };
+
+       haptic-feedback {
+               compatible = "gpio-vibrator";
+               enable-gpios = <&gpio TEGRA_GPIO(U, 4) GPIO_ACTIVE_HIGH>;
+               vcc-supply = <&vdd_3v3_sys>;
+       };
+
+       sound {
+               compatible = "pegatron,tegra-audio-wm8903-chagall",
+                            "nvidia,tegra-audio-wm8903";
+               nvidia,model = "Pegatron Chagall WM8903";
+
+               nvidia,audio-routing =
+                       "Headphone Jack", "HPOUTR",
+                       "Headphone Jack", "HPOUTL",
+                       "Int Spk", "ROP",
+                       "Int Spk", "RON",
+                       "Int Spk", "LOP",
+                       "Int Spk", "LON",
+                       "IN1R", "Mic Jack",
+                       "DMICDAT", "Int Mic";
+
+               nvidia,i2s-controller = <&tegra_i2s1>;
+               nvidia,audio-codec = <&wm8903>;
+
+               nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
+               nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
+               nvidia,headset;
+
+               clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
+                        <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
+                        <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+               clock-names = "pll_a", "pll_a_out0", "mclk";
+
+               assigned-clocks = <&tegra_car TEGRA30_CLK_EXTERN1>,
+                                 <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
+
+               assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
+                                        <&tegra_car TEGRA30_CLK_EXTERN1>;
+       };
+
+       thermal-zones {
+               /*
+                * NCT72 has two sensors:
+                *
+                *      0: internal that monitors ambient/skin temperature
+                *      1: external that is connected to the CPU's diode
+                *
+                * Ideally we should use userspace thermal governor,
+                * but it's a much more complex solution.  The "skin"
+                * zone exists as a simpler solution which prevents
+                * Chagall from getting too hot from a user's tactile
+                * perspective. The CPU zone is intended to protect
+                * silicon from damage.
+                */
+
+               skin-thermal {
+                       polling-delay-passive = <1000>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&nct72 0>;
+
+                       trips {
+                               trip0: skin-alert {
+                                       /* throttle at 57C until temperature drops to 56.8C */
+                                       temperature = <57000>;
+                                       hysteresis = <200>;
+                                       type = "passive";
+                               };
+
+                               trip1: skin-crit {
+                                       /* shut down at 65C */
+                                       temperature = <65000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&trip0>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&actmon THERMAL_NO_LIMIT
+                                                                 THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               cpu-thermal {
+                       polling-delay-passive = <1000>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&nct72 1>;
+
+                       trips {
+                               trip2: cpu-alert {
+                                       /* throttle at 85C until temperature drops to 84.8C */
+                                       temperature = <85000>;
+                                       hysteresis = <200>;
+                                       type = "passive";
+                               };
+
+                               trip3: cpu-crit {
+                                       /* shut down at 90C */
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map1 {
+                                       trip = <&trip2>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&actmon THERMAL_NO_LIMIT
+                                                                 THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+};
+
+&emc_icc_dvfs_opp_table {
+       /delete-node/ opp-625000000-1200;
+       /delete-node/ opp-625000000-1250;
+       /delete-node/ opp-667000000-1200;
+       /delete-node/ opp-750000000-1300;
+       /delete-node/ opp-800000000-1300;
+       /delete-node/ opp-900000000-1350;
+};
+
+&emc_bw_dfs_opp_table {
+       /delete-node/ opp-625000000;
+       /delete-node/ opp-667000000;
+       /delete-node/ opp-750000000;
+       /delete-node/ opp-800000000;
+       /delete-node/ opp-900000000;
+};
index 2c97803..d100a1a 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
 
 / {
-       emc_icc_dvfs_opp_table: emc-dvfs-opp-table {
+       core_opp_table: opp-table-core {
                compatible = "operating-points-v2";
+               opp-shared;
 
-               opp@12750000,950 {
+               core_opp_950: opp-950000 {
+                       opp-microvolt = <950000 950000 1350000>;
+                       opp-level = <950000>;
+               };
+
+               core_opp_1000: opp-1000000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-level = <1000000>;
+               };
+
+               core_opp_1050: opp-1050000 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-level = <1050000>;
+               };
+
+               core_opp_1100: opp-1100000 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-level = <1100000>;
+               };
+
+               core_opp_1150: opp-1150000 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-level = <1150000>;
+               };
+
+               core_opp_1200: opp-1200000 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-level = <1200000>;
+               };
+
+               core_opp_1250: opp-1250000 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-level = <1250000>;
+               };
+
+               core_opp_1300: opp-1300000 {
+                       opp-microvolt = <1300000 1300000 1350000>;
+                       opp-level = <1300000>;
+               };
+
+               core_opp_1350: opp-1350000 {
+                       opp-microvolt = <1350000 1350000 1350000>;
+                       opp-level = <1350000>;
+               };
+       };
+
+       emc_icc_dvfs_opp_table: opp-table-emc {
+               compatible = "operating-points-v2";
+
+               opp-12750000-950 {
                        opp-microvolt = <950000 950000 1350000>;
                        opp-hz = /bits/ 64 <12750000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@12750000,1000 {
+               opp-12750000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <12750000>;
                        opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@12750000,1250 {
+               opp-12750000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <12750000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@25500000,950 {
+               opp-25500000-950 {
                        opp-microvolt = <950000 950000 1350000>;
                        opp-hz = /bits/ 64 <25500000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@25500000,1000 {
+               opp-25500000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <25500000>;
                        opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@25500000,1250 {
+               opp-25500000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <25500000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@27000000,950 {
+               opp-27000000-950 {
                        opp-microvolt = <950000 950000 1350000>;
                        opp-hz = /bits/ 64 <27000000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@27000000,1000 {
+               opp-27000000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <27000000>;
                        opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@27000000,1250 {
+               opp-27000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <27000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@51000000,950 {
+               opp-51000000-950 {
                        opp-microvolt = <950000 950000 1350000>;
                        opp-hz = /bits/ 64 <51000000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@51000000,1000 {
+               opp-51000000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <51000000>;
                        opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@51000000,1250 {
+               opp-51000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <51000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@54000000,950 {
+               opp-54000000-950 {
                        opp-microvolt = <950000 950000 1350000>;
                        opp-hz = /bits/ 64 <54000000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@54000000,1000 {
+               opp-54000000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <54000000>;
                        opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@54000000,1250 {
+               opp-54000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <54000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@102000000,950 {
+               opp-102000000-950 {
                        opp-microvolt = <950000 950000 1350000>;
                        opp-hz = /bits/ 64 <102000000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_950>;
                };
 
-               opp@102000000,1000 {
+               opp-102000000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <102000000>;
                        opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@102000000,1250 {
+               opp-102000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <102000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@108000000,1000 {
+               opp-108000000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <108000000>;
                        opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@108000000,1250 {
+               opp-108000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <108000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@204000000,1000 {
+               opp-204000000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <204000000>;
                        opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1000>;
                        opp-suspend;
                };
 
-               opp@204000000,1250 {
+               opp-204000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <204000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                        opp-suspend;
                };
 
-               opp@333500000,1000 {
+               opp-333500000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <333500000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@333500000,1200 {
+               opp-333500000-1200 {
                        opp-microvolt = <1200000 1200000 1350000>;
                        opp-hz = /bits/ 64 <333500000>;
                        opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@333500000,1250 {
+               opp-333500000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <333500000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@375000000,1000 {
+               opp-375000000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <375000000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@375000000,1200 {
+               opp-375000000-1200 {
                        opp-microvolt = <1200000 1200000 1350000>;
                        opp-hz = /bits/ 64 <375000000>;
                        opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@375000000,1250 {
+               opp-375000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <375000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@400000000,1000 {
+               opp-400000000-1000 {
                        opp-microvolt = <1000000 1000000 1350000>;
                        opp-hz = /bits/ 64 <400000000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1000>;
                };
 
-               opp@400000000,1200 {
+               opp-400000000-1200 {
                        opp-microvolt = <1200000 1200000 1350000>;
                        opp-hz = /bits/ 64 <400000000>;
                        opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@400000000,1250 {
+               opp-400000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <400000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@416000000,1200 {
+               opp-416000000-1200 {
                        opp-microvolt = <1200000 1200000 1350000>;
                        opp-hz = /bits/ 64 <416000000>;
                        opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@416000000,1250 {
+               opp-416000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <416000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@450000000,1200 {
+               opp-450000000-1200 {
                        opp-microvolt = <1200000 1200000 1350000>;
                        opp-hz = /bits/ 64 <450000000>;
                        opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@450000000,1250 {
+               opp-450000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <450000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
+               };
+
+               opp-500000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-500000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@533000000,1200 {
+               opp-533000000-1200 {
                        opp-microvolt = <1200000 1200000 1350000>;
                        opp-hz = /bits/ 64 <533000000>;
                        opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@533000000,1250 {
+               opp-533000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <533000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@625000000,1200 {
+               opp-625000000-1200 {
                        opp-microvolt = <1200000 1200000 1350000>;
                        opp-hz = /bits/ 64 <625000000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@625000000,1250 {
+               opp-625000000-1250 {
                        opp-microvolt = <1250000 1250000 1350000>;
                        opp-hz = /bits/ 64 <625000000>;
                        opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
                };
 
-               opp@667000000,1200 {
+               opp-667000000-1200 {
                        opp-microvolt = <1200000 1200000 1350000>;
                        opp-hz = /bits/ 64 <667000000>;
                        opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1200>;
                };
 
-               opp@750000000,1300 {
+               opp-750000000-1300 {
                        opp-microvolt = <1300000 1300000 1350000>;
                        opp-hz = /bits/ 64 <750000000>;
                        opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1300>;
                };
 
-               opp@800000000,1300 {
+               opp-800000000-1300 {
                        opp-microvolt = <1300000 1300000 1350000>;
                        opp-hz = /bits/ 64 <800000000>;
                        opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1300>;
                };
 
-               opp@900000000,1350 {
+               opp-900000000-1350 {
                        opp-microvolt = <1350000 1350000 1350000>;
                        opp-hz = /bits/ 64 <900000000>;
                        opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1350>;
                };
        };
 
-       emc_bw_dfs_opp_table: emc-bandwidth-opp-table {
+       emc_bw_dfs_opp_table: opp-table-actmon {
                compatible = "operating-points-v2";
 
-               opp@12750000 {
+               opp-12750000 {
                        opp-hz = /bits/ 64 <12750000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <102000>;
                };
 
-               opp@25500000 {
+               opp-25500000 {
                        opp-hz = /bits/ 64 <25500000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <204000>;
                };
 
-               opp@27000000 {
+               opp-27000000 {
                        opp-hz = /bits/ 64 <27000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <216000>;
                };
 
-               opp@51000000 {
+               opp-51000000 {
                        opp-hz = /bits/ 64 <51000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <408000>;
                };
 
-               opp@54000000 {
+               opp-54000000 {
                        opp-hz = /bits/ 64 <54000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <432000>;
                };
 
-               opp@102000000 {
+               opp-102000000 {
                        opp-hz = /bits/ 64 <102000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <816000>;
                };
 
-               opp@108000000 {
+               opp-108000000 {
                        opp-hz = /bits/ 64 <108000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <864000>;
                };
 
-               opp@204000000 {
+               opp-204000000 {
                        opp-hz = /bits/ 64 <204000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <1632000>;
                        opp-suspend;
                };
 
-               opp@333500000 {
+               opp-333500000 {
                        opp-hz = /bits/ 64 <333500000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <2668000>;
                };
 
-               opp@375000000 {
+               opp-375000000 {
                        opp-hz = /bits/ 64 <375000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <3000000>;
                };
 
-               opp@400000000 {
+               opp-400000000 {
                        opp-hz = /bits/ 64 <400000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <3200000>;
                };
 
-               opp@416000000 {
+               opp-416000000 {
                        opp-hz = /bits/ 64 <416000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <3328000>;
                };
 
-               opp@450000000 {
+               opp-450000000 {
                        opp-hz = /bits/ 64 <450000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <3600000>;
                };
 
-               opp@533000000 {
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-supported-hw = <0x000F>;
+                       opp-peak-kBps = <4000000>;
+               };
+
+               opp-533000000 {
                        opp-hz = /bits/ 64 <533000000>;
                        opp-supported-hw = <0x000F>;
                        opp-peak-kBps = <4264000>;
                };
 
-               opp@625000000 {
+               opp-625000000 {
                        opp-hz = /bits/ 64 <625000000>;
                        opp-supported-hw = <0x000E>;
                        opp-peak-kBps = <5000000>;
                };
 
-               opp@667000000 {
+               opp-667000000 {
                        opp-hz = /bits/ 64 <667000000>;
                        opp-supported-hw = <0x0006>;
                        opp-peak-kBps = <5336000>;
                };
 
-               opp@750000000 {
+               opp-750000000 {
                        opp-hz = /bits/ 64 <750000000>;
                        opp-supported-hw = <0x0004>;
                        opp-peak-kBps = <6000000>;
                };
 
-               opp@800000000 {
+               opp-800000000 {
                        opp-hz = /bits/ 64 <800000000>;
                        opp-supported-hw = <0x0004>;
                        opp-peak-kBps = <6400000>;
                };
 
-               opp@900000000 {
+               opp-900000000 {
                        opp-hz = /bits/ 64 <900000000>;
                        opp-supported-hw = <0x0004>;
                        opp-peak-kBps = <7200000>;
                };
        };
+
+       pcie_dvfs_opp_table: opp-table-pcie {
+               compatible = "operating-points-v2";
+
+               opp-250000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <250000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       host1x_dvfs_opp_table: opp-table-host1x {
+               compatible = "operating-points-v2";
+
+               opp-152000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <152000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-188000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <188000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-222000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <222000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-242000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <242000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
+               };
+
+               opp-254000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <254000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-267000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <267000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-300000000-1350 {
+                       opp-microvolt = <1350000 1350000 1350000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1350>;
+               };
+       };
+
+       mpe_dvfs_opp_table: opp-table-mpe {
+               compatible = "operating-points-v2";
+
+               opp-234000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <234000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-247000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-285000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-304000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <304000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-332000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <332000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-361000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <361000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-380000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <380000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-408000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-416000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <416000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-446000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <446000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-484000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <484000000>;
+                       opp-supported-hw = <0x000C>;
+                       required-opps = <&core_opp_1250>;
+               };
+
+               opp-520000000-1300 {
+                       opp-microvolt = <1300000 1300000 1350000>;
+                       opp-hz = /bits/ 64 <520000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1300>;
+               };
+
+               opp-600000000-1350 {
+                       opp-microvolt = <1350000 1350000 1350000>;
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1350>;
+               };
+       };
+
+       vi_dvfs_opp_table: opp-table-vi {
+               compatible = "operating-points-v2";
+
+               opp-216000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <216000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-219000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <219000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-267000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <267000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-285000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-300000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-371000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <371000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-409000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <409000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-425000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <425000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1250>;
+               };
+
+               opp-470000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <470000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
+               };
+       };
+
+       epp_dvfs_opp_table: opp-table-epp {
+               compatible = "operating-points-v2";
+
+               opp-267000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <267000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-285000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-304000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <304000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-332000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <332000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-361000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <361000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-380000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <380000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-408000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-416000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <416000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-446000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <446000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-484000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <484000000>;
+                       opp-supported-hw = <0x000C>;
+                       required-opps = <&core_opp_1250>;
+               };
+
+               opp-520000000-1300 {
+                       opp-microvolt = <1300000 1300000 1350000>;
+                       opp-hz = /bits/ 64 <520000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1300>;
+               };
+
+               opp-600000000-1350 {
+                       opp-microvolt = <1350000 1350000 1350000>;
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1350>;
+               };
+       };
+
+       gr2d_dvfs_opp_table: opp-table-gr2d {
+               compatible = "operating-points-v2";
+
+               opp-267000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <267000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-285000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-304000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <304000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-332000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <332000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-361000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <361000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-380000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <380000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-408000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-416000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <416000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-446000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <446000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-484000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <484000000>;
+                       opp-supported-hw = <0x000C>;
+                       required-opps = <&core_opp_1250>;
+               };
+
+               opp-520000000-1300 {
+                       opp-microvolt = <1300000 1300000 1350000>;
+                       opp-hz = /bits/ 64 <520000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1300>;
+               };
+
+               opp-600000000-1350 {
+                       opp-microvolt = <1350000 1350000 1350000>;
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1350>;
+               };
+       };
+
+       gr3d_dvfs_opp_table: opp-table-gr3d {
+               compatible = "operating-points-v2";
+
+               opp-234000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <234000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1000>, <&core_opp_1000>;
+               };
+
+               opp-247000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1000>, <&core_opp_1000>;
+               };
+
+               opp-285000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <285000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1050>, <&core_opp_1050>;
+               };
+
+               opp-304000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <304000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1050>, <&core_opp_1050>;
+               };
+
+               opp-332000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <332000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1100>, <&core_opp_1100>;
+               };
+
+               opp-361000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <361000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1100>, <&core_opp_1100>;
+               };
+
+               opp-380000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <380000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1150>, <&core_opp_1150>;
+               };
+
+               opp-408000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1150>, <&core_opp_1150>;
+               };
+
+               opp-416000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <416000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1200>, <&core_opp_1200>;
+               };
+
+               opp-446000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <446000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1200>, <&core_opp_1200>;
+               };
+
+               opp-484000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <484000000>;
+                       opp-supported-hw = <0x000C>;
+                       required-opps = <&core_opp_1250>, <&core_opp_1250>;
+               };
+
+               opp-520000000-1300 {
+                       opp-microvolt = <1300000 1300000 1350000>;
+                       opp-hz = /bits/ 64 <520000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1300>, <&core_opp_1300>;
+               };
+
+               opp-600000000-1350 {
+                       opp-microvolt = <1350000 1350000 1350000>;
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1350>, <&core_opp_1350>;
+               };
+       };
+
+       disp1_dvfs_opp_table: opp-table-disp1 {
+               compatible = "operating-points-v2";
+
+               opp-120000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <120000000>;
+                       opp-supported-hw = <0x0009>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-155000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <155000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-190000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <190000000>;
+                       opp-supported-hw = <0x0009>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-268000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <268000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1050>;
+               };
+       };
+
+       disp2_dvfs_opp_table: opp-table-disp2 {
+               compatible = "operating-points-v2";
+
+               opp-120000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <120000000>;
+                       opp-supported-hw = <0x0009>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-155000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <155000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-190000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <190000000>;
+                       opp-supported-hw = <0x0009>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-268000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <268000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1050>;
+               };
+       };
+
+       hdmi_dvfs_opp_table: opp-table-hdmi {
+               compatible = "operating-points-v2";
+
+               opp-148500000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <148500000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       tvo_dvfs_opp_table: opp-table-tvo {
+               compatible = "operating-points-v2";
+
+               opp-297000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <297000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1050>;
+               };
+       };
+
+       dsia_dvfs_opp_table: opp-table-dsia {
+               compatible = "operating-points-v2";
+
+               opp-275000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <275000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       dsib_dvfs_opp_table: opp-table-dsib {
+               compatible = "operating-points-v2";
+
+               opp-275000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <275000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       sclk_dvfs_opp_table: opp-table-sclk {
+               compatible = "operating-points-v2";
+
+               opp-51000000-950 {
+                       opp-microvolt = <950000 950000 1350000>;
+                       opp-hz = /bits/ 64 <51000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-136000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <136000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-164000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <164000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-191000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <191000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-205000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <205000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-216000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <216000000>;
+                       opp-supported-hw = <0x0001>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-227000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <227000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-267000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <267000000>;
+                       opp-supported-hw = <0x0006>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-334000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <334000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1250>;
+               };
+
+               opp-378000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <378000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
+               };
+       };
+
+       pll_c_dvfs_opp_table: opp-table-pllc {
+               compatible = "operating-points-v2";
+
+               opp-533000000-950 {
+                       opp-microvolt = <950000 950000 1350000>;
+                       opp-hz = /bits/ 64 <533000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-667000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <667000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-800000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-1066000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <1066000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-1200000000-1350 {
+                       opp-microvolt = <1350000 1350000 1350000>;
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1350>;
+               };
+       };
+
+       pll_e_dvfs_opp_table: opp-table-plle {
+               compatible = "operating-points-v2";
+
+               opp-100000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       pll_m_dvfs_opp_table: opp-table-pllm {
+               compatible = "operating-points-v2";
+
+               opp-533000000-950 {
+                       opp-microvolt = <950000 950000 1350000>;
+                       opp-hz = /bits/ 64 <533000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-667000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <667000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-800000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-1066000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <1066000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       vde_dvfs_opp_table: opp-table-vde {
+               compatible = "operating-points-v2";
+
+               opp-228000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <228000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-247000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <247000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-275000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <275000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-304000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <304000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-332000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <332000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-352000000-1100 {
+                       opp-microvolt = <1100000 1100000 1350000>;
+                       opp-hz = /bits/ 64 <352000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1100>;
+               };
+
+               opp-380000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <380000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-400000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1150>;
+               };
+
+               opp-416000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <416000000>;
+                       opp-supported-hw = <0x0003>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-437000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <437000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1200>;
+               };
+
+               opp-484000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <484000000>;
+                       opp-supported-hw = <0x000C>;
+                       required-opps = <&core_opp_1250>;
+               };
+
+               opp-520000000-1300 {
+                       opp-microvolt = <1300000 1300000 1350000>;
+                       opp-hz = /bits/ 64 <520000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1300>;
+               };
+
+               opp-600000000-1350 {
+                       opp-microvolt = <1350000 1350000 1350000>;
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x0004>;
+                       required-opps = <&core_opp_1350>;
+               };
+       };
+
+       fuse_burn_dvfs_opp_table: opp-table-fuseburn {
+               compatible = "operating-points-v2";
+
+               opp-26000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <26000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1150>;
+               };
+       };
+
+       nor_dvfs_opp_table: opp-table-nor {
+               compatible = "operating-points-v2";
+
+               opp-108000000-1250 {
+                       opp-microvolt = <1250000 1250000 1350000>;
+                       opp-hz = /bits/ 64 <108000000>;
+                       opp-supported-hw = <0x0008>;
+                       required-opps = <&core_opp_1250>;
+               };
+
+               opp-115000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <115000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-130000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <130000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-133000000-1150 {
+                       opp-microvolt = <1150000 1150000 1350000>;
+                       opp-hz = /bits/ 64 <133000000>;
+                       opp-supported-hw = <0x0007>;
+                       required-opps = <&core_opp_1150>;
+               };
+       };
+
+       pwm_dvfs_opp_table: opp-table-pwm {
+               compatible = "operating-points-v2";
+
+               opp-408000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       sbc1_dvfs_opp_table: opp-table-sbc1 {
+               compatible = "operating-points-v2";
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-60000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <60000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-100000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       sbc2_dvfs_opp_table: opp-table-sbc2 {
+               compatible = "operating-points-v2";
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-60000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <60000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-100000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       sbc3_dvfs_opp_table: opp-table-sbc3 {
+               compatible = "operating-points-v2";
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-60000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <60000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-100000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       sbc4_dvfs_opp_table: opp-table-sbc4 {
+               compatible = "operating-points-v2";
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-60000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <60000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-100000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       sbc5_dvfs_opp_table: opp-table-sbc5 {
+               compatible = "operating-points-v2";
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-60000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <60000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-100000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       sbc6_dvfs_opp_table: opp-table-sbc6 {
+               compatible = "operating-points-v2";
+
+               opp-52000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <52000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+
+               opp-60000000-1050 {
+                       opp-microvolt = <1050000 1050000 1350000>;
+                       opp-hz = /bits/ 64 <60000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1050>;
+               };
+
+               opp-100000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       sdmmc1_dvfs_opp_table: opp-table-sdmmc1 {
+               compatible = "operating-points-v2";
+
+               opp-104000000-950 {
+                       opp-microvolt = <950000 950000 1350000>;
+                       opp-hz = /bits/ 64 <104000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-208000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <208000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       sdmmc3_dvfs_opp_table: opp-table-sdmmc3 {
+               compatible = "operating-points-v2";
+
+               opp-104000000-950 {
+                       opp-microvolt = <950000 950000 1350000>;
+                       opp-hz = /bits/ 64 <104000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_950>;
+               };
+
+               opp-208000000-1200 {
+                       opp-microvolt = <1200000 1200000 1350000>;
+                       opp-hz = /bits/ 64 <208000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1200>;
+               };
+       };
+
+       usbd_dvfs_opp_table: opp-table-usbd {
+               compatible = "operating-points-v2";
+
+               opp-480000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <480000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       usb2_dvfs_opp_table: opp-table-usb2 {
+               compatible = "operating-points-v2";
+
+               opp-480000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <480000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
+
+       usb3_dvfs_opp_table: opp-table-usb3 {
+               compatible = "operating-points-v2";
+
+               opp-480000000-1000 {
+                       opp-microvolt = <1000000 1000000 1350000>;
+                       opp-hz = /bits/ 64 <480000000>;
+                       opp-supported-hw = <0x000F>;
+                       required-opps = <&core_opp_1000>;
+               };
+       };
 };
index ae3df73..9dab8d2 100644 (file)
@@ -55,6 +55,8 @@
                         <&tegra_car 72>,
                         <&tegra_car 74>;
                reset-names = "pex", "afi", "pcie_x";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&pcie_dvfs_opp_table>;
                status = "disabled";
 
                pci@1,0 {
                interrupt-names = "syncpt", "host1x";
                clocks = <&tegra_car TEGRA30_CLK_HOST1X>;
                clock-names = "host1x";
-               resets = <&tegra_car 28>;
-               reset-names = "host1x";
+               resets = <&tegra_car 28>, <&mc TEGRA30_MC_RESET_HC>;
+               reset-names = "host1x", "mc";
                iommus = <&mc TEGRA_SWGROUP_HC>;
+               power-domains = <&pd_heg>;
+               operating-points-v2 = <&host1x_dvfs_opp_table>;
 
                #address-cells = <1>;
                #size-cells = <1>;
                        clocks = <&tegra_car TEGRA30_CLK_MPE>;
                        resets = <&tegra_car 60>;
                        reset-names = "mpe";
+                       power-domains = <&pd_mpe>;
+                       operating-points-v2 = <&mpe_dvfs_opp_table>;
 
                        iommus = <&mc TEGRA_SWGROUP_MPE>;
+
+                       status = "disabled";
                };
 
                vi@54080000 {
                        clocks = <&tegra_car TEGRA30_CLK_VI>;
                        resets = <&tegra_car 20>;
                        reset-names = "vi";
+                       power-domains = <&pd_venc>;
+                       operating-points-v2 = <&vi_dvfs_opp_table>;
 
                        iommus = <&mc TEGRA_SWGROUP_VI>;
+
+                       status = "disabled";
                };
 
                epp@540c0000 {
                        clocks = <&tegra_car TEGRA30_CLK_EPP>;
                        resets = <&tegra_car 19>;
                        reset-names = "epp";
+                       power-domains = <&pd_heg>;
+                       operating-points-v2 = <&epp_dvfs_opp_table>;
 
                        iommus = <&mc TEGRA_SWGROUP_EPP>;
+
+                       status = "disabled";
                };
 
                isp@54100000 {
                        clocks = <&tegra_car TEGRA30_CLK_ISP>;
                        resets = <&tegra_car 23>;
                        reset-names = "isp";
+                       power-domains = <&pd_venc>;
 
                        iommus = <&mc TEGRA_SWGROUP_ISP>;
+
+                       status = "disabled";
                };
 
                gr2d@54140000 {
                        reg = <0x54140000 0x00040000>;
                        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&tegra_car TEGRA30_CLK_GR2D>;
-                       resets = <&tegra_car 21>;
-                       reset-names = "2d";
+                       resets = <&tegra_car 21>, <&mc TEGRA30_MC_RESET_2D>;
+                       reset-names = "2d", "mc";
+                       power-domains = <&pd_heg>;
+                       operating-points-v2 = <&gr2d_dvfs_opp_table>;
 
                        iommus = <&mc TEGRA_SWGROUP_G2>;
                };
                                 <&tegra_car TEGRA30_CLK_GR3D2>;
                        clock-names = "3d", "3d2";
                        resets = <&tegra_car 24>,
-                                <&tegra_car 98>;
-                       reset-names = "3d", "3d2";
+                                <&tegra_car 98>,
+                                <&mc TEGRA30_MC_RESET_3D>,
+                                <&mc TEGRA30_MC_RESET_3D2>;
+                       reset-names = "3d", "3d2", "mc", "mc2";
+                       power-domains = <&pd_3d0>, <&pd_3d1>;
+                       power-domain-names = "3d0", "3d1";
+                       operating-points-v2 = <&gr3d_dvfs_opp_table>;
 
                        iommus = <&mc TEGRA_SWGROUP_NV>,
                                 <&mc TEGRA_SWGROUP_NV2>;
                        clock-names = "dc", "parent";
                        resets = <&tegra_car 27>;
                        reset-names = "dc";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&disp1_dvfs_opp_table>;
 
                        iommus = <&mc TEGRA_SWGROUP_DC>;
 
                        clock-names = "dc", "parent";
                        resets = <&tegra_car 26>;
                        reset-names = "dc";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&disp2_dvfs_opp_table>;
 
                        iommus = <&mc TEGRA_SWGROUP_DCB>;
 
                        clock-names = "hdmi", "parent";
                        resets = <&tegra_car 51>;
                        reset-names = "hdmi";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&hdmi_dvfs_opp_table>;
                        status = "disabled";
                };
 
                        reg = <0x542c0000 0x00040000>;
                        interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&tegra_car TEGRA30_CLK_TVO>;
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&tvo_dvfs_opp_table>;
                        status = "disabled";
                };
 
                        clock-names = "dsi", "parent";
                        resets = <&tegra_car 48>;
                        reset-names = "dsi";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&dsia_dvfs_opp_table>;
                        status = "disabled";
                };
 
                        clock-names = "dsi", "parent";
                        resets = <&tegra_car 84>;
                        reset-names = "dsi";
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&dsib_dvfs_opp_table>;
                        status = "disabled";
                };
        };
                reg = <0x60006000 0x1000>;
                #clock-cells = <1>;
                #reset-cells = <1>;
+
+               sclk {
+                       compatible = "nvidia,tegra30-sclk";
+                       clocks = <&tegra_car TEGRA30_CLK_SCLK>;
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&sclk_dvfs_opp_table>;
+               };
+
+               pll-c {
+                       compatible = "nvidia,tegra30-pllc";
+                       clocks = <&tegra_car TEGRA30_CLK_PLL_C>;
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&pll_c_dvfs_opp_table>;
+               };
+
+               pll-e {
+                       compatible = "nvidia,tegra30-plle";
+                       clocks = <&tegra_car TEGRA30_CLK_PLL_E>;
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&pll_e_dvfs_opp_table>;
+               };
+
+               pll-m {
+                       compatible = "nvidia,tegra30-pllm";
+                       clocks = <&tegra_car TEGRA30_CLK_PLL_M>;
+                       power-domains = <&pd_core>;
+                       operating-points-v2 = <&pll_m_dvfs_opp_table>;
+               };
        };
 
        flow-controller@60007000 {
                gpio-controller;
                #interrupt-cells = <2>;
                interrupt-controller;
-               /*
                gpio-ranges = <&pinmux 0 0 248>;
-               */
        };
 
        vde@6001a000 {
                reset-names = "vde", "mc";
                resets = <&tegra_car 61>, <&mc TEGRA30_MC_RESET_VDE>;
                iommus = <&mc TEGRA_SWGROUP_VDE>;
+               power-domains = <&pd_vde>;
+               operating-points-v2 = <&vde_dvfs_opp_table>;
        };
 
        apbmisc@70000800 {
                clock-names = "gmi";
                resets = <&tegra_car 42>;
                reset-names = "gmi";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&nor_dvfs_opp_table>;
                status = "disabled";
        };
 
                clocks = <&tegra_car TEGRA30_CLK_PWM>;
                resets = <&tegra_car 17>;
                reset-names = "pwm";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&pwm_dvfs_opp_table>;
                status = "disabled";
        };
 
        };
 
        spi@7000d400 {
-               compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
+               compatible = "nvidia,tegra30-slink";
                reg = <0x7000d400 0x200>;
                interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                reset-names = "spi";
                dmas = <&apbdma 15>, <&apbdma 15>;
                dma-names = "rx", "tx";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sbc1_dvfs_opp_table>;
                status = "disabled";
        };
 
        spi@7000d600 {
-               compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
+               compatible = "nvidia,tegra30-slink";
                reg = <0x7000d600 0x200>;
                interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                reset-names = "spi";
                dmas = <&apbdma 16>, <&apbdma 16>;
                dma-names = "rx", "tx";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sbc2_dvfs_opp_table>;
                status = "disabled";
        };
 
        spi@7000d800 {
-               compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
+               compatible = "nvidia,tegra30-slink";
                reg = <0x7000d800 0x200>;
                interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                reset-names = "spi";
                dmas = <&apbdma 17>, <&apbdma 17>;
                dma-names = "rx", "tx";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sbc3_dvfs_opp_table>;
                status = "disabled";
        };
 
        spi@7000da00 {
-               compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
+               compatible = "nvidia,tegra30-slink";
                reg = <0x7000da00 0x200>;
                interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                reset-names = "spi";
                dmas = <&apbdma 18>, <&apbdma 18>;
                dma-names = "rx", "tx";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sbc4_dvfs_opp_table>;
                status = "disabled";
        };
 
        spi@7000dc00 {
-               compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
+               compatible = "nvidia,tegra30-slink";
                reg = <0x7000dc00 0x200>;
                interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                reset-names = "spi";
                dmas = <&apbdma 27>, <&apbdma 27>;
                dma-names = "rx", "tx";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sbc5_dvfs_opp_table>;
                status = "disabled";
        };
 
        spi@7000de00 {
-               compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
+               compatible = "nvidia,tegra30-slink";
                reg = <0x7000de00 0x200>;
                interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                reset-names = "spi";
                dmas = <&apbdma 28>, <&apbdma 28>;
                dma-names = "rx", "tx";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sbc6_dvfs_opp_table>;
                status = "disabled";
        };
 
                clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>;
                clock-names = "pclk", "clk32k_in";
                #clock-cells = <1>;
+
+               pd_core: core-domain {
+                       #power-domain-cells = <0>;
+                       operating-points-v2 = <&core_opp_table>;
+               };
+
+               powergates {
+                       pd_3d0: td {
+                               clocks = <&tegra_car TEGRA30_CLK_GR3D>;
+                               resets = <&mc TEGRA30_MC_RESET_3D>,
+                                        <&tegra_car TEGRA30_CLK_GR3D>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       pd_3d1: td2 {
+                               clocks = <&tegra_car TEGRA30_CLK_GR3D2>;
+                               resets = <&mc TEGRA30_MC_RESET_3D2>,
+                                        <&tegra_car TEGRA30_CLK_GR3D2>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       pd_venc: venc {
+                               clocks = <&tegra_car TEGRA30_CLK_ISP>,
+                                        <&tegra_car TEGRA30_CLK_VI>,
+                                        <&tegra_car TEGRA30_CLK_CSI>;
+                               resets = <&mc TEGRA30_MC_RESET_ISP>,
+                                        <&mc TEGRA30_MC_RESET_VI>,
+                                        <&tegra_car TEGRA30_CLK_ISP>,
+                                        <&tegra_car 20 /* VI */>,
+                                        <&tegra_car TEGRA30_CLK_CSI>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       pd_vde: vdec {
+                               clocks = <&tegra_car TEGRA30_CLK_VDE>;
+                               resets = <&mc TEGRA30_MC_RESET_VDE>,
+                                        <&tegra_car TEGRA30_CLK_VDE>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       pd_mpe: mpe {
+                               clocks = <&tegra_car TEGRA30_CLK_MPE>;
+                               resets = <&mc TEGRA30_MC_RESET_MPE>,
+                                        <&tegra_car TEGRA30_CLK_MPE>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+
+                       pd_heg: heg {
+                               clocks = <&tegra_car TEGRA30_CLK_GR2D>,
+                                        <&tegra_car TEGRA30_CLK_EPP>,
+                                        <&tegra_car TEGRA30_CLK_HOST1X>;
+                               resets = <&mc TEGRA30_MC_RESET_2D>,
+                                        <&mc TEGRA30_MC_RESET_EPP>,
+                                        <&mc TEGRA30_MC_RESET_HC>,
+                                        <&tegra_car TEGRA30_CLK_GR2D>,
+                                        <&tegra_car TEGRA30_CLK_EPP>,
+                                        <&tegra_car TEGRA30_CLK_HOST1X>;
+                               power-domains = <&pd_core>;
+                               #power-domain-cells = <0>;
+                       };
+               };
        };
 
        mc: memory-controller@7000f000 {
                reg = <0x7000f400 0x400>;
                interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&tegra_car TEGRA30_CLK_EMC>;
+               power-domains = <&pd_core>;
 
                nvidia,memory-controller = <&mc>;
                operating-points-v2 = <&emc_icc_dvfs_opp_table>;
                clock-names = "fuse";
                resets = <&tegra_car 39>;
                reset-names = "fuse";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&fuse_burn_dvfs_opp_table>;
        };
 
        tsensor: tsensor@70014000 {
                clock-names = "sdhci";
                resets = <&tegra_car 14>;
                reset-names = "sdhci";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sdmmc1_dvfs_opp_table>;
                status = "disabled";
        };
 
                clock-names = "sdhci";
                resets = <&tegra_car 69>;
                reset-names = "sdhci";
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&sdmmc3_dvfs_opp_table>;
                status = "disabled";
        };
 
                reset-names = "usb";
                nvidia,needs-double-reset;
                nvidia,phy = <&phy1>;
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&usbd_dvfs_opp_table>;
                status = "disabled";
        };
 
                resets = <&tegra_car 58>;
                reset-names = "usb";
                nvidia,phy = <&phy2>;
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&usb2_dvfs_opp_table>;
                status = "disabled";
        };
 
                resets = <&tegra_car 59>;
                reset-names = "usb";
                nvidia,phy = <&phy3>;
+               power-domains = <&pd_core>;
+               operating-points-v2 = <&usb3_dvfs_opp_table>;
                status = "disabled";
        };
 
index 043ddd7..1f9686c 100644 (file)
                                                reg = <5>;
                                                label = "dsa";
                                                link = <&switch2port9>;
-                                               phy-mode = "rgmii-txid";
+                                               phy-mode = "1000base-x";
 
                                                fixed-link {
                                                        speed = <1000>;
                                                reg = <0>;
                                                label = "lan6";
                                                phy-handle = <&switch2phy0>;
+                                               phy-mode = "sgmii";
                                        };
 
                                        port@1 {
                                                reg = <1>;
                                                label = "lan7";
                                                phy-handle = <&switch2phy1>;
+                                               phy-mode = "sgmii";
                                        };
 
                                        port@2 {
                                        switch2port9: port@9 {
                                                reg = <9>;
                                                label = "dsa";
-                                               phy-mode = "rgmii-txid";
+                                               phy-mode = "1000base-x";
                                                link = <&switch1port5
                                                        &switch0port5>;
 
index a96d9d2..8fa5c06 100644 (file)
@@ -37,3 +37,4 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64-model-b.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb
index 34e67f5..63571df 100644 (file)
@@ -15,6 +15,7 @@
 / {
        model = "Pinebook";
        compatible = "pine64,pinebook", "allwinner,sun50i-a64";
+       chassis-type = "laptop";
 
        aliases {
                serial0 = &uart0;
index 5b44a97..8784711 100644 (file)
@@ -12,6 +12,8 @@
 #include <dt-bindings/pwm/pwm.h>
 
 / {
+       chassis-type = "handset";
+
        aliases {
                ethernet0 = &rtl8723cs;
                serial0 = &uart0;
index adb0b28..0a5607f 100644 (file)
@@ -16,6 +16,7 @@
 / {
        model = "PineTab, Development Sample";
        compatible = "pine64,pinetab", "allwinner,sun50i-a64";
+       chassis-type = "tablet";
 
        aliases {
                serial0 = &uart0;
index aef571a..aff0660 100644 (file)
@@ -14,6 +14,7 @@
 / {
        model = "Olimex A64 Teres-I";
        compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64";
+       chassis-type = "laptop";
 
        aliases {
                serial0 = &uart0;
index 5ba3790..de77c87 100644 (file)
 
                mbus: dram-controller@1c62000 {
                        compatible = "allwinner,sun50i-a64-mbus";
-                       reg = <0x01c62000 0x1000>;
-                       clocks = <&ccu 112>;
+                       reg = <0x01c62000 0x1000>,
+                             <0x01c63000 0x1000>;
+                       reg-names = "mbus", "dram";
+                       clocks = <&ccu CLK_MBUS>,
+                                <&ccu CLK_DRAM>,
+                                <&ccu CLK_BUS_DRAM>;
+                       clock-names = "mbus", "dram", "bus";
+                       interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        dma-ranges = <0x00000000 0x40000000 0xc0000000>;
                        reg-io-width = <1>;
                        interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
-                                <&ccu CLK_HDMI>;
-                       clock-names = "iahb", "isfr", "tmds";
+                                <&ccu CLK_HDMI>, <&rtc 0>;
+                       clock-names = "iahb", "isfr", "tmds", "cec";
                        resets = <&ccu RST_BUS_HDMI1>;
                        reset-names = "ctrl";
                        phys = <&hdmi_phy>;
index 9988e87..a56fae7 100644 (file)
        compatible = "allwinner,sun50i-h5-de2-clk";
 };
 
+&mbus {
+       compatible = "allwinner,sun50i-h5-mbus";
+};
+
 &mmc0 {
        compatible = "allwinner,sun50i-h5-mmc",
                     "allwinner,sun50i-a64-mmc";
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-mini.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-mini.dts
new file mode 100644 (file)
index 0000000..08d8416
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+// Copyright (c) 2021 Jernej Skrabec <jernej.skrabec@gmail.com>
+
+/dts-v1/;
+
+#include "sun50i-h6-tanix.dtsi"
+
+/ {
+       model = "Tanix TX6 mini";
+       compatible = "oranth,tanix-tx6-mini", "allwinner,sun50i-h6";
+};
+
+&r_ir {
+       linux,rc-map-name = "rc-tanix-tx3mini";
+};
index 8f2a80f..9a38ff9 100644 (file)
 
 /dts-v1/;
 
-#include "sun50i-h6.dtsi"
-#include "sun50i-h6-cpu-opp.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
+#include "sun50i-h6-tanix.dtsi"
 
 / {
        model = "Tanix TX6";
        compatible = "oranth,tanix-tx6", "allwinner,sun50i-h6";
-
-       aliases {
-               serial0 = &uart0;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       connector {
-               compatible = "hdmi-connector";
-               ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
-               type = "a";
-
-               port {
-                       hdmi_con_in: endpoint {
-                               remote-endpoint = <&hdmi_out_con>;
-                       };
-               };
-       };
-
-       reg_vcc1v8: regulator-vcc1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc1v8";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       reg_vcc3v3: regulator-vcc3v3 {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc3v3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       reg_vdd_cpu_gpu: regulator-vdd-cpu-gpu {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd-cpu-gpu";
-               regulator-min-microvolt = <1135000>;
-               regulator-max-microvolt = <1135000>;
-       };
-};
-
-&cpu0 {
-       cpu-supply = <&reg_vdd_cpu_gpu>;
-};
-
-&de {
-       status = "okay";
-};
-
-&dwc3 {
-       status = "okay";
-};
-
-&ehci0 {
-       status = "okay";
-};
-
-&ehci3 {
-       status = "okay";
-};
-
-&gpu {
-       mali-supply = <&reg_vdd_cpu_gpu>;
-       status = "okay";
-};
-
-&hdmi {
-       status = "okay";
-};
-
-&hdmi_out {
-       hdmi_out_con: endpoint {
-               remote-endpoint = <&hdmi_con_in>;
-       };
-};
-
-&mmc0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc0_pins>;
-       vmmc-supply = <&reg_vcc3v3>;
-       cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
-       bus-width = <4>;
-       status = "okay";
-};
-
-&mmc2 {
-       vmmc-supply = <&reg_vcc3v3>;
-       vqmmc-supply = <&reg_vcc1v8>;
-       bus-width = <8>;
-       non-removable;
-       cap-mmc-hw-reset;
-       mmc-hs200-1_8v;
-       status = "okay";
-};
-
-&ohci0 {
-       status = "okay";
-};
-
-&ohci3 {
-       status = "okay";
-};
-
-&pio {
-       vcc-pc-supply = <&reg_vcc1v8>;
-       vcc-pd-supply = <&reg_vcc3v3>;
-       vcc-pg-supply = <&reg_vcc1v8>;
 };
 
 &r_ir {
        linux,rc-map-name = "rc-tanix-tx5max";
-       status = "okay";
 };
 
-&uart0 {
+&uart1 {
        pinctrl-names = "default";
-       pinctrl-0 = <&uart0_ph_pins>;
+       pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
+       uart-has-rtscts;
        status = "okay";
-};
 
-&usb2otg {
-       dr_mode = "host";
-       status = "okay";
-};
-
-&usb2phy {
-       status = "okay";
-};
-
-&usb3phy {
-       status = "okay";
+       bluetooth {
+               compatible = "realtek,rtl8822cs-bt";
+               device-wake-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */
+               host-wake-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */
+               enable-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */
+       };
 };
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi
new file mode 100644 (file)
index 0000000..edb71e4
--- /dev/null
@@ -0,0 +1,189 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+// Copyright (c) 2019 Jernej Skrabec <jernej.skrabec@siol.net>
+
+/dts-v1/;
+
+#include "sun50i-h6.dtsi"
+#include "sun50i-h6-cpu-opp.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       connector {
+               compatible = "hdmi-connector";
+               ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       /* used for FD650 LED display driver */
+       i2c {
+               compatible = "i2c-gpio";
+               sda-gpios = <&pio 7 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PH6 */
+               scl-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PH5 */
+               i2c-gpio,delay-us = <5>;
+       };
+
+       reg_vcc1v8: regulator-vcc1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       reg_vcc3v3: regulator-vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_vdd_cpu_gpu: regulator-vdd-cpu-gpu {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd-cpu-gpu";
+               regulator-min-microvolt = <1135000>;
+               regulator-max-microvolt = <1135000>;
+       };
+
+       sound-spdif {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "sun50i-h6-spdif";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&spdif>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&spdif_out>;
+               };
+       };
+
+       spdif_out: spdif-out {
+               #sound-dai-cells = <0>;
+               compatible = "linux,spdif-dit";
+       };
+
+       wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rtc 1>;
+               clock-names = "ext_clock";
+               reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&reg_vdd_cpu_gpu>;
+};
+
+&de {
+       status = "okay";
+};
+
+&dwc3 {
+       status = "okay";
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ehci3 {
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&reg_vdd_cpu_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       status = "okay";
+};
+
+&hdmi_out {
+       hdmi_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       vmmc-supply = <&reg_vcc3v3>;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&mmc1 {
+       vmmc-supply = <&reg_vcc3v3>;
+       vqmmc-supply = <&reg_vcc1v8>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+};
+
+&mmc2 {
+       vmmc-supply = <&reg_vcc3v3>;
+       vqmmc-supply = <&reg_vcc1v8>;
+       bus-width = <8>;
+       non-removable;
+       cap-mmc-hw-reset;
+       mmc-hs200-1_8v;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&ohci3 {
+       status = "okay";
+};
+
+&pio {
+       vcc-pc-supply = <&reg_vcc1v8>;
+       vcc-pd-supply = <&reg_vcc3v3>;
+       vcc-pg-supply = <&reg_vcc1v8>;
+};
+
+&r_ir {
+       status = "okay";
+};
+
+&spdif {
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_ph_pins>;
+       status = "okay";
+};
+
+&usb2otg {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usb2phy {
+       status = "okay";
+};
+
+&usb3phy {
+       status = "okay";
+};
index 46ed529..fbe94ab 100644 (file)
                        };
                };
 
+               video-codec-g2@1c00000 {
+                       compatible = "allwinner,sun50i-h6-vpu-g2";
+                       reg = <0x01c00000 0x1000>;
+                       interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
+                       clock-names = "bus", "mod";
+                       resets = <&ccu RST_BUS_VP9>;
+               };
+
                video-codec@1c0e000 {
                        compatible = "allwinner,sun50i-h6-video-engine";
                        reg = <0x01c0e000 0x2000>;
index f9b4a39..bbc3db4 100644 (file)
                };
 
                partition@200000 {
-                       label = "env";
-                       reg = <0x200000 0x40000>;
-               };
-
-               partition@240000 {
-                       label = "dtb";
-                       reg = <0x240000 0x40000>;
-               };
-
-               partition@280000 {
-                       label = "kernel";
-                       reg = <0x280000 0x2000000>;
-               };
-
-               partition@2280000 {
-                       label = "misc";
-                       reg = <0x2280000 0x2000000>;
-               };
-
-               partition@4280000 {
-                       label = "rootfs";
-                       reg = <0x4280000 0x3bd80000>;
+                       label = "root";
+                       reg = <0x200000 0x3fe00000>;
                };
        };
 };
index 00c6f53..517519e 100644 (file)
@@ -58,7 +58,7 @@
                secure-monitor = <&sm>;
        };
 
-       gpu_opp_table: gpu-opp-table {
+       gpu_opp_table: opp-table-gpu {
                compatible = "operating-points-v2";
 
                opp-124999998 {
                        status = "disabled";
                };
 
-               thermal-zones {
-                       cpu_thermal: cpu-thermal {
-                               polling-delay = <1000>;
-                               polling-delay-passive = <100>;
-                               thermal-sensors = <&cpu_temp>;
-
-                               trips {
-                                       cpu_passive: cpu-passive {
-                                               temperature = <85000>; /* millicelsius */
-                                               hysteresis = <2000>; /* millicelsius */
-                                               type = "passive";
-                                       };
-
-                                       cpu_hot: cpu-hot {
-                                               temperature = <95000>; /* millicelsius */
-                                               hysteresis = <2000>; /* millicelsius */
-                                               type = "hot";
-                                       };
-
-                                       cpu_critical: cpu-critical {
-                                               temperature = <110000>; /* millicelsius */
-                                               hysteresis = <2000>; /* millicelsius */
-                                               type = "critical";
-                                       };
-                               };
-                       };
-
-                       ddr_thermal: ddr-thermal {
-                               polling-delay = <1000>;
-                               polling-delay-passive = <100>;
-                               thermal-sensors = <&ddr_temp>;
-
-                               trips {
-                                       ddr_passive: ddr-passive {
-                                               temperature = <85000>; /* millicelsius */
-                                               hysteresis = <2000>; /* millicelsius */
-                                               type = "passive";
-                                       };
-
-                                       ddr_critical: ddr-critical {
-                                               temperature = <110000>; /* millicelsius */
-                                               hysteresis = <2000>; /* millicelsius */
-                                               type = "critical";
-                                       };
-                               };
-
-                               cooling-maps {
-                                       map {
-                                               trip = <&ddr_passive>;
-                                               cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-                                       };
-                               };
-                       };
-               };
-
                ethmac: ethernet@ff3f0000 {
                        compatible = "amlogic,meson-g12a-dwmac",
                                     "snps,dwmac-3.70a",
                };
        };
 
+       thermal-zones {
+               cpu_thermal: cpu-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <100>;
+                       thermal-sensors = <&cpu_temp>;
+
+                       trips {
+                               cpu_passive: cpu-passive {
+                                       temperature = <85000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+
+                               cpu_hot: cpu-hot {
+                                       temperature = <95000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "hot";
+                               };
+
+                               cpu_critical: cpu-critical {
+                                       temperature = <110000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               ddr_thermal: ddr-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <100>;
+                       thermal-sensors = <&ddr_temp>;
+
+                       trips {
+                               ddr_passive: ddr-passive {
+                                       temperature = <85000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+
+                               ddr_critical: ddr-critical {
+                                       temperature = <110000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map {
+                                       trip = <&ddr_passive>;
+                                       cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13
index e8a00a2..3e968b2 100644 (file)
        pinctrl-0 = <&nor_pins>;
        pinctrl-names = "default";
 
-       mx25u64: spi-flash@0 {
+       mx25u64: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "mxicy,mx25u6435f", "jedec,spi-nor";
index a350fee..94dafb9 100644 (file)
@@ -6,6 +6,8 @@
  */
 
 #include "meson-gxbb.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 
 / {
        aliases {
        leds {
                compatible = "gpio-leds";
 
-               led-system {
-                       label = "wetek-play:system-status";
+               led-power {
+                       /* red in suspend or power-off */
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_POWER;
                        gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                        panic-indicator;
@@ -64,6 +68,7 @@
                regulator-name = "VDDIO_AO18";
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
+               regulator-always-on;
        };
 
        vcc_3v3: regulator-vcc_3v3 {
        status = "okay";
        pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
        pinctrl-names = "default";
+       hdmi-supply = <&vddio_ao18>;
 };
 
 &hdmi_tx_tmds_port {
index eb7f5a3..ff906be 100644 (file)
@@ -8,6 +8,7 @@
 /dts-v1/;
 
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/sound/meson-aiu.h>
 
 #include "meson-gxl-s805x.dtsi"
 
                ethernet0 = &ethmac;
        };
 
+       au2: analog-amplifier {
+               compatible = "simple-audio-amplifier";
+               sound-name-prefix = "AU2";
+               VCC-supply = <&vcc_5v>;
+               enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
                regulator-max-microvolt = <3300000>;
        };
 
+       vcc_5v: regulator-vcc-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+
        emmc_pwrseq: emmc-pwrseq {
                compatible = "mmc-pwrseq-emmc";
                reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
                clocks = <&wifi32k>;
                clock-names = "ext_clock";
        };
+
+       sound {
+               compatible = "amlogic,gx-sound-card";
+               model = "GXL-P241";
+               audio-aux-devs = <&au2>;
+               audio-widgets = "Line", "Lineout";
+               audio-routing = "AU2 INL", "ACODEC LOLN",
+                               "AU2 INR", "ACODEC LORN",
+                               "Lineout", "AU2 OUTL",
+                               "Lineout", "AU2 OUTR";
+               assigned-clocks = <&clkc CLKID_MPLL0>,
+                                 <&clkc CLKID_MPLL1>,
+                                 <&clkc CLKID_MPLL2>;
+               assigned-clock-parents = <0>, <0>, <0>;
+               assigned-clock-rates = <294912000>,
+                                      <270950400>,
+                                      <393216000>;
+               status = "okay";
+
+               dai-link-0 {
+                       sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
+               };
+
+               dai-link-1 {
+                       sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
+                       dai-format = "i2s";
+                       mclk-fs = <256>;
+
+                       codec-0 {
+                               sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
+                       };
+
+                       codec-1 {
+                               sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
+                       };
+               };
+
+               dai-link-2 {
+                       sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
+
+                       codec-0 {
+                               sound-dai = <&hdmi_tx>;
+                       };
+               };
+
+               dai-link-3 {
+                       sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
+
+                       codec-0 {
+                               sound-dai = <&acodec>;
+                       };
+               };
+       };
+};
+
+&acodec {
+       AVDD-supply = <&vddio_ao18>;
+       status = "okay";
+};
+
+&aiu {
+       status = "okay";
 };
 
 &cec_AO {
        status = "okay";
        pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
        pinctrl-names = "default";
+       hdmi-supply = <&vcc_5v>;
 };
 
 &hdmi_tx_tmds_port {
        status = "okay";
        dr_mode = "host";
 };
+
+&usb2_phy0 {
+       phy-supply = <&vcc_5v>;
+};
index 5779e70..0bd1e98 100644 (file)
        status = "okay";
 };
 
+&cec_AO {
+       pinctrl-0 = <&cec_ao_a_h_pins>;
+       pinctrl-names = "default";
+       status = "disabled";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
+&cecb_AO {
+       pinctrl-0 = <&cec_ao_b_h_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 &clkc_audio {
        status = "okay";
 };
index cbbd701..c0510c2 100644 (file)
@@ -1,2 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_APPLE) += t8103-j274.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8103-j293.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8103-j313.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8103-j456.dtb
+dtb-$(CONFIG_ARCH_APPLE) += t8103-j457.dtb
index 02c3630..2cd429e 100644 (file)
 /dts-v1/;
 
 #include "t8103.dtsi"
+#include "t8103-jxxx.dtsi"
 
 / {
        compatible = "apple,j274", "apple,t8103", "apple,arm-platform";
        model = "Apple Mac mini (M1, 2020)";
 
        aliases {
-               serial0 = &serial0;
                ethernet0 = &ethernet0;
        };
-
-       chosen {
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               stdout-path = "serial0";
-
-               framebuffer0: framebuffer@0 {
-                       compatible = "apple,simple-framebuffer", "simple-framebuffer";
-                       reg = <0 0 0 0>; /* To be filled by loader */
-                       /* Format properties will be added by loader */
-                       status = "disabled";
-               };
-       };
-
-       memory@800000000 {
-               device_type = "memory";
-               reg = <0x8 0 0x2 0>; /* To be filled by loader */
-       };
-};
-
-&serial0 {
-       status = "okay";
 };
 
 /*
@@ -50,9 +26,6 @@
  * on-board devices and properties that are populated by the bootloader
  * (such as MAC addresses).
  */
-&port00 {
-       bus-range = <1 1>;
-};
 
 &port01 {
        bus-range = <2 2>;
@@ -66,3 +39,7 @@
                local-mac-address = [00 10 18 00 00 00];
        };
 };
+
+&i2c2 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/apple/t8103-j293.dts b/arch/arm64/boot/dts/apple/t8103-j293.dts
new file mode 100644 (file)
index 0000000..49cdf4b
--- /dev/null
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple MacBook Pro (13-inch, M1, 2020)
+ *
+ * target-type: J293
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t8103.dtsi"
+#include "t8103-jxxx.dtsi"
+
+/ {
+       compatible = "apple,j293", "apple,t8103", "apple,arm-platform";
+       model = "Apple MacBook Pro (13-inch, M1, 2020)";
+};
+
+/*
+ * Remove unused PCIe ports and disable the associated DARTs.
+ */
+
+&pcie0_dart_1 {
+       status = "disabled";
+};
+
+&pcie0_dart_2 {
+       status = "disabled";
+};
+
+/delete-node/ &port01;
+/delete-node/ &port02;
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/apple/t8103-j313.dts b/arch/arm64/boot/dts/apple/t8103-j313.dts
new file mode 100644 (file)
index 0000000..b0ebb45
--- /dev/null
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple MacBook Air (M1, 2020)
+ *
+ * target-type: J313
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t8103.dtsi"
+#include "t8103-jxxx.dtsi"
+
+/ {
+       compatible = "apple,j313", "apple,t8103", "apple,arm-platform";
+       model = "Apple MacBook Air (M1, 2020)";
+};
+
+/*
+ * Remove unused PCIe ports and disable the associated DARTs.
+ */
+
+&pcie0_dart_1 {
+       status = "disabled";
+};
+
+&pcie0_dart_2 {
+       status = "disabled";
+};
+
+/delete-node/ &port01;
+/delete-node/ &port02;
diff --git a/arch/arm64/boot/dts/apple/t8103-j456.dts b/arch/arm64/boot/dts/apple/t8103-j456.dts
new file mode 100644 (file)
index 0000000..884fddf
--- /dev/null
@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple iMac (24-inch, 4x USB-C, M1, 2020)
+ *
+ * target-type: J456
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t8103.dtsi"
+#include "t8103-jxxx.dtsi"
+
+/ {
+       compatible = "apple,j456", "apple,t8103", "apple,arm-platform";
+       model = "Apple iMac (24-inch, 4x USB-C, M1, 2020)";
+
+       aliases {
+               ethernet0 = &ethernet0;
+       };
+};
+
+&i2c0 {
+       hpm2: usb-pd@3b {
+               compatible = "apple,cd321x";
+               reg = <0x3b>;
+               interrupt-parent = <&pinctrl_ap>;
+               interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "irq";
+       };
+
+       hpm3: usb-pd@3c {
+               compatible = "apple,cd321x";
+               reg = <0x3c>;
+               interrupt-parent = <&pinctrl_ap>;
+               interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "irq";
+       };
+};
+
+/*
+ * Force the bus number assignments so that we can declare some of the
+ * on-board devices and properties that are populated by the bootloader
+ * (such as MAC addresses).
+ */
+
+&port01 {
+       bus-range = <2 2>;
+};
+
+&port02 {
+       bus-range = <3 3>;
+       ethernet0: ethernet@0,0 {
+               reg = <0x30000 0x0 0x0 0x0 0x0>;
+               /* To be filled by the loader */
+               local-mac-address = [00 10 18 00 00 00];
+       };
+};
diff --git a/arch/arm64/boot/dts/apple/t8103-j457.dts b/arch/arm64/boot/dts/apple/t8103-j457.dts
new file mode 100644 (file)
index 0000000..d7c6229
--- /dev/null
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple iMac (24-inch, 2x USB-C, M1, 2020)
+ *
+ * target-type: J457
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/dts-v1/;
+
+#include "t8103.dtsi"
+#include "t8103-jxxx.dtsi"
+
+/ {
+       compatible = "apple,j457", "apple,t8103", "apple,arm-platform";
+       model = "Apple iMac (24-inch, 2x USB-C, M1, 2020)";
+
+       aliases {
+               ethernet0 = &ethernet0;
+       };
+};
+
+/*
+ * Force the bus number assignments so that we can declare some of the
+ * on-board devices and properties that are populated by the bootloader
+ * (such as MAC addresses).
+ */
+
+&port02 {
+       bus-range = <3 3>;
+       ethernet0: ethernet@0,0 {
+               reg = <0x30000 0x0 0x0 0x0 0x0>;
+               /* To be filled by the loader */
+               local-mac-address = [00 10 18 00 00 00];
+       };
+};
+
+/*
+ * Remove unused PCIe port and disable the associated DART.
+ */
+
+&pcie0_dart_1 {
+       status = "disabled";
+};
+
+/delete-node/ &port01;
diff --git a/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi b/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi
new file mode 100644 (file)
index 0000000..fe2ae40
--- /dev/null
@@ -0,0 +1,78 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Apple M1 Mac mini, MacBook Air/Pro, iMac 24" (M1, 2020/2021)
+ *
+ * This file contains parts common to all Apple M1 devices using the t8103.
+ *
+ * target-type: J274, J293, J313, J456, J457
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+/ {
+       aliases {
+               serial0 = &serial0;
+               serial2 = &serial2;
+               wifi0 = &wifi0;
+       };
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               stdout-path = "serial0";
+
+               framebuffer0: framebuffer@0 {
+                       compatible = "apple,simple-framebuffer", "simple-framebuffer";
+                       reg = <0 0 0 0>; /* To be filled by loader */
+                       /* Format properties will be added by loader */
+                       status = "disabled";
+               };
+       };
+
+       memory@800000000 {
+               device_type = "memory";
+               reg = <0x8 0 0x2 0>; /* To be filled by loader */
+       };
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&serial2 {
+       status = "okay";
+};
+
+&i2c0 {
+       hpm0: usb-pd@38 {
+               compatible = "apple,cd321x";
+               reg = <0x38>;
+               interrupt-parent = <&pinctrl_ap>;
+               interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "irq";
+       };
+
+       hpm1: usb-pd@3f {
+               compatible = "apple,cd321x";
+               reg = <0x3f>;
+               interrupt-parent = <&pinctrl_ap>;
+               interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "irq";
+       };
+};
+
+/*
+ * Force the bus number assignments so that we can declare some of the
+ * on-board devices and properties that are populated by the bootloader
+ * (such as MAC addresses).
+ */
+&port00 {
+       bus-range = <1 1>;
+       wifi0: network@0,0 {
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+               /* To be filled by the loader */
+               local-mac-address = [00 00 00 00 00 00];
+       };
+};
diff --git a/arch/arm64/boot/dts/apple/t8103-pmgr.dtsi b/arch/arm64/boot/dts/apple/t8103-pmgr.dtsi
new file mode 100644 (file)
index 0000000..fc51bc8
--- /dev/null
@@ -0,0 +1,1138 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * PMGR Power domains for the Apple T8103 "M1" SoC
+ *
+ * Copyright The Asahi Linux Contributors
+ */
+
+
+&pmgr {
+       ps_sbr: power-controller@100 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x100 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "sbr";
+               apple,always-on; /* Core device */
+       };
+
+       ps_aic: power-controller@108 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x108 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "aic";
+               apple,always-on; /* Core device */
+       };
+
+       ps_dwi: power-controller@110 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x110 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dwi";
+               apple,always-on; /* Core device */
+       };
+
+       ps_soc_spmi0: power-controller@118 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x118 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "soc_spmi0";
+       };
+
+       ps_soc_spmi1: power-controller@120 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x120 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "soc_spmi1";
+       };
+
+       ps_soc_spmi2: power-controller@128 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x128 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "soc_spmi2";
+       };
+
+       ps_gpio: power-controller@130 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x130 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "gpio";
+       };
+
+       ps_pms_busif: power-controller@138 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x138 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pms_busif";
+               apple,always-on; /* Core device */
+       };
+
+       ps_pms: power-controller@140 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x140 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pms";
+               apple,always-on; /* Core device */
+       };
+
+       ps_pms_fpwm0: power-controller@148 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x148 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pms_fpwm0";
+               power-domains = <&ps_pms>;
+       };
+
+       ps_pms_fpwm1: power-controller@150 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x150 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pms_fpwm1";
+               power-domains = <&ps_pms>;
+       };
+
+       ps_pms_fpwm2: power-controller@158 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x158 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pms_fpwm2";
+               power-domains = <&ps_pms>;
+       };
+
+       ps_pms_fpwm3: power-controller@160 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x160 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pms_fpwm3";
+               power-domains = <&ps_pms>;
+       };
+
+       ps_pms_fpwm4: power-controller@168 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x168 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pms_fpwm4";
+               power-domains = <&ps_pms>;
+       };
+
+       ps_soc_dpe: power-controller@170 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x170 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "soc_dpe";
+               apple,always-on; /* Core device */
+       };
+
+       ps_pmgr_soc_ocla: power-controller@178 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x178 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pmgr_soc_ocla";
+       };
+
+       ps_ispsens0: power-controller@180 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x180 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "ispsens0";
+       };
+
+       ps_ispsens1: power-controller@188 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x188 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "ispsens1";
+       };
+
+       ps_ispsens2: power-controller@190 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x190 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "ispsens2";
+       };
+
+       ps_ispsens3: power-controller@198 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x198 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "ispsens3";
+       };
+
+       ps_pcie_ref: power-controller@1a0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1a0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pcie_ref";
+       };
+
+       ps_aft0: power-controller@1a8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1a8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "aft0";
+       };
+
+       ps_devc0_ivdmc: power-controller@1b0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1b0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "devc0_ivdmc";
+       };
+
+       ps_imx: power-controller@1b8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1b8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "imx";
+               apple,always-on; /* Apple fabric, critical block */
+       };
+
+       ps_sio_busif: power-controller@1c0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1c0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "sio_busif";
+       };
+
+       ps_sio: power-controller@1c8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1c8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "sio";
+               power-domains = <&ps_sio_busif>;
+       };
+
+       ps_sio_cpu: power-controller@1d0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1d0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "sio_cpu";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_fpwm0: power-controller@1d8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1d8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "fpwm0";
+       };
+
+       ps_fpwm1: power-controller@1e0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1e0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "fpwm1";
+       };
+
+       ps_fpwm2: power-controller@1e8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1e8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "fpwm2";
+       };
+
+       ps_i2c0: power-controller@1f0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1f0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "i2c0";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_i2c1: power-controller@1f8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x1f8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "i2c1";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_i2c2: power-controller@200 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x200 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "i2c2";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_i2c3: power-controller@208 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x208 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "i2c3";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_i2c4: power-controller@210 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x210 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "i2c4";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_spi_p: power-controller@218 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x218 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "spi_p";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_uart_p: power-controller@220 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x220 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart_p";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_audio_p: power-controller@228 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x228 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "audio_p";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_sio_adma: power-controller@230 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x230 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "sio_adma";
+               power-domains = <&ps_sio>, <&ps_pms>;
+       };
+
+       ps_aes: power-controller@238 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x238 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "aes";
+               power-domains = <&ps_sio>;
+       };
+
+       ps_spi0: power-controller@240 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x240 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "spi0";
+               power-domains = <&ps_sio>, <&ps_spi_p>;
+       };
+
+       ps_spi1: power-controller@248 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x248 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "spi1";
+               power-domains = <&ps_sio>, <&ps_spi_p>;
+       };
+
+       ps_spi2: power-controller@250 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x250 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "spi2";
+               power-domains = <&ps_sio>, <&ps_spi_p>;
+       };
+
+       ps_spi3: power-controller@258 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x258 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "spi3";
+               power-domains = <&ps_sio>, <&ps_spi_p>;
+       };
+
+       ps_uart_n: power-controller@268 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x268 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart_n";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_uart0: power-controller@270 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x270 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart0";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_uart1: power-controller@278 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x278 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart1";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_uart2: power-controller@280 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x280 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart2";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_uart3: power-controller@288 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x288 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart3";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_uart4: power-controller@290 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x290 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart4";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_uart5: power-controller@298 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x298 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart5";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_uart6: power-controller@2a0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2a0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart6";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_uart7: power-controller@2a8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2a8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart7";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_uart8: power-controller@2b0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2b0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "uart8";
+               power-domains = <&ps_uart_p>;
+       };
+
+       ps_mca0: power-controller@2b8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2b8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "mca0";
+               power-domains = <&ps_audio_p>, <&ps_sio_adma>;
+       };
+
+       ps_mca1: power-controller@2c0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2c0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "mca1";
+               power-domains = <&ps_audio_p>, <&ps_sio_adma>;
+       };
+
+       ps_mca2: power-controller@2c8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2c8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "mca2";
+               power-domains = <&ps_audio_p>, <&ps_sio_adma>;
+       };
+
+       ps_mca3: power-controller@2d0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2d0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "mca3";
+               power-domains = <&ps_audio_p>, <&ps_sio_adma>;
+       };
+
+       ps_mca4: power-controller@2d8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2d8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "mca4";
+               power-domains = <&ps_audio_p>, <&ps_sio_adma>;
+       };
+
+       ps_mca5: power-controller@2e0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2e0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "mca5";
+               power-domains = <&ps_audio_p>, <&ps_sio_adma>;
+       };
+
+       ps_dpa0: power-controller@2e8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2e8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dpa0";
+               power-domains = <&ps_audio_p>;
+       };
+
+       ps_dpa1: power-controller@2f0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2f0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dpa1";
+               power-domains = <&ps_audio_p>;
+       };
+
+       ps_mcc: power-controller@2f8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x2f8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "mcc";
+               apple,always-on; /* Memory controller */
+       };
+
+       ps_spi4: power-controller@260 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x260 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "spi4";
+               power-domains = <&ps_sio>, <&ps_spi_p>;
+       };
+
+       ps_dcs0: power-controller@300 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x300 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dcs0";
+               apple,always-on; /* LPDDR4 interface */
+       };
+
+       ps_dcs1: power-controller@310 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x310 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dcs1";
+               apple,always-on; /* LPDDR4 interface */
+       };
+
+       ps_dcs2: power-controller@308 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x308 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dcs2";
+               apple,always-on; /* LPDDR4 interface */
+       };
+
+       ps_dcs3: power-controller@318 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x318 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dcs3";
+               apple,always-on; /* LPDDR4 interface */
+       };
+
+       ps_smx: power-controller@340 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x340 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "smx";
+               apple,always-on; /* Apple fabric, critical block */
+       };
+
+       ps_apcie: power-controller@348 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x348 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "apcie";
+               power-domains = <&ps_imx>, <&ps_pcie_ref>;
+       };
+
+       ps_rmx: power-controller@350 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x350 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "rmx";
+               /* Apple Fabric, display/image stuff: this can power down */
+       };
+
+       ps_mmx: power-controller@358 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x358 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "mmx";
+               /* Apple Fabric, media stuff: this can power down */
+       };
+
+       ps_disp0_fe: power-controller@360 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x360 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "disp0_fe";
+               power-domains = <&ps_rmx>;
+               apple,always-on; /* TODO: figure out if we can enable PM here */
+       };
+
+       ps_dispext_fe: power-controller@368 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x368 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dispext_fe";
+               power-domains = <&ps_rmx>;
+       };
+
+       ps_dispext_cpu0: power-controller@378 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x378 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dispext_cpu0";
+               power-domains = <&ps_dispext_fe>;
+               apple,min-state = <4>;
+       };
+
+       ps_jpg: power-controller@3c0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3c0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "jpg";
+               power-domains = <&ps_mmx>;
+       };
+
+       ps_msr: power-controller@3c8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3c8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "msr";
+               power-domains = <&ps_mmx>;
+       };
+
+       ps_msr_ase_core: power-controller@3d0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3d0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "msr_ase_core";
+       };
+
+       ps_pmp: power-controller@3d8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3d8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pmp";
+       };
+
+       ps_pms_sram: power-controller@3e0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3e0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "pms_sram";
+       };
+
+       ps_apcie_gp: power-controller@3e8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3e8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "apcie_gp";
+               power-domains = <&ps_apcie>;
+       };
+
+       ps_ans2: power-controller@3f0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3f0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "ans2";
+               /*
+                * The ADT makes ps_apcie_st depend on ps_ans2 instead, but this
+                * doesn't make much sense since ANS2 uses APCIE_ST.
+                */
+               power-domains = <&ps_apcie_st>;
+       };
+
+       ps_gfx: power-controller@3f8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3f8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "gfx";
+       };
+
+       ps_dcs4: power-controller@320 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x320 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dcs4";
+               apple,always-on; /* LPDDR4 interface */
+       };
+
+       ps_dcs5: power-controller@330 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x330 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dcs5";
+               apple,always-on; /* LPDDR4 interface */
+       };
+
+       ps_dcs6: power-controller@328 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x328 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dcs6";
+               apple,always-on; /* LPDDR4 interface */
+       };
+
+       ps_dcs7: power-controller@338 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x338 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dcs7";
+               apple,always-on; /* LPDDR4 interface */
+       };
+
+       ps_dispdfr_fe: power-controller@3a8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3a8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dispdfr_fe";
+               power-domains = <&ps_rmx>;
+       };
+
+       ps_dispdfr_be: power-controller@3b0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3b0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "dispdfr_be";
+               power-domains = <&ps_dispdfr_fe>;
+       };
+
+       ps_mipi_dsi: power-controller@3b8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x3b8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "mipi_dsi";
+               power-domains = <&ps_dispdfr_be>;
+       };
+
+       ps_isp_sys: power-controller@400 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x400 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "isp_sys";
+               power-domains = <&ps_rmx>;
+       };
+
+       ps_venc_sys: power-controller@408 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x408 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "venc_sys";
+               power-domains = <&ps_mmx>;
+       };
+
+       ps_avd_sys: power-controller@410 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x410 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "avd_sys";
+               power-domains = <&ps_mmx>;
+       };
+
+       ps_apcie_st: power-controller@418 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x418 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "apcie_st";
+               power-domains = <&ps_apcie>;
+       };
+
+       ps_ane_sys: power-controller@470 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x470 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "ane_sys";
+       };
+
+       ps_atc0_common: power-controller@420 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x420 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc0_common";
+       };
+
+       ps_atc0_pcie: power-controller@428 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x428 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc0_pcie";
+               power-domains = <&ps_atc0_common>;
+       };
+
+       ps_atc0_cio: power-controller@430 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x430 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc0_cio";
+               power-domains = <&ps_atc0_common>;
+       };
+
+       ps_atc0_cio_pcie: power-controller@438 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x438 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc0_cio_pcie";
+               power-domains = <&ps_atc0_cio>;
+       };
+
+       ps_atc0_cio_usb: power-controller@440 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x440 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc0_cio_usb";
+               power-domains = <&ps_atc0_cio>;
+       };
+
+       ps_atc1_common: power-controller@448 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x448 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc1_common";
+       };
+
+       ps_atc1_pcie: power-controller@450 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x450 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc1_pcie";
+               power-domains = <&ps_atc1_common>;
+       };
+
+       ps_atc1_cio: power-controller@458 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x458 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc1_cio";
+               power-domains = <&ps_atc1_common>;
+       };
+
+       ps_atc1_cio_pcie: power-controller@460 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x460 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc1_cio_pcie";
+               power-domains = <&ps_atc1_cio>;
+       };
+
+       ps_atc1_cio_usb: power-controller@468 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x468 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc1_cio_usb";
+               power-domains = <&ps_atc1_cio>;
+       };
+
+       ps_sep: power-controller@c00 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0xc00 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "sep";
+               apple,always-on; /* Locked on */
+       };
+
+       ps_venc_dma: power-controller@8000 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x8000 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "venc_dma";
+               power-domains = <&ps_venc_sys>;
+       };
+
+       ps_venc_pipe4: power-controller@8008 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x8008 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "venc_pipe4";
+               power-domains = <&ps_venc_dma>;
+       };
+
+       ps_venc_pipe5: power-controller@8010 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x8010 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "venc_pipe5";
+               power-domains = <&ps_venc_dma>;
+       };
+
+       ps_venc_me0: power-controller@8018 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x8018 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "venc_me0";
+               power-domains = <&ps_venc_pipe4>, <&ps_venc_pipe5>;
+       };
+
+       ps_venc_me1: power-controller@8020 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x8020 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "venc_me1";
+               power-domains = <&ps_venc_pipe4>, <&ps_venc_pipe5>;
+       };
+
+       ps_ane_sys_cpu: power-controller@c000 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0xc000 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "ane_sys_cpu";
+               power-domains = <&ps_ane_sys>;
+       };
+
+       ps_disp0_cpu0: power-controller@10018 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x10018 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "disp0_cpu0";
+               power-domains = <&ps_disp0_fe>;
+               apple,always-on; /* TODO: figure out if we can enable PM here */
+               apple,min-state = <4>;
+       };
+};
+
+&pmgr_mini {
+       ps_debug: power-controller@58 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x58 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "debug";
+               apple,always-on; /* Core AON device */
+       };
+
+       ps_nub_spmi0: power-controller@60 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x60 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "nub_spmi0";
+               apple,always-on; /* Core AON device */
+       };
+
+       ps_nub_aon: power-controller@70 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x70 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "nub_aon";
+               apple,always-on; /* Core AON device */
+       };
+
+       ps_nub_gpio: power-controller@80 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x80 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "nub_gpio";
+               apple,always-on; /* Core AON device */
+       };
+
+       ps_nub_fabric: power-controller@a8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0xa8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "nub_fabric";
+               apple,always-on; /* Core AON device */
+       };
+
+       ps_nub_sram: power-controller@b0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0xb0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "nub_sram";
+               apple,always-on; /* Core AON device */
+       };
+
+       ps_debug_usb: power-controller@b8 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0xb8 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "debug_usb";
+               apple,always-on; /* Core AON device */
+               power-domains = <&ps_debug>;
+       };
+
+       ps_debug_auth: power-controller@c0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0xc0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "debug_auth";
+               apple,always-on; /* Core AON device */
+               power-domains = <&ps_debug>;
+       };
+
+       ps_nub_spmi1: power-controller@68 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x68 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "nub_spmi1";
+               apple,always-on; /* Core AON device */
+       };
+
+       ps_msg: power-controller@78 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x78 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "msg";
+       };
+
+       ps_atc0_usb_aon: power-controller@88 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x88 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc0_usb_aon";
+       };
+
+       ps_atc1_usb_aon: power-controller@90 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x90 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc1_usb_aon";
+       };
+
+       ps_atc0_usb: power-controller@98 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0x98 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc0_usb";
+               power-domains = <&ps_atc0_usb_aon>, <&ps_atc0_common>;
+       };
+
+       ps_atc1_usb: power-controller@a0 {
+               compatible = "apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate";
+               reg = <0xa0 4>;
+               #power-domain-cells = <0>;
+               #reset-cells = <0>;
+               label = "atc1_usb";
+               power-domains = <&ps_atc1_usb_aon>, <&ps_atc1_common>;
+       };
+};
index 8b61e7f..19afbc9 100644 (file)
                             <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
        };
 
-       clk24: clock-24m {
+       clkref: clock-ref {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <24000000>;
-               clock-output-names = "clk24";
+               clock-output-names = "clkref";
        };
 
        soc {
                ranges;
                nonposted-mmio;
 
+               i2c0: i2c@235010000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x35010000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c0_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       power-domains = <&ps_i2c0>;
+               };
+
+               i2c1: i2c@235014000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x35014000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c1_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       power-domains = <&ps_i2c1>;
+               };
+
+               i2c2: i2c@235018000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x35018000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c2_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       status = "disabled"; /* not used in all devices */
+                       power-domains = <&ps_i2c2>;
+               };
+
+               i2c3: i2c@23501c000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x3501c000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c3_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       power-domains = <&ps_i2c3>;
+               };
+
+               i2c4: i2c@235020000 {
+                       compatible = "apple,t8103-i2c", "apple,i2c";
+                       reg = <0x2 0x35020000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&i2c4_pins>;
+                       pinctrl-names = "default";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+                       power-domains = <&ps_i2c4>;
+                       status = "disabled"; /* only used in J293 */
+               };
+
                serial0: serial@235200000 {
                        compatible = "apple,s5l-uart";
                        reg = <0x2 0x35200000 0x0 0x1000>;
                         * TODO: figure out the clocking properly, there may
                         * be a third selectable clock.
                         */
-                       clocks = <&clk24>, <&clk24>;
+                       clocks = <&clkref>, <&clkref>;
+                       clock-names = "uart", "clk_uart_baud0";
+                       power-domains = <&ps_uart0>;
+                       status = "disabled";
+               };
+
+               serial2: serial@235208000 {
+                       compatible = "apple,s5l-uart";
+                       reg = <0x2 0x35208000 0x0 0x1000>;
+                       reg-io-width = <4>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clkref>, <&clkref>;
                        clock-names = "uart", "clk_uart_baud0";
+                       power-domains = <&ps_uart2>;
                        status = "disabled";
                };
 
                        #interrupt-cells = <3>;
                        interrupt-controller;
                        reg = <0x2 0x3b100000 0x0 0x8000>;
+                       power-domains = <&ps_aic>;
+               };
+
+               pmgr: power-management@23b700000 {
+                       compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x2 0x3b700000 0 0x14000>;
                };
 
                pinctrl_ap: pinctrl@23c100000 {
                        compatible = "apple,t8103-pinctrl", "apple,pinctrl";
                        reg = <0x2 0x3c100000 0x0 0x100000>;
+                       power-domains = <&ps_gpio>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
                                     <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>,
                                     <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>;
 
+                       i2c0_pins: i2c0-pins {
+                               pinmux = <APPLE_PINMUX(192, 1)>,
+                                        <APPLE_PINMUX(188, 1)>;
+                       };
+
+                       i2c1_pins: i2c1-pins {
+                               pinmux = <APPLE_PINMUX(201, 1)>,
+                                        <APPLE_PINMUX(199, 1)>;
+                       };
+
+                       i2c2_pins: i2c2-pins {
+                               pinmux = <APPLE_PINMUX(163, 1)>,
+                                        <APPLE_PINMUX(162, 1)>;
+                       };
+
+                       i2c3_pins: i2c3-pins {
+                               pinmux = <APPLE_PINMUX(73, 1)>,
+                                        <APPLE_PINMUX(72, 1)>;
+                       };
+
+                       i2c4_pins: i2c4-pins {
+                               pinmux = <APPLE_PINMUX(135, 1)>,
+                                        <APPLE_PINMUX(134, 1)>;
+                       };
+
                        pcie_pins: pcie-pins {
                                pinmux = <APPLE_PINMUX(150, 1)>,
                                         <APPLE_PINMUX(151, 1)>,
                        };
                };
 
-               pinctrl_aop: pinctrl@24a820000 {
-                       compatible = "apple,t8103-pinctrl", "apple,pinctrl";
-                       reg = <0x2 0x4a820000 0x0 0x4000>;
-
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       gpio-ranges = <&pinctrl_aop 0 0 42>;
-                       apple,npins = <42>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-                       interrupt-parent = <&aic>;
-                       interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
-                                    <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
-               };
-
                pinctrl_nub: pinctrl@23d1f0000 {
                        compatible = "apple,t8103-pinctrl", "apple,pinctrl";
                        reg = <0x2 0x3d1f0000 0x0 0x4000>;
+                       power-domains = <&ps_nub_gpio>;
 
                        gpio-controller;
                        #gpio-cells = <2>;
                                     <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               pmgr_mini: power-management@23d280000 {
+                       compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x2 0x3d280000 0 0x4000>;
+               };
+
+               wdt: watchdog@23d2b0000 {
+                       compatible = "apple,t8103-wdt", "apple,wdt";
+                       reg = <0x2 0x3d2b0000 0x0 0x4000>;
+                       clocks = <&clkref>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                pinctrl_smc: pinctrl@23e820000 {
                        compatible = "apple,t8103-pinctrl", "apple,pinctrl";
                        reg = <0x2 0x3e820000 0x0 0x4000>;
                                     <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               pinctrl_aop: pinctrl@24a820000 {
+                       compatible = "apple,t8103-pinctrl", "apple,pinctrl";
+                       reg = <0x2 0x4a820000 0x0 0x4000>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl_aop 0 0 42>;
+                       apple,npins = <42>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                pcie0_dart_0: dart@681008000 {
                        compatible = "apple,t8103-dart";
                        reg = <0x6 0x81008000 0x0 0x4000>;
                        #iommu-cells = <1>;
                        interrupt-parent = <&aic>;
                        interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&ps_apcie_gp>;
                };
 
                pcie0_dart_1: dart@682008000 {
                        #iommu-cells = <1>;
                        interrupt-parent = <&aic>;
                        interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&ps_apcie_gp>;
                };
 
                pcie0_dart_2: dart@683008000 {
                        #iommu-cells = <1>;
                        interrupt-parent = <&aic>;
                        interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&ps_apcie_gp>;
                };
 
                pcie0: pcie@690000000 {
                        ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>,
                                 <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>;
 
+                       power-domains = <&ps_apcie_gp>;
                        pinctrl-0 = <&pcie_pins>;
                        pinctrl-names = "default";
 
                                device_type = "pci";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
                                reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>;
-                               max-link-speed = <2>;
 
                                #address-cells = <3>;
                                #size-cells = <2>;
                                device_type = "pci";
                                reg = <0x800 0x0 0x0 0x0 0x0>;
                                reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>;
-                               max-link-speed = <2>;
 
                                #address-cells = <3>;
                                #size-cells = <2>;
                                device_type = "pci";
                                reg = <0x1000 0x0 0x0 0x0 0x0>;
                                reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>;
-                               max-link-speed = <1>;
 
                                #address-cells = <3>;
                                #size-cells = <2>;
                };
        };
 };
+
+#include "t8103-pmgr.dtsi"
index cc75854..6e364e3 100644 (file)
@@ -2,3 +2,4 @@
 dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-netgear-r8000p.dtb
 dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-tplink-archer-c2300-v1.dtb
 dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-asus-gt-ac5300.dtb
+dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-netgear-raxe500.dtb
diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
new file mode 100644 (file)
index 0000000..3c2cf2d
--- /dev/null
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "bcm4908.dtsi"
+
+/ {
+       compatible = "netgear,raxe500", "brcm,bcm4908";
+       model = "Netgear RAXE500";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x00 0x00 0x00 0x40000000>;
+       };
+};
+
+&ehci {
+       status = "okay";
+};
+
+&ohci {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
+
+&ports {
+       port@0 {
+               label = "lan4";
+       };
+
+       port@1 {
+               label = "lan3";
+       };
+
+       port@2 {
+               label = "lan2";
+       };
+
+       port@3 {
+               label = "lan1";
+       };
+
+       port@7 {
+               reg = <7>;
+               phy-mode = "internal";
+               phy-handle = <&phy12>;
+               label = "wan";
+       };
+};
index 4422021..bfe4ed8 100644 (file)
                        status = "disabled";
                };
 
-               hsi2c_0: hsi2c@14e40000 {
+               hsi2c_0: i2c@14e40000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14e40000 0x1000>;
                        interrupts = <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_1: hsi2c@14e50000 {
+               hsi2c_1: i2c@14e50000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14e50000 0x1000>;
                        interrupts = <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_2: hsi2c@14e60000 {
+               hsi2c_2: i2c@14e60000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14e60000 0x1000>;
                        interrupts = <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_3: hsi2c@14e70000 {
+               hsi2c_3: i2c@14e70000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14e70000 0x1000>;
                        interrupts = <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_4: hsi2c@14ec0000 {
+               hsi2c_4: i2c@14ec0000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14ec0000 0x1000>;
                        interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_5: hsi2c@14ed0000 {
+               hsi2c_5: i2c@14ed0000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14ed0000 0x1000>;
                        interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_6: hsi2c@14ee0000 {
+               hsi2c_6: i2c@14ee0000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14ee0000 0x1000>;
                        interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_7: hsi2c@14ef0000 {
+               hsi2c_7: i2c@14ef0000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14ef0000 0x1000>;
                        interrupts = <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_8: hsi2c@14d90000 {
+               hsi2c_8: i2c@14d90000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14d90000 0x1000>;
                        interrupts = <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_9: hsi2c@14da0000 {
+               hsi2c_9: i2c@14da0000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14da0000 0x1000>;
                        interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_10: hsi2c@14de0000 {
+               hsi2c_10: i2c@14de0000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14de0000 0x1000>;
                        interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_11: hsi2c@14df0000 {
+               hsi2c_11: i2c@14df0000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14df0000 0x1000>;
                        interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>;
index c73a597..c3efbc8 100644 (file)
                        interrupts = <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>;
                };
 
-               hsi2c_0: hsi2c@13640000 {
+               hsi2c_0: i2c@13640000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x13640000 0x1000>;
                        interrupts = <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_1: hsi2c@13650000 {
+               hsi2c_1: i2c@13650000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x13650000 0x1000>;
                        interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_2: hsi2c@14e60000 {
+               hsi2c_2: i2c@14e60000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14e60000 0x1000>;
                        interrupts = <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_3: hsi2c@14e70000 {
+               hsi2c_3: i2c@14e70000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14e70000 0x1000>;
                        interrupts = <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_4: hsi2c@13660000 {
+               hsi2c_4: i2c@13660000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x13660000 0x1000>;
                        interrupts = <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_5: hsi2c@13670000 {
+               hsi2c_5: i2c@13670000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x13670000 0x1000>;
                        interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_6: hsi2c@14e00000 {
+               hsi2c_6: i2c@14e00000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14e00000 0x1000>;
                        interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_7: hsi2c@13e10000 {
+               hsi2c_7: i2c@13e10000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x13e10000 0x1000>;
                        interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_8: hsi2c@14e20000 {
+               hsi2c_8: i2c@14e20000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x14e20000 0x1000>;
                        interrupts = <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_9: hsi2c@13680000 {
+               hsi2c_9: i2c@13680000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x13680000 0x1000>;
                        interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_10: hsi2c@13690000 {
+               hsi2c_10: i2c@13690000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x13690000 0x1000>;
                        interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               hsi2c_11: hsi2c@136a0000 {
+               hsi2c_11: i2c@136a0000 {
                        compatible = "samsung,exynos7-hsi2c";
                        reg = <0x136a0000 0x1000>;
                        interrupts = <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>;
index ef46d7a..57518cb 100644 (file)
@@ -54,3 +54,7 @@
        vcc-supply = <&ufs_0_fixed_vcc_reg>;
        vcc-fixed-regulator;
 };
+
+&usi_0 {
+       status = "okay";
+};
index a960c0b..de8fcb8 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/samsung,exynos-usi.h>
 
 / {
        compatible = "samsung,exynosautov9";
                        reg = <0x17c20000 0x1000>;
                };
 
-               /* USI: UART */
-               serial_0: uart@10300000 {
-                       compatible = "samsung,exynos850-uart";
-                       reg = <0x10300000 0x100>;
-                       interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&uart0_bus_dual>;
+               syscon_peric0: syscon@10220000 {
+                       compatible = "samsung,exynosautov9-sysreg", "syscon";
+                       reg = <0x10220000 0x2000>;
+               };
+
+               usi_0: usi@103000c0 {
+                       compatible = "samsung,exynos850-usi";
+                       reg = <0x103000c0 0x20>;
+                       samsung,sysreg = <&syscon_peric0 0x1000>;
+                       samsung,mode = <USI_V2_UART>;
+                       samsung,clkreq-on; /* needed for UART mode */
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
                        clocks = <&uart_clock>, <&uart_clock>;
-                       clock-names = "uart", "clk_uart_baud0";
+                       clock-names = "pclk", "ipclk";
                        status = "disabled";
+
+                       /* USI: UART */
+                       serial_0: serial@10300000 {
+                               compatible = "samsung,exynos850-uart";
+                               reg = <0x10300000 0xc0>;
+                               interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&uart0_bus_dual>;
+                               clocks = <&uart_clock>, <&uart_clock>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               status = "disabled";
+                       };
                };
 
                ufs_0_phy: ufs0-phy@17e04000 {
index a14a617..6d8f0a5 100644 (file)
@@ -1,4 +1,14 @@
 # SPDX-License-Identifier: GPL-2.0
+
+# required for overlay support
+DTC_FLAGS_fsl-ls1028a-qds := -@
+DTC_FLAGS_fsl-ls1028a-qds-13bb := -@
+DTC_FLAGS_fsl-ls1028a-qds-65bb := -@
+DTC_FLAGS_fsl-ls1028a-qds-7777 := -@
+DTC_FLAGS_fsl-ls1028a-qds-85bb := -@
+DTC_FLAGS_fsl-ls1028a-qds-899b := -@
+DTC_FLAGS_fsl-ls1028a-qds-9999 := -@
+
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-frdm.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-frwy.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-oxalis.dtb
@@ -11,6 +21,12 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var2.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var3-ads2.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var4.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-13bb.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-65bb.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-7777.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-85bb.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-899b.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-9999.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-rdb.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-qds.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb
@@ -40,6 +56,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-ctouch2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-edimm2.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-kontron-n801x-s.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-nitrogen-r2.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mm-tqma8mqml-mba8mx.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw71xx-0x.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw72xx-0x.dtb
@@ -47,8 +64,11 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7901.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw7902.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-beacon-kit.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2pro.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mn-tqma8mqnl-mba8mx.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-var-som-symphony.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-venice-gw7902.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
@@ -60,6 +80,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-devkit.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-r2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-r3.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-librem5-r4.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mq-tqma8mq-mba8mx.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-mnt-reform2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-nitrogen.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-phanbell.dtb
@@ -71,6 +92,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8qm-mek.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qxp-ai_ml.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qxp-colibri-eval-v3.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8qxp-mek.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8ulp-evk.dtb
 
 dtb-$(CONFIG_ARCH_S32) += s32g274a-evb.dtb
 dtb-$(CONFIG_ARCH_S32) += s32g274a-rdb2.dtb
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-13bb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-13bb.dts
new file mode 100644 (file)
index 0000000..f748a2c
--- /dev/null
@@ -0,0 +1,113 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree fragment for LS1028A QDS board, serdes 13bb
+ *
+ * Copyright 2019-2021 NXP
+ *
+ * Requires a LS1028A QDS board with lane B rework.
+ * Requires a SCH-30841 card with lane A of connector rewired to PHY lane C.
+ * Set-up is a SCH-30842 card in slot 1 and SCH-30841 in slot 2.
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&mdio_slot1>;
+
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       slot1_sgmii: ethernet-phy@2 {
+                               /* AQR112 */
+                               reg = <0x2>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&enetc_port0>;
+
+               __overlay__ {
+                       phy-handle = <&slot1_sgmii>;
+                       phy-mode = "usxgmii";
+                       managed = "in-band-status";
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target = <&mdio_slot2>;
+
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* 4 ports on AQR412 */
+                       slot2_qxgmii0: ethernet-phy@0 {
+                               reg = <0x0>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+
+                       slot2_qxgmii1: ethernet-phy@1 {
+                               reg = <0x1>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+
+                       slot2_qxgmii2: ethernet-phy@2 {
+                               reg = <0x2>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+
+                       slot2_qxgmii3: ethernet-phy@3 {
+                               reg = <0x3>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+               };
+       };
+
+       fragment@3 {
+               target = <&mscc_felix_ports>;
+
+               __overlay__ {
+                       port@0 {
+                               status = "okay";
+                               phy-handle = <&slot2_qxgmii0>;
+                               phy-mode = "usxgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@1 {
+                               status = "okay";
+                               phy-handle = <&slot2_qxgmii1>;
+                               phy-mode = "usxgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@2 {
+                               status = "okay";
+                               phy-handle = <&slot2_qxgmii2>;
+                               phy-mode = "usxgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@3 {
+                               status = "okay";
+                               phy-handle = <&slot2_qxgmii3>;
+                               phy-mode = "usxgmii";
+                               managed = "in-band-status";
+                       };
+               };
+       };
+
+       fragment@4 {
+               target = <&mscc_felix>;
+
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-65bb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-65bb.dts
new file mode 100644 (file)
index 0000000..8ffb707
--- /dev/null
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree fragment for LS1028A QDS board, serdes 69xx
+ *
+ * Copyright 2019-2021 NXP
+ *
+ * Requires a LS1028A QDS board with lane B rework.
+ * Requires a SCH-30842 card in slot 1 and a SCH-28021 card in slot 2.
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&mdio_slot1>;
+
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       slot1_sgmii: ethernet-phy@2 {
+                               /* AQR112 */
+                               reg = <0x2>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&enetc_port0>;
+
+               __overlay__ {
+                       phy-handle = <&slot1_sgmii>;
+                       phy-mode = "2500base-x";
+                       managed = "in-band-status";
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target = <&mdio_slot2>;
+
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* 4 ports on VSC8514 */
+                       slot2_qsgmii0: ethernet-phy@8 {
+                               reg = <0x8>;
+                       };
+
+                       slot2_qsgmii1: ethernet-phy@9 {
+                               reg = <0x9>;
+                       };
+
+                       slot2_qsgmii2: ethernet-phy@a {
+                               reg = <0xa>;
+                       };
+
+                       slot2_qsgmii3: ethernet-phy@b {
+                               reg = <0xb>;
+                       };
+               };
+       };
+
+       fragment@3 {
+               target = <&mscc_felix_ports>;
+
+               __overlay__ {
+                       port@0 {
+                               status = "okay";
+                               phy-handle = <&slot2_qsgmii0>;
+                               phy-mode = "qsgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@1 {
+                               status = "okay";
+                               phy-handle = <&slot2_qsgmii1>;
+                               phy-mode = "qsgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@2 {
+                               status = "okay";
+                               phy-handle = <&slot2_qsgmii2>;
+                               phy-mode = "qsgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@3 {
+                               status = "okay";
+                               phy-handle = <&slot2_qsgmii3>;
+                               phy-mode = "qsgmii";
+                               managed = "in-band-status";
+                       };
+               };
+       };
+
+       fragment@4 {
+               target = <&mscc_felix>;
+
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-7777.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-7777.dts
new file mode 100644 (file)
index 0000000..eb6a1e6
--- /dev/null
@@ -0,0 +1,82 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree fragment for LS1028A QDS board, serdes 7777
+ *
+ * Copyright 2019-2021 NXP
+ *
+ * Requires a LS1028A QDS board without lane B rework.
+ * Requires a SCH-30841 card without lane A/C rewire and with a FW with muxing
+ * disabled, plugged in slot 1.
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&mdio_slot1>;
+
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* 4 ports on AQR412 */
+                       slot1_sxgmii0: ethernet-phy@0 {
+                               reg = <0x0>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+
+                       slot1_sxgmii1: ethernet-phy@1 {
+                               reg = <0x1>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+
+                       slot1_sxgmii2: ethernet-phy@2 {
+                               reg = <0x2>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+
+                       slot1_sxgmii3: ethernet-phy@3 {
+                               reg = <0x3>;
+                               compatible = "ethernet-phy-ieee802.3-c45";
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&mscc_felix_ports>;
+
+               __overlay__ {
+                       port@0 {
+                               status = "okay";
+                               phy-handle = <&slot1_sxgmii0>;
+                               phy-mode = "2500base-x";
+                       };
+
+                       port@1 {
+                               status = "okay";
+                               phy-handle = <&slot1_sxgmii1>;
+                               phy-mode = "2500base-x";
+                       };
+
+                       port@2 {
+                               status = "okay";
+                               phy-handle = <&slot1_sxgmii2>;
+                               phy-mode = "2500base-x";
+                       };
+
+                       port@3 {
+                               status = "okay";
+                               phy-handle = <&slot1_sxgmii3>;
+                               phy-mode = "2500base-x";
+                       };
+               };
+       };
+
+       fragment@2 {
+               target = <&mscc_felix>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-85bb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-85bb.dts
new file mode 100644 (file)
index 0000000..8e90c30
--- /dev/null
@@ -0,0 +1,107 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree fragment for LS1028A QDS board, serdes 85bb
+ *
+ * Copyright 2019-2021 NXP
+ *
+ * Requires a LS1028A QDS board with lane B rework.
+ * Requires a SCH-24801 card in slot 1 and a SCH-28021 card in slot 2.
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&mdio_slot1>;
+
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       slot1_sgmii: ethernet-phy@1c {
+                               /* 1st port on VSC8234 */
+                               reg = <0x1c>;
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&enetc_port0>;
+
+               __overlay__ {
+                       phy-handle = <&slot1_sgmii>;
+                       phy-mode = "sgmii";
+                       managed = "in-band-status";
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target = <&mdio_slot2>;
+
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* 4 ports on VSC8514 */
+                       slot2_qsgmii0: ethernet-phy@8 {
+                               reg = <0x8>;
+                       };
+
+                       slot2_qsgmii1: ethernet-phy@9 {
+                               reg = <0x9>;
+                       };
+
+                       slot2_qsgmii2: ethernet-phy@a {
+                               reg = <0xa>;
+                       };
+
+                       slot2_qsgmii3: ethernet-phy@b {
+                               reg = <0xb>;
+                       };
+               };
+       };
+
+       fragment@3 {
+               target = <&mscc_felix_ports>;
+
+               __overlay__ {
+                       port@0 {
+                               status = "okay";
+                               phy-handle = <&slot2_qsgmii0>;
+                               phy-mode = "qsgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@1 {
+                               status = "okay";
+                               phy-handle = <&slot2_qsgmii1>;
+                               phy-mode = "qsgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@2 {
+                               status = "okay";
+                               phy-handle = <&slot2_qsgmii2>;
+                               phy-mode = "qsgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@3 {
+                               status = "okay";
+                               phy-handle = <&slot2_qsgmii3>;
+                               phy-mode = "qsgmii";
+                               managed = "in-band-status";
+                       };
+               };
+       };
+
+       fragment@4 {
+               target = <&mscc_felix>;
+
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-899b.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-899b.dts
new file mode 100644 (file)
index 0000000..5d0a094
--- /dev/null
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree fragment for LS1028A QDS board, serdes 85xx
+ *
+ * Copyright 2019-2021 NXP
+ *
+ * Requires a LS1028A QDS board without lane B rework.
+ * Requires a SCH-24801 card in slot 1.
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&mdio_slot1>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* VSC8234 */
+                       slot1_sgmii0: ethernet-phy@1c {
+                               reg = <0x1c>;
+                       };
+
+                       slot1_sgmii1: ethernet-phy@1d {
+                               reg = <0x1d>;
+                       };
+
+                       slot1_sgmii2: ethernet-phy@1e {
+                               reg = <0x1e>;
+                       };
+
+                       slot1_sgmii3: ethernet-phy@1f {
+                               reg = <0x1f>;
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&enetc_port0>;
+               __overlay__ {
+                       phy-handle = <&slot1_sgmii0>;
+                       phy-mode = "sgmii";
+                       managed = "in-band-status";
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target = <&mscc_felix_ports>;
+               __overlay__ {
+                       port@1 {
+                               status = "okay";
+                               phy-handle = <&slot1_sgmii1>;
+                               phy-mode = "sgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@2 {
+                               status = "okay";
+                               phy-handle = <&slot1_sgmii2>;
+                               phy-mode = "sgmii";
+                               managed = "in-band-status";
+                       };
+               };
+       };
+
+       fragment@3 {
+               target = <&mscc_felix>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-9999.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-9999.dts
new file mode 100644 (file)
index 0000000..1ef743c
--- /dev/null
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree fragment for LS1028A QDS board, serdes 85xx
+ *
+ * Copyright 2019-2021 NXP
+ *
+ * Requires a LS1028A QDS board without lane B rework.
+ * Requires a SCH-24801 card in slot 1.
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&mdio_slot1>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* VSC8234 */
+                       slot1_sgmii0: ethernet-phy@1c {
+                               reg = <0x1c>;
+                       };
+
+                       slot1_sgmii1: ethernet-phy@1d {
+                               reg = <0x1d>;
+                       };
+
+                       slot1_sgmii2: ethernet-phy@1e {
+                               reg = <0x1e>;
+                       };
+
+                       slot1_sgmii3: ethernet-phy@1f {
+                               reg = <0x1f>;
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&mscc_felix_ports>;
+               __overlay__ {
+                       port@0 {
+                               status = "okay";
+                               phy-handle = <&slot1_sgmii0>;
+                               phy-mode = "sgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@1 {
+                               status = "okay";
+                               phy-handle = <&slot1_sgmii1>;
+                               phy-mode = "sgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@2 {
+                               status = "okay";
+                               phy-handle = <&slot1_sgmii2>;
+                               phy-mode = "sgmii";
+                               managed = "in-band-status";
+                       };
+
+                       port@3 {
+                               status = "okay";
+                               phy-handle = <&slot1_sgmii3>;
+                               phy-mode = "sgmii";
+                               managed = "in-band-status";
+                       };
+               };
+       };
+
+       fragment@2 {
+               target = <&mscc_felix>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
index 6e2a1da..177bc14 100644 (file)
@@ -25,7 +25,7 @@
                serial1 = &duart1;
                mmc0 = &esdhc;
                mmc1 = &esdhc1;
-               rtc1 = &ftm_alarm0;
+               rtc1 = &ftm_alarm1;
        };
 
        chosen {
        status = "okay";
 };
 
+&enetc_port1 {
+       phy-handle = <&qds_phy1>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+};
+
+&enetc_port2 {
+       status = "okay";
+};
+
 &esdhc {
        status = "okay";
 };
        };
 };
 
+&ftm_alarm1 {
+       status = "okay";
+};
+
 &i2c0 {
        status = "okay";
 
                                vcc-supply = <&sb_3v3>;
                        };
 
-                       rtc@51 {
-                               compatible = "nxp,pcf2129";
-                               reg = <0x51>;
-                       };
-
                        eeprom@56 {
                                compatible = "atmel,24c512";
                                reg = <0x56>;
 
 };
 
-&enetc_port1 {
-       phy-handle = <&qds_phy1>;
-       phy-mode = "rgmii-id";
+&i2c1 {
        status = "okay";
+
+       rtc@51 {
+               compatible = "nxp,pcf2129";
+               reg = <0x51>;
+       };
 };
 
 &lpuart0 {
        status = "okay";
 };
 
+&lpuart1 {
+       status = "okay";
+};
+
+&mscc_felix_port4 {
+       ethernet = <&enetc_port2>;
+       status = "okay";
+};
+
 &sai1 {
        status = "okay";
 };
index 7719f44..68c31cb 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Device Tree file for NXP LS1028A RDB Board.
  *
- * Copyright 2018 NXP
+ * Copyright 2018-2021 NXP
  *
  * Harninder Rai <harninder.rai@nxp.com>
  *
                serial1 = &duart1;
                mmc0 = &esdhc;
                mmc1 = &esdhc1;
-               rtc1 = &ftm_alarm0;
+               rtc1 = &ftm_alarm1;
+               spi0 = &fspi;
+               ethernet0 = &enetc_port0;
+               ethernet1 = &enetc_port2;
+               ethernet2 = &mscc_felix_port0;
+               ethernet3 = &mscc_felix_port1;
+               ethernet4 = &mscc_felix_port2;
+               ethernet5 = &mscc_felix_port3;
        };
 
        chosen {
        };
 };
 
+&duart0 {
+       status = "okay";
+};
+
+&duart1 {
+       status = "okay";
+};
+
+&enetc_mdio_pf3 {
+       sgmii_phy0: ethernet-phy@2 {
+               reg = <0x2>;
+       };
+
+       /* VSC8514 QSGMII quad PHY */
+       qsgmii_phy0: ethernet-phy@10 {
+               reg = <0x10>;
+       };
+
+       qsgmii_phy1: ethernet-phy@11 {
+               reg = <0x11>;
+       };
+
+       qsgmii_phy2: ethernet-phy@12 {
+               reg = <0x12>;
+       };
+
+       qsgmii_phy3: ethernet-phy@13 {
+               reg = <0x13>;
+       };
+};
+
+&enetc_port0 {
+       phy-handle = <&sgmii_phy0>;
+       phy-mode = "sgmii";
+       managed = "in-band-status";
+       status = "okay";
+};
+
+&enetc_port2 {
+       status = "okay";
+};
+
 &esdhc {
        sd-uhs-sdr104;
        sd-uhs-sdr50;
        };
 };
 
+&ftm_alarm1 {
+       status = "okay";
+};
+
 &i2c0 {
        status = "okay";
 
        };
 };
 
-&duart0 {
-       status = "okay";
-};
-
-&duart1 {
-       status = "okay";
-};
-
-&enetc_mdio_pf3 {
-       sgmii_phy0: ethernet-phy@2 {
-               reg = <0x2>;
-       };
-
-       /* VSC8514 QSGMII quad PHY */
-       qsgmii_phy0: ethernet-phy@10 {
-               reg = <0x10>;
-       };
-
-       qsgmii_phy1: ethernet-phy@11 {
-               reg = <0x11>;
-       };
-
-       qsgmii_phy2: ethernet-phy@12 {
-               reg = <0x12>;
-       };
-
-       qsgmii_phy3: ethernet-phy@13 {
-               reg = <0x13>;
-       };
-};
-
-&enetc_port0 {
-       phy-handle = <&sgmii_phy0>;
-       phy-mode = "sgmii";
-       managed = "in-band-status";
-       status = "okay";
-};
-
-&enetc_port2 {
-       status = "okay";
-};
-
 &mscc_felix {
        status = "okay";
 };
        status = "okay";
 };
 
+&pwm0 {
+       status = "okay";
+};
+
 &sai4 {
        status = "okay";
 };
index fd3f3e8..5bb8c26 100644 (file)
                };
        };
 
+       rtc_clk: rtc-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "rtc_clk";
+       };
+
        sysclk: sysclk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                        status = "disabled";
                };
 
+               pcie_ep1: pcie-ep@3400000 {
+                       compatible = "fsl,ls1028a-pcie-ep","fsl,ls-pcie-ep";
+                       reg = <0x00 0x03400000 0x0 0x00100000
+                              0x80 0x00000000 0x8 0x00000000>;
+                       reg-names = "regs", "addr_space";
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
+                       interrupt-names = "pme";
+                       num-ib-windows = <6>;
+                       num-ob-windows = <8>;
+                       status = "disabled";
+               };
+
                pcie2: pcie@3500000 {
                        compatible = "fsl,ls1028a-pcie";
                        reg = <0x00 0x03500000 0x0 0x00100000>, /* controller registers */
                        status = "disabled";
                };
 
+               pcie_ep2: pcie-ep@3500000 {
+                       compatible = "fsl,ls1028a-pcie-ep","fsl,ls-pcie-ep";
+                       reg = <0x00 0x03500000 0x0 0x00100000
+                              0x88 0x00000000 0x8 0x00000000>;
+                       reg-names = "regs", "addr_space";
+                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
+                       interrupt-names = "pme";
+                       num-ib-windows = <6>;
+                       num-ob-windows = <8>;
+                       status = "disabled";
+               };
+
                smmu: iommu@5000000 {
                        compatible = "arm,mmu-500";
                        reg = <0 0x5000000 0 0x800000>;
                                interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
 
-                               ports {
+                               mscc_felix_ports: ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                        reg = <0x01 0xf0800000 0x0 0x10000>;
                };
 
+               pwm0: pwm@2800000 {
+                       compatible = "fsl,vf610-ftm-pwm";
+                       #pwm-cells = <3>;
+                       reg = <0x0 0x2800000 0x0 0x10000>;
+                       clock-names = "ftm_sys", "ftm_ext",
+                                     "ftm_fix", "ftm_cnt_clk_en";
+                       clocks = <&clockgen 4 1>, <&clockgen 4 1>,
+                                <&rtc_clk>, <&clockgen 4 1>;
+                       status = "disabled";
+               };
+
+               pwm1: pwm@2810000 {
+                       compatible = "fsl,vf610-ftm-pwm";
+                       #pwm-cells = <3>;
+                       reg = <0x0 0x2810000 0x0 0x10000>;
+                       clock-names = "ftm_sys", "ftm_ext",
+                                     "ftm_fix", "ftm_cnt_clk_en";
+                       clocks = <&clockgen 4 1>, <&clockgen 4 1>,
+                                <&rtc_clk>, <&clockgen 4 1>;
+                       status = "disabled";
+               };
+
+               pwm2: pwm@2820000 {
+                       compatible = "fsl,vf610-ftm-pwm";
+                       #pwm-cells = <3>;
+                       reg = <0x0 0x2820000 0x0 0x10000>;
+                       clock-names = "ftm_sys", "ftm_ext",
+                                     "ftm_fix", "ftm_cnt_clk_en";
+                       clocks = <&clockgen 4 1>, <&clockgen 4 1>,
+                                <&rtc_clk>, <&clockgen 4 1>;
+                       status = "disabled";
+               };
+
+               pwm3: pwm@2830000 {
+                       compatible = "fsl,vf610-ftm-pwm";
+                       #pwm-cells = <3>;
+                       reg = <0x0 0x2830000 0x0 0x10000>;
+                       clock-names = "ftm_sys", "ftm_ext",
+                                     "ftm_fix", "ftm_cnt_clk_en";
+                       clocks = <&clockgen 4 1>, <&clockgen 4 1>,
+                                <&rtc_clk>, <&clockgen 4 1>;
+                       status = "disabled";
+               };
+
+               pwm4: pwm@2840000 {
+                       compatible = "fsl,vf610-ftm-pwm";
+                       #pwm-cells = <3>;
+                       reg = <0x0 0x2840000 0x0 0x10000>;
+                       clock-names = "ftm_sys", "ftm_ext",
+                                     "ftm_fix", "ftm_cnt_clk_en";
+                       clocks = <&clockgen 4 1>, <&clockgen 4 1>,
+                                <&rtc_clk>, <&clockgen 4 1>;
+                       status = "disabled";
+               };
+
+               pwm5: pwm@2850000 {
+                       compatible = "fsl,vf610-ftm-pwm";
+                       #pwm-cells = <3>;
+                       reg = <0x0 0x2850000 0x0 0x10000>;
+                       clock-names = "ftm_sys", "ftm_ext",
+                                     "ftm_fix", "ftm_cnt_clk_en";
+                       clocks = <&clockgen 4 1>, <&clockgen 4 1>,
+                                <&rtc_clk>, <&clockgen 4 1>;
+                       status = "disabled";
+               };
+
+               pwm6: pwm@2860000 {
+                       compatible = "fsl,vf610-ftm-pwm";
+                       #pwm-cells = <3>;
+                       reg = <0x0 0x2860000 0x0 0x10000>;
+                       clock-names = "ftm_sys", "ftm_ext",
+                                     "ftm_fix", "ftm_cnt_clk_en";
+                       clocks = <&clockgen 4 1>, <&clockgen 4 1>,
+                                <&rtc_clk>, <&clockgen 4 1>;
+                       status = "disabled";
+               };
+
+               pwm7: pwm@2870000 {
+                       compatible = "fsl,vf610-ftm-pwm";
+                       #pwm-cells = <3>;
+                       reg = <0x0 0x2870000 0x0 0x10000>;
+                       clock-names = "ftm_sys", "ftm_ext",
+                                     "ftm_fix", "ftm_cnt_clk_en";
+                       clocks = <&clockgen 4 1>, <&clockgen 4 1>,
+                                <&rtc_clk>, <&clockgen 4 1>;
+                       status = "disabled";
+               };
+
                rcpm: power-controller@1e34040 {
                        compatible = "fsl,ls1028a-rcpm", "fsl,qoriq-rcpm-2.1+";
                        reg = <0x0 0x1e34040 0x0 0x1c>;
                        reg = <0x0 0x2800000 0x0 0x10000>;
                        fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0 0x0>;
                        interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               ftm_alarm1: timer@2810000 {
+                       compatible = "fsl,ls1028a-ftm-alarm";
+                       reg = <0x0 0x2810000 0x0 0x10000>;
+                       fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0 0x0>;
+                       interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
                };
        };
 
index 3516af4..b290605 100644 (file)
@@ -94,6 +94,8 @@
                compatible = "n25q128a13", "jedec,spi-nor";  /* 16MB */
                reg = <0>;
                spi-max-frequency = <1000000>; /* input clock */
+               fsl,spi-cs-sck-delay = <100>;
+               fsl,spi-sck-cs-delay = <100>;
        };
 
        slic@2 {
index f891ef6..3ed1f2c 100644 (file)
                clock-output-names = "sysclk";
        };
 
+       reboot {
+               compatible = "syscon-reboot";
+               regmap = <&reset>;
+               offset = <0x0>;
+               mask = <0x02>;
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                        little-endian;
                };
 
+               reset: syscon@1e60000 {
+                       compatible = "fsl,ls1088a-reset", "syscon";
+                       reg = <0x0 0x1e60000 0x0 0x10000>;
+               };
+
                isc: syscon@1f70000 {
                        compatible = "fsl,ls1088a-isc", "syscon";
                        reg = <0x0 0x1f70000 0x0 0x10000>;
                        dr_mode = "host";
                        snps,quirk-frame-length-adjustment = <0x20>;
                        snps,dis_rxdet_inp3_quirk;
+                       snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
                        status = "disabled";
                };
 
index d858d9c..2ecfa90 100644 (file)
                regulator-boot-on;
                regulator-always-on;
        };
+
+       mdio-mux-1 {
+               compatible = "mdio-mux-multiplexer";
+               mux-controls = <&mux 0>;
+               mdio-parent-bus = <&emdio1>;
+               #address-cells=<1>;
+               #size-cells = <0>;
+
+               mdio@0 { /* On-board PHY #1 RGMI1*/
+                       reg = <0x00>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@8 { /* On-board PHY #2 RGMI2*/
+                       reg = <0x8>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@18 { /* Slot #1 */
+                       reg = <0x18>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@19 { /* Slot #2 */
+                       reg = <0x19>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@1a { /* Slot #3 */
+                       reg = <0x1a>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@1b { /* Slot #4 */
+                       reg = <0x1b>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@1c { /* Slot #5 */
+                       reg = <0x1c>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@1d { /* Slot #6 */
+                       reg = <0x1d>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@1e { /* Slot #7 */
+                       reg = <0x1e>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@1f { /* Slot #8 */
+                       reg = <0x1f>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+
+       mdio-mux-2 {
+               compatible = "mdio-mux-multiplexer";
+               mux-controls = <&mux 1>;
+               mdio-parent-bus = <&emdio2>;
+               #address-cells=<1>;
+               #size-cells = <0>;
+
+               mdio@0 { /* Slot #1 (secondary EMI) */
+                       reg = <0x00>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@1 { /* Slot #2 (secondary EMI) */
+                       reg = <0x01>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@2 { /* Slot #3 (secondary EMI) */
+                       reg = <0x02>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@3 { /* Slot #4 (secondary EMI) */
+                       reg = <0x03>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@4 { /* Slot #5 (secondary EMI) */
+                       reg = <0x04>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@5 { /* Slot #6 (secondary EMI) */
+                       reg = <0x05>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@6 { /* Slot #7 (secondary EMI) */
+                       reg = <0x06>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mdio@7 { /* Slot #8 (secondary EMI) */
+                       reg = <0x07>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
 };
 
 &can0 {
        };
 };
 
+&emdio1 {
+       status = "okay";
+};
+
+&emdio2 {
+       status = "okay";
+};
+
 &esdhc0 {
        status = "okay";
 };
 &i2c0 {
        status = "okay";
 
+       fpga@66 {
+               compatible = "fsl,lx2160aqds-fpga", "fsl,fpga-qixis-i2c",
+                            "simple-mfd";
+               reg = <0x66>;
+
+               mux: mux-controller {
+                       compatible = "reg-mux";
+                       #mux-control-cells = <1>;
+                       mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */
+                                       <0x54 0x07>; /* 1: reg 0x54, bit 2:0 */
+               };
+       };
+
        i2c-mux@77 {
                compatible = "nxp,pca9547";
                reg = <0x77>;
        };
 };
 
+&optee {
+       status = "okay";
+};
+
 &sata0 {
        status = "okay";
 };
index 028ff80..0c44b3c 100644 (file)
        managed = "in-band-status";
 };
 
+&dpmac5 {
+       phy-handle = <&inphi_phy>;
+};
+
+&dpmac6 {
+       phy-handle = <&inphi_phy>;
+};
+
 &dpmac17 {
        phy-handle = <&rgmii_phy1>;
        phy-connection-type = "rgmii-id";
        };
 };
 
+&emdio2 {
+       status = "okay";
+
+       inphi_phy: ethernet-phy@0 {
+               compatible = "ethernet-phy-id0210.7440";
+               reg = <0x0>;
+       };
+};
+
 &esdhc0 {
        sd-uhs-sdr104;
        sd-uhs-sdr50;
        };
 };
 
+&optee {
+       status = "okay";
+};
+
 &pcs_mdio3 {
        status = "okay";
 };
index 2433e6f..7032505 100644 (file)
                        interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
                        dr_mode = "host";
                        snps,quirk-frame-length-adjustment = <0x20>;
+                       usb3-lpm-capable;
                        snps,dis_rxdet_inp3_quirk;
                        snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
                        status = "disabled";
                        interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
                        dr_mode = "host";
                        snps,quirk-frame-length-adjustment = <0x20>;
+                       usb3-lpm-capable;
                        snps,dis_rxdet_inp3_quirk;
                        snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
                        status = "disabled";
                        };
                };
        };
+
+       firmware {
+               optee: optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+                       status = "disabled";
+               };
+       };
 };
index e1defee..a1644ce 100644 (file)
        };
 };
 
+&can0 {
+       status = "okay";
+};
+
+&can1 {
+       status = "okay";
+};
+
 &crypto {
        status = "okay";
 };
 };
 
 &esdhc0 {
+       sd-uhs-sdr104;
+       sd-uhs-sdr50;
+       sd-uhs-sdr25;
+       sd-uhs-sdr12;
        status = "okay";
 };
 
 &esdhc1 {
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       bus-width = <8>;
        status = "okay";
 };
 
                        rtc@51 {
                                compatible = "nxp,pcf2129";
                                reg = <0x51>;
+                               /* IRQ_RTC_B -> IRQ11_B(CPLD) -> IRQ11(CPU), active low */
+                               interrupts-extended = <&extirq 11 IRQ_TYPE_LEVEL_LOW>;
                        };
                };
        };
 };
 
+&optee {
+       status = "okay";
+};
+
 &sata0 {
        status = "okay";
 };
index 6f5e636..0da3118 100644 (file)
                enable-active-high;
        };
 
+       reg_usbotg1: regulator-usbotg1 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usb_otg1>;
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_camera: regulator-camera {
+               compatible = "regulator-fixed";
+               regulator-name = "mipi_pwr";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               gpio = <&pca6416_1 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100000>;
+       };
+
        reg_usdhc2_vmmc: regulator-usdhc2 {
                compatible = "regulator-fixed";
                regulator-name = "VSD_3V3";
        };
 };
 
+&csi {
+       status = "okay";
+};
+
 &ecspi2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_espi2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
+
+       camera@3c {
+               compatible = "ovti,ov5640";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ov5640>;
+               reg = <0x3c>;
+               clocks = <&clk IMX8MM_CLK_CLKO1>;
+               clock-names = "xclk";
+               assigned-clocks = <&clk IMX8MM_CLK_CLKO1>;
+               assigned-clock-parents = <&clk IMX8MM_CLK_24M>;
+               assigned-clock-rates = <24000000>;
+               AVDD-supply = <&reg_camera>;  /* 2.8v */
+               powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+
+               port {
+                       /* MIPI CSI-2 bus endpoint */
+                       ov5640_to_mipi_csi2: endpoint {
+                               remote-endpoint = <&imx8mm_mipi_csi_in>;
+                               clock-lanes = <0>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
 };
 
 &i2c4 {
        };
 };
 
+&mipi_csi {
+       status = "okay";
+       ports {
+               port@0 {
+                       imx8mm_mipi_csi_in: endpoint {
+                               remote-endpoint = <&ov5640_to_mipi_csi2>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
 &sai3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_sai3>;
        status = "okay";
 };
 
+&usbotg1 {
+       vbus-supply = <&reg_usbotg1>;
+       disable-over-current;
+       dr_mode="otg";
+       status = "okay";
+};
+
+&usbotg2 {
+       pinctrl-names = "default";
+       disable-over-current;
+       dr_mode="host";
+       status = "okay";
+};
+
+&usbphynop2 {
+       reset-gpios = <&pca6416_1 7 GPIO_ACTIVE_HIGH>;
+};
+
 &usdhc2 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
                >;
        };
 
+       pinctrl_ov5640: ov5640grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7               0x19
+                       MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6               0x19
+                       MX8MM_IOMUXC_GPIO1_IO14_CCMSRCGPCMIX_CLKO1      0x59
+               >;
+       };
+
        pinctrl_pcal6414: pcal6414-gpiogrp {
                fsl,pins = <
                        MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27               0x19
                >;
        };
 
+       pinctrl_reg_usb_otg1: usbotg1grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI3_RXC_GPIO4_IO29     0x19
+               >;
+       };
+
        pinctrl_sai3: sai3grp {
                fsl,pins = <
                        MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC     0xd6
index 40f5e7a..cf07987 100644 (file)
        bus-width = <4>;
        non-removable;
        cap-power-off-card;
-       pm-ignore-notify;
        keep-power-in-suspend;
        mmc-pwrseq = <&usdhc1_pwrseq>;
        status = "okay";
index e033d02..3bac87b 100644 (file)
                        reg = <0>;
                        reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
                        reset-assert-us = <10000>;
+                       qca,disable-smarteee;
+                       vddio-supply = <&vddio>;
+
+                       vddio: vddio-regulator {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
                };
        };
 };
index 5389d6f..5027454 100644 (file)
@@ -91,7 +91,6 @@
        max-frequency = <50000000>;
        bus-width = <4>;
        no-1-8-v;
-       pm-ignore-notify;
        keep-power-in-suspend;
        status = "okay";
 };
index a4a2ada..ddac8bc 100644 (file)
@@ -91,7 +91,6 @@
        max-frequency = <50000000>;
        bus-width = <4>;
        no-1-8-v;
-       pm-ignore-notify;
        keep-power-in-suspend;
        status = "okay";
 };
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
new file mode 100644 (file)
index 0000000..7844878
--- /dev/null
@@ -0,0 +1,253 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2020-2021 TQ-Systems GmbH
+ */
+
+/dts-v1/;
+
+#include "imx8mm-tqma8mqml.dtsi"
+#include "mba8mx.dtsi"
+
+/ {
+       model = "TQ-Systems GmbH i.MX8MM TQMa8MxML on MBa8Mx";
+       compatible = "tq,imx8mm-tqma8mqml-mba8mx", "tq,imx8mm-tqma8mqml", "fsl,imx8mm";
+
+       aliases {
+               eeprom0 = &eeprom3;
+               mmc0 = &usdhc3;
+               mmc1 = &usdhc2;
+               mmc2 = &usdhc1;
+               rtc0 = &pcf85063;
+               rtc1 = &snvs_rtc;
+       };
+
+       reg_usdhc2_vmmc: regulator-vmmc {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               off-on-delay-us = <12000>;
+       };
+
+       extcon_usbotg1: extcon-usbotg1 {
+               compatible = "linux,extcon-usb-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb1_extcon>;
+               id-gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&i2c1 {
+       expander2: gpio@27 {
+               compatible = "nxp,pca9555";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               vcc-supply = <&reg_vcc_3v3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_expander>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+};
+
+&sai3 {
+       assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
+       assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
+       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
+       clocks = <&clk IMX8MM_CLK_SAI3_IPG>, <&clk IMX8MM_CLK_DUMMY>,
+               <&clk IMX8MM_CLK_SAI3_ROOT>, <&clk IMX8MM_CLK_DUMMY>,
+               <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_AUDIO_PLL1_OUT>,
+               <&clk IMX8MM_AUDIO_PLL2_OUT>;
+};
+
+&tlv320aic3x04 {
+       clock-names = "mclk";
+       clocks = <&clk IMX8MM_CLK_SAI3_ROOT>;
+};
+
+&uart1 {
+       assigned-clocks = <&clk IMX8MM_CLK_UART1>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+};
+
+&uart2 {
+       assigned-clocks = <&clk IMX8MM_CLK_UART2>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+};
+
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg1>;
+       dr_mode = "otg";
+       extcon = <&extcon_usbotg1>;
+       srp-disable;
+       hnp-disable;
+       adp-disable;
+       power-active-high;
+       over-current-active-low;
+       status = "okay";
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       disable-over-current;
+       vbus-supply = <&reg_hub_vbus>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK        0x00000006>,
+                          <MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI        0x00000006>,
+                          <MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO        0x00000006>,
+                          <MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9           0x00000006>;
+       };
+
+       pinctrl_ecspi2: ecspi2grp {
+               fsl,pins = <MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK        0x00000006>,
+                          <MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI        0x00000006>,
+                          <MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO        0x00000006>,
+                          <MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13          0x00000006>;
+       };
+
+       pinctrl_expander: expandergrp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9           0x94>;
+       };
+
+       pinctrl_fec1: fec1grp {
+               fsl,pins = <MX8MM_IOMUXC_ENET_MDC_ENET1_MDC             0x40000002>,
+                          <MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO           0x40000002>,
+                          <MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3       0x14>,
+                          <MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2       0x14>,
+                          <MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1       0x14>,
+                          <MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0       0x14>,
+                          <MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3       0x90>,
+                          <MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2       0x90>,
+                          <MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1       0x90>,
+                          <MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0       0x90>,
+                          <MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC       0x14>,
+                          <MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC       0x90>,
+                          <MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x90>,
+                          <MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x14>;
+       };
+
+       pinctrl_gpiobutton: gpiobuttongrp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5           0x84>,
+                          <MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7           0x84>,
+                          <MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0              0x84>;
+       };
+
+       pinctrl_gpioled: gpioledgrp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0           0x84>,
+                          <MX8MM_IOMUXC_NAND_DQS_GPIO3_IO14            0x84>;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL              0x40000004>,
+                          <MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA              0x40000004>;
+       };
+
+       pinctrl_i2c2_gpio: i2c2gpiogrp {
+               fsl,pins = <MX8MM_IOMUXC_I2C2_SCL_GPIO5_IO16            0x40000004>,
+                          <MX8MM_IOMUXC_I2C2_SDA_GPIO5_IO17            0x40000004>;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL              0x40000004>,
+                          <MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA              0x40000004>;
+       };
+
+       pinctrl_i2c3_gpio: i2c3gpiogrp {
+               fsl,pins = <MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18            0x40000004>,
+                          <MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19            0x40000004>;
+       };
+
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO14_PWM3_OUT            0x14>;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO15_PWM4_OUT            0x14>;
+       };
+
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK            0x94>,
+                          <MX8MM_IOMUXC_SAI3_RXC_SAI3_RX_BCLK          0x94>,
+                          <MX8MM_IOMUXC_SAI3_RXFS_SAI3_RX_SYNC         0x94>,
+                          <MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0         0x94>,
+                          <MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC         0x94>,
+                          <MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0         0x94>,
+                          <MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK          0x94>;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX         0x16>,
+                          <MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX         0x16>;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX         0x16>,
+                          <MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX         0x16>;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX         0x16>,
+                          <MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX         0x16>;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX         0x16>,
+                          <MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX         0x16>;
+       };
+
+       pinctrl_usbotg1: usbotg1grp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO12_USB1_OTG_PWR        0x84>,
+                          <MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC         0x84>;
+       };
+
+       pinctrl_usb1_extcon: usb1-extcongrp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10          0x1c0>;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2grpgpiogrp {
+               fsl,pins = <MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12            0x84>;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK             0x1d4>,
+                          <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD             0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
+                          <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK             0x1d4>,
+                          <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD             0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
+                          <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK             0x1d4>,
+                          <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD             0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
+                          <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
+                          <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
new file mode 100644 (file)
index 0000000..284e62a
--- /dev/null
@@ -0,0 +1,335 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2020-2021 TQ-Systems GmbH
+ */
+
+#include "imx8mm.dtsi"
+
+/ {
+       model = "TQ-Systems GmbH i.MX8MM TQMa8MxML";
+       compatible = "tq,imx8mm-tqma8mqml", "fsl,imx8mm";
+
+       memory@40000000 {
+               device_type = "memory";
+               /*  our minimum RAM config will be 1024 MiB */
+               reg = <0x00000000 0x40000000 0 0x40000000>;
+       };
+
+       /* e-MMC IO, needed for HS modes */
+       reg_vcc1v8: regulator-vcc1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "TQMA8MXML_VCC1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       /* identical to buck4_reg, but should never change */
+       reg_vcc3v3: regulator-vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "TQMA8MXML_VCC3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       /* 640 MiB */
+                       size = <0 0x28000000>;
+                       /*  1024 - 128 MiB, our minimum RAM config will be 1024 MiB */
+                       alloc-ranges = <0 0x40000000 0 0x78000000>;
+                       linux,cma-default;
+               };
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&flexspi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexspi>;
+       status = "okay";
+
+       flash0: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <84000000>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>;
+       };
+};
+
+&gpu_2d {
+       status = "okay";
+};
+
+&gpu_3d {
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       sensor0: temperature-sensor-eeprom@1b {
+               compatible = "nxp,se97", "jedec,jc-42.4-temp";
+               reg = <0x1b>;
+       };
+
+       pca9450: pmic@25 {
+               compatible = "nxp,pca9450a";
+               reg = <0x25>;
+
+               /* PMIC PCA9450 PMIC_nINT GPIO1_IO08 */
+               pinctrl-0 = <&pinctrl_pmic>;
+               pinctrl-names = "default";
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       /* V_0V85_SOC: 0.85 */
+                       buck1_reg: BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       /* VDD_ARM */
+                       buck2_reg: BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               nxp,dvs-run-voltage = <950000>;
+                               nxp,dvs-standby-voltage = <850000>;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       /* V_0V85_GPU / DRAM / VPU */
+                       buck3_reg: BUCK3 {
+                               regulator-name = "BUCK3";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       /* VCC3V3 -> VMMC, ... must not be changed */
+                       buck4_reg: BUCK4 {
+                               regulator-name = "BUCK4";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V8 -> VQMMC, SPI-NOR, ... must not be changed */
+                       buck5_reg: BUCK5 {
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V1 -> RAM, ... must not be changed */
+                       buck6_reg: BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V8_SNVS */
+                       ldo1_reg: LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_0V8_SNVS */
+                       ldo2_reg: LDO2 {
+                               regulator-name = "LDO2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V8_ANA */
+                       ldo3_reg: LDO3 {
+                               regulator-name = "LDO3";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_0V9_MIPI */
+                       ldo4_reg: LDO4 {
+                               regulator-name = "LDO4";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VCC SD IO - switched using SD2 VSELECT */
+                       ldo5_reg: LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+       };
+
+
+       pcf85063: rtc@51 {
+               compatible = "nxp,pcf85063a";
+               reg = <0x51>;
+               quartz-load-femtofarads = <7000>;
+       };
+
+       eeprom1: eeprom@53 {
+               compatible = "nxp,se97b", "atmel,24c02";
+               read-only;
+               reg = <0x53>;
+               pagesize = <16>;
+       };
+
+       eeprom0: eeprom@57 {
+               compatible = "atmel,24c64";
+               reg = <0x57>;
+               pagesize = <32>;
+       };
+};
+
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       no-sd;
+       no-sdio;
+       vmmc-supply = <&reg_vcc3v3>;
+       vqmmc-supply = <&reg_vcc1v8>;
+       status = "okay";
+};
+
+/*
+ * Attention:
+ * wdog reset is routed to PMIC, PMIC must be preconfigured to force POR
+ * without LDO for SNVS. GPIO1_IO02 must not be used as GPIO.
+ */
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_flexspi: flexspigrp {
+               fsl,pins = <MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK           0x82>,
+                          <MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B        0x82>,
+                          <MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0       0x82>,
+                          <MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1       0x82>,
+                          <MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2       0x82>,
+                          <MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3       0x82>;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL              0x40000004>,
+                          <MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA              0x40000004>;
+       };
+
+       pinctrl_i2c1_gpio: i2c1gpiogrp {
+               fsl,pins = <MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14            0x40000004>,
+                          <MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15            0x40000004>;
+       };
+
+       pinctrl_pmic: pmicgrp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8           0x94>;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19         0x84>;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK           0x1d4>,
+                          <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD           0x1d2>,
+                          <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4         0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5        0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6        0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7          0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE       0x84>,
+                          /* option USDHC3_RESET_B not defined, only in RM */
+                          <MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16        0x84>;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK           0x1d2>,
+                          <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD           0x1d2>,
+                          <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4         0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5        0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6        0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7          0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE       0x84>,
+                          /* option USDHC3_RESET_B not defined, only in RM */
+                          <MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16        0x84>;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK           0x1d6>,
+                          <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD           0x1d2>,
+                          <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3       0x1d4>,
+                          <MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4         0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5        0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6        0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7          0x1d4>,
+                          <MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE       0x84>,
+                          /* option USDHC3_RESET_B not defined, only in RM */
+                          <MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16        0x84>;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B        0x84>;
+       };
+};
index c2f3f11..f77f90e 100644 (file)
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MM_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        nvmem-cells = <&cpu_speed_grade>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MM_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        cpu-idle-states = <&cpu_pd_wait>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MM_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        cpu-idle-states = <&cpu_pd_wait>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MM_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        cpu-idle-states = <&cpu_pd_wait>;
 
                A53_L2: l2-cache0 {
                        compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <0x80000>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
                };
        };
 
                                                <&clk IMX8MM_CLK_IPG_AUDIO_ROOT>,
                                                <&clk IMX8MM_SYS_PLL3>,
                                                <&clk IMX8MM_VIDEO_PLL1>,
-                                               <&clk IMX8MM_AUDIO_PLL1>,
-                                               <&clk IMX8MM_AUDIO_PLL2>;
+                                               <&clk IMX8MM_AUDIO_PLL1>;
                                assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_800M>,
                                                         <&clk IMX8MM_ARM_PLL_OUT>,
                                                         <&clk IMX8MM_SYS_PLL3_OUT>,
                                                        <400000000>,
                                                        <750000000>,
                                                        <594000000>,
-                                                       <393216000>,
-                                                       <361267200>;
+                                                       <393216000>;
                        };
 
                        src: reset-controller@30390000 {
                                fsl,num-rx-queues = <3>;
                                nvmem-cells = <&fec_mac_address>;
                                nvmem-cell-names = "mac-address";
-                               nvmem_macaddr_swap;
                                fsl,stop-mode = <&gpr 0x10 3>;
                                status = "disabled";
                        };
                        #size-cells = <1>;
                        ranges = <0x32c00000 0x32c00000 0x400000>;
 
+                       csi: csi@32e20000 {
+                               compatible = "fsl,imx8mm-csi", "fsl,imx7-csi";
+                               reg = <0x32e20000 0x1000>;
+                               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk IMX8MM_CLK_CSI1_ROOT>;
+                               clock-names = "mclk";
+                               power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_CSI_BRIDGE>;
+                               status = "disabled";
+
+                               port {
+                                       csi_in: endpoint {
+                                               remote-endpoint = <&imx8mm_mipi_csi_out>;
+                                       };
+                               };
+                       };
+
                        disp_blk_ctrl: blk-ctrl@32e28000 {
                                compatible = "fsl,imx8mm-disp-blk-ctrl", "syscon";
                                reg = <0x32e28000 0x100>;
                                #power-domain-cells = <1>;
                        };
 
+                       mipi_csi: mipi-csi@32e30000 {
+                               compatible = "fsl,imx8mm-mipi-csi2";
+                               reg = <0x32e30000 0x1000>;
+                               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                               assigned-clocks = <&clk IMX8MM_CLK_CSI1_CORE>,
+                                                 <&clk IMX8MM_CLK_CSI1_PHY_REF>;
+                               assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_1000M>,
+                                                         <&clk IMX8MM_SYS_PLL2_1000M>;
+                               clock-frequency = <333000000>;
+                               clocks = <&clk IMX8MM_CLK_DISP_APB_ROOT>,
+                                        <&clk IMX8MM_CLK_CSI1_ROOT>,
+                                        <&clk IMX8MM_CLK_CSI1_PHY_REF>,
+                                        <&clk IMX8MM_CLK_DISP_AXI_ROOT>;
+                               clock-names = "pclk", "wrap", "phy", "axi";
+                               power-domains = <&disp_blk_ctrl IMX8MM_DISPBLK_PD_MIPI_CSI>;
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               imx8mm_mipi_csi_out: endpoint {
+                                                       remote-endpoint = <&csi_in>;
+                                               };
+                                       };
+                               };
+                       };
+
                        usbotg1: usb@32e40000 {
                                compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb";
                                reg = <0x32e40000 0x200>;
index 376ca8f..0f40b43 100644 (file)
                compatible = "wlf,wm8962";
                reg = <0x1a>;
                clocks = <&clk IMX8MN_CLK_SAI3_ROOT>;
-               clock-names = "xclk";
                DCVDD-supply = <&reg_audio>;
                DBVDD-supply = <&reg_audio>;
                AVDD-supply = <&reg_audio>;
index 3b2d627..1133cde 100644 (file)
        bus-width = <4>;
        non-removable;
        cap-power-off-card;
-       pm-ignore-notify;
        keep-power-in-suspend;
        mmc-pwrseq = <&usdhc1_pwrseq>;
        status = "okay";
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
new file mode 100644 (file)
index 0000000..c11895d
--- /dev/null
@@ -0,0 +1,426 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2021 Collabora Ltd.
+ * Copyright 2021 BSH Hausgeraete GmbH
+ */
+
+/dts-v1/;
+
+#include "imx8mn.dtsi"
+
+/ {
+       chosen {
+               stdout-path = &uart4;
+       };
+
+       fec_supply: fec-supply-en {
+               compatible = "regulator-fixed";
+               vin-supply = <&buck4_reg>;
+               regulator-name = "tja1101_en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       usdhc2_pwrseq: usdhc2-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usdhc2_pwrseq>;
+               reset-gpios = <&gpio4 27 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&A53_1 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&A53_2 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&A53_3 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&ecspi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_espi2>;
+       status = "okay";
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy0>;
+       phy-supply = <&fec_supply>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <20>;
+                       reset-deassert-us = <2000>;
+               };
+       };
+};
+
+&i2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       bd71847: pmic@4b {
+               compatible = "rohm,bd71847";
+               reg = <0x4b>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+               rohm,reset-snvs-powered;
+
+               #clock-cells = <0>;
+               clocks = <&osc_32k 0>;
+               clock-output-names = "clk-32k-out";
+
+               regulators {
+                       buck1_reg: BUCK1 {
+                               /* PMIC_BUCK1 - VDD_SOC */
+                               regulator-name = "buck1";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <1250>;
+                       };
+
+                       buck2_reg: BUCK2 {
+                               /* PMIC_BUCK2 - VDD_ARM */
+                               regulator-name = "buck2";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <1250>;
+                       };
+
+                       buck3_reg: BUCK3 {
+                               /* PMIC_BUCK5 - VDD_DRAM_VPU_GPU */
+                               regulator-name = "buck3";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck4_reg: BUCK4 {
+                               /* PMIC_BUCK6 - VDD_3V3 */
+                               regulator-name = "buck4";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck5_reg: BUCK5 {
+                               /* PMIC_BUCK7 - VDD_1V8 */
+                               regulator-name = "buck5";
+                               regulator-min-microvolt = <1605000>;
+                               regulator-max-microvolt = <1995000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck6_reg: BUCK6 {
+                               /* PMIC_BUCK8 - NVCC_DRAM */
+                               regulator-name = "buck6";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo1_reg: LDO1 {
+                               /* PMIC_LDO1 - NVCC_SNVS_1V8 */
+                               regulator-name = "ldo1";
+                               regulator-min-microvolt = <1600000>;
+                               regulator-max-microvolt = <1900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo2_reg: LDO2 {
+                               /* PMIC_LDO2 - VDD_SNVS_0V8 */
+                               regulator-name = "ldo2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo3_reg: LDO3 {
+                               /* PMIC_LDO3 - VDDA_1V8 */
+                               regulator-name = "ldo3";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4_reg: LDO4 {
+                               /* PMIC_LDO4 - VDD_MIPI_0V9 */
+                               regulator-name = "ldo4";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo6_reg: LDO6 {
+                               /* PMIC_LDO6 - VDD_MIPI_1V2 */
+                               regulator-name = "ldo6";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+};
+
+&i2c4 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       assigned-clocks = <&clk IMX8MN_CLK_UART3>;
+       assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_80M>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_bluetooth>;
+               shutdown-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+               max-speed = <3000000>;
+       };
+};
+
+/* Console */
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "peripheral";
+       disable-over-current;
+       status = "okay";
+};
+
+&usdhc2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
+       mmc-pwrseq = <&usdhc2_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       brcmf: bcrmf@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_wlan>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+       };
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_bluetooth: bluetoothgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO15_GPIO1_IO15              0x044   /* BT_REG_ON */
+                       MX8MN_IOMUXC_ENET_TD3_GPIO1_IO18                0x046   /* BT_DEV_WAKE */
+                       MX8MN_IOMUXC_ENET_RD2_GPIO1_IO28                0x090   /* BT_HOST_WAKE */
+               >;
+       };
+
+       pinctrl_espi2: espi2grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK            0x082
+                       MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI            0x082
+                       MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO            0x082
+                       MX8MN_IOMUXC_ECSPI2_SS0_ECSPI2_SS0              0x040
+               >;
+       };
+
+       pinctrl_fec1: fec1grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ENET_MDC_ENET1_MDC                 0x002
+                       MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO               0x002
+                       MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x090
+                       MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x090
+                       MX8MN_IOMUXC_ENET_RXC_ENET1_RX_ER               0x090
+                       MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x016
+                       MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x016
+                       MX8MN_IOMUXC_ENET_TD2_ENET1_TX_CLK              0x016
+                       MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x016
+                       MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x090
+                       MX8MN_IOMUXC_ENET_TXC_ENET1_TX_ER               0x016
+                       MX8MN_IOMUXC_SD2_CD_B_GPIO2_IO12                0x150   /* RMII_INT - ENET_INT */
+                       MX8MN_IOMUXC_SD2_WP_GPIO2_IO20                  0x150   /* RMII_EN - ENET_EN */
+                       MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19             0x016   /* RMII_WAKE - GPIO_ENET_WAKE */
+                       MX8MN_IOMUXC_ENET_RD3_GPIO1_IO29                0x016   /* RMII_RESET - GPIO_ENET_RST */
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL                  0x400000c2
+                       MX8MN_IOMUXC_I2C1_SDA_I2C1_SDA                  0x400000c2
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C3_SCL_I2C3_SCL                  0x400000c2
+                       MX8MN_IOMUXC_I2C3_SDA_I2C3_SDA                  0x400000c2
+               >;
+       };
+
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C4_SCL_I2C4_SCL                  0x400000c2
+                       MX8MN_IOMUXC_I2C4_SDA_I2C4_SDA                  0x400000c2
+               >;
+       };
+
+       pinctrl_pmic: pmicirq {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO03_GPIO1_IO3               0x040
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX             0x040
+                       MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX             0x040
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_UART3_TXD_UART3_DCE_TX             0x040
+                       MX8MN_IOMUXC_UART3_RXD_UART3_DCE_RX             0x040
+                       MX8MN_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B        0x040
+                       MX8MN_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B         0x040
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_UART4_RXD_UART4_DCE_RX             0x040
+                       MX8MN_IOMUXC_UART4_TXD_UART4_DCE_TX             0x040
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK                 0x090
+                       MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD                 0x0d0
+                       MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x0d0
+                       MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x0d0
+                       MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x0d0
+                       MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x0d0
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK                 0x094
+                       MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD                 0x0d4
+                       MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x0d4
+                       MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x0d4
+                       MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x0d4
+                       MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x0d4
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK                 0x096
+                       MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD                 0x0d6
+                       MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x0d6
+                       MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x0d6
+                       MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x0d6
+                       MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x0d6
+               >;
+       };
+
+       pinctrl_usdhc2_pwrseq: usdhc2pwrseqgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SAI2_MCLK_GPIO4_IO27               0x040   /* WL_REG_ON */
+               >;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B            0x046
+               >;
+       };
+
+       pinctrl_wlan: wlangrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO00_GPIO1_IO0               0x0d6   /* GPIO_0 - WIFI_GPIO_0 */
+                       MX8MN_IOMUXC_GPIO1_IO08_GPIO1_IO8               0x0d6   /* GPIO_1 - WIFI_GPIO_1 */
+                       MX8MN_IOMUXC_GPIO1_IO04_GPIO1_IO4               0x0d6   /* BT_GPIO_5 - WIFI_GPIO_5 */
+                       MX8MN_IOMUXC_SPDIF_RX_GPIO5_IO4                 0x0d6   /* I2S_CLK - WIFI_GPIO_6 */
+               >;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2.dts
new file mode 100644 (file)
index 0000000..33f9858
--- /dev/null
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2021 Collabora Ltd.
+ * Copyright 2021 BSH Hausgeraete GmbH
+ */
+
+/dts-v1/;
+
+#include "imx8mn-bsh-smm-s2-common.dtsi"
+
+/ {
+       model = "BSH SMM S2";
+       compatible = "bsh,imx8mn-bsh-smm-s2", "fsl,imx8mn";
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0x0 0x40000000 0x0 0x10000000>;
+       };
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand>;
+       nand-on-flash-bbt;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_gpmi_nand: gpmi-nand {
+               fsl,pins = <
+                       MX8MN_IOMUXC_NAND_ALE_RAWNAND_ALE               0x00000096
+                       MX8MN_IOMUXC_NAND_CE0_B_RAWNAND_CE0_B           0x00000096
+                       MX8MN_IOMUXC_NAND_CLE_RAWNAND_CLE               0x00000096
+                       MX8MN_IOMUXC_NAND_DATA00_RAWNAND_DATA00         0x00000096
+                       MX8MN_IOMUXC_NAND_DATA01_RAWNAND_DATA01         0x00000096
+                       MX8MN_IOMUXC_NAND_DATA02_RAWNAND_DATA02         0x00000096
+                       MX8MN_IOMUXC_NAND_DATA03_RAWNAND_DATA03         0x00000096
+                       MX8MN_IOMUXC_NAND_DATA04_RAWNAND_DATA04         0x00000096
+                       MX8MN_IOMUXC_NAND_DATA05_RAWNAND_DATA05         0x00000096
+                       MX8MN_IOMUXC_NAND_DATA06_RAWNAND_DATA06         0x00000096
+                       MX8MN_IOMUXC_NAND_DATA07_RAWNAND_DATA07         0x00000096
+                       MX8MN_IOMUXC_NAND_RE_B_RAWNAND_RE_B             0x00000096
+                       MX8MN_IOMUXC_NAND_READY_B_RAWNAND_READY_B       0x00000056
+                       MX8MN_IOMUXC_NAND_WE_B_RAWNAND_WE_B             0x00000096
+                       MX8MN_IOMUXC_NAND_WP_B_RAWNAND_WP_B             0x00000096
+               >;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts
new file mode 100644 (file)
index 0000000..c6a8ed6
--- /dev/null
@@ -0,0 +1,80 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2021 Collabora Ltd.
+ * Copyright 2021 BSH Hausgeraete GmbH
+ */
+
+/dts-v1/;
+
+#include "imx8mn-bsh-smm-s2-common.dtsi"
+
+/ {
+       model = "BSH SMM S2 PRO";
+       compatible = "bsh,imx8mn-bsh-smm-s2pro", "fsl,imx8mn";
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0x0 0x40000000 0x0 0x20000000>;
+       };
+};
+
+/* eMMC */
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK                 0x40000090
+                       MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD                 0x0d0
+                       MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0             0x0d0
+                       MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1             0x0d0
+                       MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2             0x0d0
+                       MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3             0x0d0
+                       MX8MN_IOMUXC_SD1_DATA4_USDHC1_DATA4             0x0d0
+                       MX8MN_IOMUXC_SD1_DATA5_USDHC1_DATA5             0x0d0
+                       MX8MN_IOMUXC_SD1_DATA6_USDHC1_DATA6             0x0d0
+                       MX8MN_IOMUXC_SD1_DATA7_USDHC1_DATA7             0x0d0
+                       MX8MN_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x090
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK                 0x40000094
+                       MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD                 0x0d4
+                       MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0             0x0d4
+                       MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1             0x0d4
+                       MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2             0x0d4
+                       MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3             0x0d4
+                       MX8MN_IOMUXC_SD1_DATA4_USDHC1_DATA4             0x0d4
+                       MX8MN_IOMUXC_SD1_DATA5_USDHC1_DATA5             0x0d4
+                       MX8MN_IOMUXC_SD1_DATA6_USDHC1_DATA6             0x0d4
+                       MX8MN_IOMUXC_SD1_DATA7_USDHC1_DATA7             0x0d4
+                       MX8MN_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x094
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK                 0x40000096
+                       MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD                 0x0d6
+                       MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0             0x0d6
+                       MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1             0x0d6
+                       MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2             0x0d6
+                       MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3             0x0d6
+                       MX8MN_IOMUXC_SD1_DATA4_USDHC1_DATA4             0x0d6
+                       MX8MN_IOMUXC_SD1_DATA5_USDHC1_DATA5             0x0d6
+                       MX8MN_IOMUXC_SD1_DATA6_USDHC1_DATA6             0x0d6
+                       MX8MN_IOMUXC_SD1_DATA7_USDHC1_DATA7             0x0d6
+                       MX8MN_IOMUXC_SD1_STROBE_USDHC1_STROBE           0x096
+               >;
+       };
+};
index 85e65f8..c3f1519 100644 (file)
                ethphy0: ethernet-phy@0 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <0>;
+                       reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       qca,disable-smarteee;
+                       vddio-supply = <&vddio>;
+
+                       vddio: vddio-regulator {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
                };
        };
 };
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl-mba8mx.dts b/arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl-mba8mx.dts
new file mode 100644 (file)
index 0000000..3f1e49b
--- /dev/null
@@ -0,0 +1,237 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2020-2021 TQ-Systems GmbH
+ */
+
+/dts-v1/;
+
+#include "imx8mn-tqma8mqnl.dtsi"
+#include "mba8mx.dtsi"
+
+/ {
+       model = "TQ-Systems GmbH i.MX8MN TQMa8MxNL on MBa8Mx";
+       compatible = "tq,imx8mn-tqma8mqnl-mba8mx", "tq,imx8mn-tqma8mqnl", "fsl,imx8mn";
+
+       aliases {
+               eeprom0 = &eeprom3;
+               mmc0 = &usdhc3;
+               mmc1 = &usdhc2;
+               mmc2 = &usdhc1;
+               rtc0 = &pcf85063;
+               rtc1 = &snvs_rtc;
+       };
+
+       reg_usdhc2_vmmc: regulator-vmmc {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               off-on-delay-us = <12000>;
+       };
+};
+
+/* Located on TQMa8MxML-ADAP */
+&gpio2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb0hub_sel>;
+
+       sel-usb-hub-hog {
+               gpio-hog;
+               gpios = <1 GPIO_ACTIVE_HIGH>;
+               output-high;
+       };
+};
+
+&i2c1 {
+       expander2: gpio@27 {
+               compatible = "nxp,pca9555";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               vcc-supply = <&reg_vcc_3v3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_expander2>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+};
+
+&sai3 {
+       assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
+       assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
+       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
+       clocks = <&clk IMX8MN_CLK_SAI3_IPG>, <&clk IMX8MN_CLK_DUMMY>,
+                <&clk IMX8MN_CLK_SAI3_ROOT>, <&clk IMX8MN_CLK_DUMMY>,
+                <&clk IMX8MN_CLK_DUMMY>, <&clk IMX8MN_AUDIO_PLL1_OUT>,
+                <&clk IMX8MN_AUDIO_PLL2_OUT>;
+};
+
+&tlv320aic3x04 {
+       clock-names = "mclk";
+       clocks = <&clk IMX8MN_CLK_SAI3_ROOT>;
+};
+
+&usbotg1 {
+       dr_mode = "host";
+       disable-over-current;
+       power-active-high;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <MX8MN_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK        0x00000146>,
+                          <MX8MN_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI        0x00000146>,
+                          <MX8MN_IOMUXC_ECSPI1_MISO_ECSPI1_MISO        0x00000146>,
+                          <MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9           0x00000146>;
+       };
+
+       pinctrl_ecspi2: ecspi2grp {
+               fsl,pins = <MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK        0x00000146>,
+                          <MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI        0x00000146>,
+                          <MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO        0x00000146>,
+                          <MX8MN_IOMUXC_ECSPI2_SS0_GPIO5_IO13          0x00000146>;
+       };
+
+       pinctrl_expander2: expander2grp {
+               fsl,pins = <MX8MN_IOMUXC_GPIO1_IO09_GPIO1_IO9           0x94>;
+       };
+
+       pinctrl_fec1: fec1grp {
+               fsl,pins = <MX8MN_IOMUXC_ENET_MDC_ENET1_MDC             0x40000002>,
+                          <MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO           0x40000002>,
+                          <MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3       0x14>,
+                          <MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2       0x14>,
+                          <MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1       0x14>,
+                          <MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0       0x14>,
+                          <MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3       0x90>,
+                          <MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2       0x90>,
+                          <MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1       0x90>,
+                          <MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0       0x90>,
+                          <MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC       0x14>,
+                          <MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC       0x90>,
+                          <MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x90>,
+                          <MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x14>;
+       };
+
+       pinctrl_gpiobutton: gpiobuttongrp {
+               fsl,pins = <MX8MN_IOMUXC_GPIO1_IO05_GPIO1_IO5           0x84>,
+                          <MX8MN_IOMUXC_GPIO1_IO07_GPIO1_IO7           0x84>,
+                          <MX8MN_IOMUXC_SD1_CLK_GPIO2_IO0              0x84>;
+       };
+
+       pinctrl_gpioled: gpioledgrp {
+               fsl,pins = <MX8MN_IOMUXC_GPIO1_IO00_GPIO1_IO0           0x84>,
+                          <MX8MN_IOMUXC_NAND_DQS_GPIO3_IO14            0x84>;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL              0x400001C4>,
+                          <MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA              0x400001C4>;
+       };
+
+       pinctrl_i2c2_gpio: i2c2gpiogrp {
+               fsl,pins = <MX8MN_IOMUXC_I2C2_SCL_GPIO5_IO16            0x400001C4>,
+                          <MX8MN_IOMUXC_I2C2_SDA_GPIO5_IO17            0x400001C4>;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <MX8MN_IOMUXC_I2C3_SCL_I2C3_SCL              0x400001C4>,
+                          <MX8MN_IOMUXC_I2C3_SDA_I2C3_SDA              0x400001C4>;
+       };
+
+       pinctrl_i2c3_gpio: i2c3gpiogrp {
+               fsl,pins = <MX8MN_IOMUXC_I2C3_SCL_GPIO5_IO18            0x400001C4>,
+                          <MX8MN_IOMUXC_I2C3_SDA_GPIO5_IO19            0x400001C4>;
+       };
+
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <MX8MN_IOMUXC_GPIO1_IO14_PWM3_OUT            0x14>;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <MX8MN_IOMUXC_GPIO1_IO15_PWM4_OUT            0x14>;
+       };
+
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <MX8MN_IOMUXC_SAI3_MCLK_SAI3_MCLK            0x94>,
+                          <MX8MN_IOMUXC_SAI3_RXC_SAI3_RX_BCLK          0x94>,
+                          <MX8MN_IOMUXC_SAI3_RXFS_SAI3_RX_SYNC         0x94>,
+                          <MX8MN_IOMUXC_SAI3_RXD_SAI3_RX_DATA0         0x94>,
+                          <MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC         0x94>,
+                          <MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0         0x94>,
+                          <MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK          0x94>;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <MX8MN_IOMUXC_UART1_RXD_UART1_DCE_RX         0x16>,
+                          <MX8MN_IOMUXC_UART1_TXD_UART1_DCE_TX         0x16>;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX         0x16>,
+                          <MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX         0x16>;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <MX8MN_IOMUXC_UART3_RXD_UART3_DCE_RX         0x16>,
+                          <MX8MN_IOMUXC_UART3_TXD_UART3_DCE_TX         0x16>;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <MX8MN_IOMUXC_UART4_RXD_UART4_DCE_RX         0x16>,
+                          <MX8MN_IOMUXC_UART4_TXD_UART4_DCE_TX         0x16>;
+       };
+
+       pinctrl_usb0hub_sel: usb0hub-selgrp {
+               /* SEL_USB_HUB_B */
+               fsl,pins = <MX8MN_IOMUXC_SD1_CMD_GPIO2_IO1              0x84>;
+       };
+
+       pinctrl_usbotg: usbotggrp {
+               fsl,pins = <MX8MN_IOMUXC_GPIO1_IO12_USB1_OTG_PWR        0x84>,
+                          <MX8MN_IOMUXC_GPIO1_IO13_USB1_OTG_OC         0x84>,
+                          <MX8MN_IOMUXC_GPIO1_IO10_USB1_OTG_ID         0x1C4>;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK             0x1d4>,
+                          <MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD             0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
+                          <MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK             0x1d4>,
+                          <MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD             0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
+                          <MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK             0x1d4>,
+                          <MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD             0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
+                          <MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
+                          <MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
+               fsl,pins = <MX8MN_IOMUXC_SD2_CD_B_GPIO2_IO12            0x84>;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl.dtsi
new file mode 100644 (file)
index 0000000..9ea2894
--- /dev/null
@@ -0,0 +1,322 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2020-2021 TQ-Systems GmbH
+ */
+
+#include "imx8mn.dtsi"
+
+/ {
+       model = "TQ-Systems i.MX8MN TQMa8MxNL";
+       compatible = "tq,imx8mn-tqma8mqnl", "fsl,imx8mn";
+
+       memory@40000000 {
+               device_type = "memory";
+               /*  our minimum RAM config will be 1024 MiB */
+               reg = <0x00000000 0x40000000 0 0x40000000>;
+       };
+
+       /* e-MMC IO, needed for HS modes */
+       reg_vcc1v8: regulator-vcc1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "TQMA8MXNL_VCC1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       reg_vcc3v3: regulator-vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "TQMA8MXNL_VCC3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       /* 640 MiB */
+                       size = <0 0x28000000>;
+                       /*  1024 - 128 MiB, our minimum RAM config will be 1024 MiB */
+                       alloc-ranges = <0 0x40000000 0 0x78000000>;
+                       linux,cma-default;
+               };
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&flexspi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexspi>;
+       status = "okay";
+
+       flash0: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <84000000>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>;
+       };
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       sensor0: temperature-sensor-eeprom@1b {
+               compatible = "nxp,se97", "jedec,jc-42.4-temp";
+               reg = <0x1b>;
+       };
+
+       pca9450: pmic@25 {
+               compatible = "nxp,pca9450a";
+               reg = <0x25>;
+
+               /* PMIC PCA9450 PMIC_nINT GPIO1_IO08 */
+               pinctrl-0 = <&pinctrl_pmic>;
+               pinctrl-names = "default";
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       /* V_0V85_SOC: 0.85 .. 0.95 */
+                       buck1_reg: BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       /* VDD_ARM */
+                       buck2_reg: BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               nxp,dvs-run-voltage = <950000>;
+                               nxp,dvs-standby-voltage = <850000>;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       /* V_0V85_GPU / DRAM: shall be equal to BUCK1 for i.MX8MN */
+                       buck3_reg: BUCK3 {
+                               regulator-name = "BUCK3";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       /* VCC3V3 -> VMMC, ... must not be changed */
+                       buck4_reg: BUCK4 {
+                               regulator-name = "BUCK4";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V8 -> VQMMC, SPI-NOR, ... must not be changed */
+                       buck5_reg: BUCK5 {
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V1 -> RAM, ... must not be changed */
+                       buck6_reg: BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V8_SNVS */
+                       ldo1_reg: LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_0V8_SNVS */
+                       ldo2_reg: LDO2 {
+                               regulator-name = "LDO2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_1V8_ANA */
+                       ldo3_reg: LDO3 {
+                               regulator-name = "LDO3";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* V_0V9_MIPI */
+                       ldo4_reg: LDO4 {
+                               regulator-name = "LDO4";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* VCC SD IO - switched using SD2 VSELECT */
+                       ldo5_reg: LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+       };
+
+       pcf85063: rtc@51 {
+               compatible = "nxp,pcf85063a";
+               reg = <0x51>;
+               quartz-load-femtofarads = <7000>;
+       };
+
+       eeprom1: eeprom@53 {
+               compatible = "nxp,se97b", "atmel,24c02";
+               read-only;
+               reg = <0x53>;
+               pagesize = <16>;
+       };
+
+       eeprom0: eeprom@57 {
+               compatible = "atmel,24c64";
+               reg = <0x57>;
+               pagesize = <32>;
+       };
+};
+
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       no-sd;
+       no-sdio;
+       vmmc-supply = <&reg_vcc3v3>;
+       vqmmc-supply = <&reg_vcc1v8>;
+       status = "okay";
+};
+
+/*
+ * Attention:
+ * wdog reset is routed to PMIC, PMIC must be preconfigured to force POR
+ * without LDO for SNVS. GPIO1_IO02 must not be used as GPIO.
+ */
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_flexspi: flexspigrp {
+               fsl,pins = <MX8MN_IOMUXC_NAND_ALE_QSPI_A_SCLK           0x84>,
+                          <MX8MN_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B        0x84>,
+                          <MX8MN_IOMUXC_NAND_DATA00_QSPI_A_DATA0       0x84>,
+                          <MX8MN_IOMUXC_NAND_DATA01_QSPI_A_DATA1       0x84>,
+                          <MX8MN_IOMUXC_NAND_DATA02_QSPI_A_DATA2       0x84>,
+                          <MX8MN_IOMUXC_NAND_DATA03_QSPI_A_DATA3       0x84>;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL              0x400001c4>,
+                          <MX8MN_IOMUXC_I2C1_SDA_I2C1_SDA              0x400001c4>;
+       };
+
+       pinctrl_i2c1_gpio: i2c1gpiogrp {
+               fsl,pins = <MX8MN_IOMUXC_I2C1_SCL_GPIO5_IO14    0x400001c4>,
+                          <MX8MN_IOMUXC_I2C1_SDA_GPIO5_IO15    0x400001c4>;
+       };
+
+       pinctrl_pmic: pmicgrp {
+               fsl,pins = <MX8MN_IOMUXC_GPIO1_IO08_GPIO1_IO8   0x84>;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19         0x84>;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK           0x1d4>,
+                          <MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD           0x1d2>,
+                          <MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4         0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5        0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6        0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7          0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE       0x84>,
+                          <MX8MN_IOMUXC_NAND_READY_B_USDHC3_RESET_B    0x84>;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK           0x1d2>,
+                          <MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD           0x1d2>,
+                          <MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4         0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5        0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6        0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7          0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE       0x84>,
+                          <MX8MN_IOMUXC_NAND_READY_B_USDHC3_RESET_B    0x84>;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK           0x1d6>,
+                          <MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD           0x1d2>,
+                          <MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3       0x1d4>,
+                          <MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4         0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5        0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6        0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7          0x1d4>,
+                          <MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE       0x84>,
+                          <MX8MN_IOMUXC_NAND_READY_B_USDHC3_RESET_B    0x84>;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B        0x84>;
+       };
+};
index da6c942..b8d49d5 100644 (file)
                        clock-latency = <61036>;
                        clocks = <&clk IMX8MN_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        nvmem-cells = <&cpu_speed_grade>;
                        clock-latency = <61036>;
                        clocks = <&clk IMX8MN_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        cpu-idle-states = <&cpu_pd_wait>;
                        clock-latency = <61036>;
                        clocks = <&clk IMX8MN_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        cpu-idle-states = <&cpu_pd_wait>;
                        clock-latency = <61036>;
                        clocks = <&clk IMX8MN_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        cpu-idle-states = <&cpu_pd_wait>;
 
                A53_L2: l2-cache0 {
                        compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <0x80000>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
                };
        };
 
                                fsl,num-rx-queues = <3>;
                                nvmem-cells = <&fec_mac_address>;
                                nvmem-cell-names = "mac-address";
-                               nvmem_macaddr_swap;
                                fsl,stop-mode = <&gpr 0x10 3>;
                                status = "disabled";
                        };
index 7b99fad..2eb9432 100644 (file)
@@ -86,6 +86,9 @@
        pinctrl-0 = <&pinctrl_eqos>;
        phy-mode = "rgmii-id";
        phy-handle = <&ethphy0>;
+       snps,force_thresh_dma_mode;
+       snps,mtl-tx-config = <&mtl_tx_setup>;
+       snps,mtl-rx-config = <&mtl_rx_setup>;
        status = "okay";
 
        mdio {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <1>;
                        eee-broken-1000t;
+                       reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
+                       realtek,clkout-disable;
+               };
+       };
+
+       mtl_tx_setup: tx-queues-config {
+               snps,tx-queues-to-use = <5>;
+               snps,tx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x1>;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x2>;
+               };
+
+               queue2 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x4>;
+               };
+
+               queue3 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x8>;
+               };
+
+               queue4 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0xf0>;
+               };
+       };
+
+       mtl_rx_setup: rx-queues-config {
+               snps,rx-queues-to-use = <5>;
+               snps,rx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x1>;
+                       snps,map-to-dma-channel = <0>;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x2>;
+                       snps,map-to-dma-channel = <1>;
+               };
+
+               queue2 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x4>;
+                       snps,map-to-dma-channel = <2>;
+               };
+
+               queue3 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x8>;
+                       snps,map-to-dma-channel = <3>;
+               };
+
+               queue4 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0xf0>;
+                       snps,map-to-dma-channel = <4>;
                };
        };
 };
                        reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
                        reset-assert-us = <10000>;
                        reset-deassert-us = <80000>;
+                       realtek,clkout-disable;
                };
        };
 };
index 04d259d..6b840c0 100644 (file)
                        clock-latency = <61036>;
                        clocks = <&clk IMX8MP_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        #cooling-cells = <2>;
                };
                        clock-latency = <61036>;
                        clocks = <&clk IMX8MP_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        #cooling-cells = <2>;
                };
                        clock-latency = <61036>;
                        clocks = <&clk IMX8MP_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        #cooling-cells = <2>;
                };
                        clock-latency = <61036>;
                        clocks = <&clk IMX8MP_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        #cooling-cells = <2>;
                };
 
                A53_L2: l2-cache0 {
                        compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <0x80000>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
                };
        };
 
                                eth_mac1: mac-address@90 {
                                        reg = <0x90 6>;
                                };
+
+                               eth_mac2: mac-address@96 {
+                                       reg = <0x96 6>;
+                               };
                        };
 
                        anatop: anatop@30360000 {
                                nvmem-cells = <&eth_mac1>;
                                nvmem-cell-names = "mac-address";
                                fsl,stop-mode = <&gpr 0x10 3>;
-                               nvmem_macaddr_swap;
                                status = "disabled";
                        };
 
                                                         <&clk IMX8MP_SYS_PLL2_100M>,
                                                         <&clk IMX8MP_SYS_PLL2_125M>;
                                assigned-clock-rates = <0>, <100000000>, <125000000>;
+                               nvmem-cells = <&eth_mac2>;
+                               nvmem-cell-names = "mac-address";
                                intf_mode = <&gpr 0x4>;
                                status = "disabled";
                        };
index b83df77..a1b7582 100644 (file)
                        reg = <0>;
                        reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
                        reset-assert-us = <10000>;
+                       qca,disable-smarteee;
+                       vddio-supply = <&vddh>;
+
+                       vddh: vddh-regulator {
+                       };
                };
        };
 };
        power-supply = <&sw1a_reg>;
 };
 
+&pgc_vpu {
+       power-supply = <&sw1c_reg>;
+};
+
 &qspi0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_qspi>;
index cd3c3ed..4533a84 100644 (file)
@@ -1,14 +1,9 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-// Copyright (C) 2020 Purism SPC <kernel@puri.sm>
+// Copyright (C) 2021 Purism SPC <kernel@puri.sm>
 
 /dts-v1/;
 
-#include "imx8mq-librem5.dtsi"
-
-/ {
-       model = "Purism Librem 5r3";
-       compatible = "purism,librem5r3", "purism,librem5", "fsl,imx8mq";
-};
+#include "imx8mq-librem5-r3.dtsi"
 
 &a53_opp_table {
        opp-1000000000 {
        };
 };
 
-&accel_gyro {
-       mount-matrix =  "1",  "0",  "0",
-                       "0",  "1",  "0",
-                       "0",  "0", "-1";
-};
-
-&bq25895 {
-       ti,battery-regulation-voltage = <4200000>; /* uV */
-       ti,charge-current = <1500000>; /* uA */
-       ti,termination-current = <144000>;  /* uA */
-};
-
 &buck3_reg {
        regulator-always-on;
 };
-
-&proximity {
-       proximity-near-level = <25>;
-};
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dtsi b/arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dtsi
new file mode 100644 (file)
index 0000000..e4f8b47
--- /dev/null
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+// Copyright (C) 2021 Purism SPC <kernel@puri.sm>
+
+/dts-v1/;
+
+/*
+ * This file describes hardware that is shared among r3 ("Dogwood") and
+ * later revisions of the Librem 5 so it has to be included in dts there.
+ */
+
+#include "imx8mq-librem5.dtsi"
+
+/ {
+       model = "Purism Librem 5r3";
+       compatible = "purism,librem5r3", "purism,librem5", "fsl,imx8mq";
+};
+
+&accel_gyro {
+       mount-matrix =  "1",  "0",  "0",
+                       "0",  "1",  "0",
+                       "0",  "0", "-1";
+};
+
+&bq25895 {
+       ti,battery-regulation-voltage = <4200000>; /* uV */
+       ti,charge-current = <1500000>; /* uA */
+       ti,termination-current = <144000>;  /* uA */
+};
+
+&camera_front {
+       pinctrl-0 = <&pinctrl_csi1>, <&pinctrl_r3_camera_pwr>;
+       shutdown-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
+};
+
+&iomuxc {
+       pinctrl_r3_camera_pwr: r3camerapwrgrp {
+               fsl,pins = <
+                       MX8MQ_IOMUXC_SPDIF_RX_GPIO5_IO4         0x83
+               >;
+       };
+};
+
+&proximity {
+       proximity-near-level = <25>;
+};
index cbfb49a..30d65be 100644 (file)
@@ -1,31 +1,19 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-// Copyright (C) 2020 Purism SPC <kernel@puri.sm>
+// Copyright (C) 2021 Purism SPC <kernel@puri.sm>
 
 /dts-v1/;
 
-#include "imx8mq-librem5.dtsi"
+#include "imx8mq-librem5-r3.dtsi"
 
 / {
        model = "Purism Librem 5r4";
        compatible = "purism,librem5r4", "purism,librem5", "fsl,imx8mq";
 };
 
-&accel_gyro {
-       mount-matrix =  "1",  "0",  "0",
-                       "0",  "1",  "0",
-                       "0",  "0", "-1";
-};
-
 &bat {
        maxim,rsns-microohm = <1667>;
 };
 
-&bq25895 {
-       ti,battery-regulation-voltage = <4200000>; /* uV */
-       ti,charge-current = <1500000>; /* uA */
-       ti,termination-current = <144000>;  /* uA */
-};
-
 &led_backlight {
        led-max-microamp = <25000>;
 };
index 60d47c7..f3e3418 100644 (file)
@@ -14,6 +14,7 @@
 / {
        model = "Purism Librem 5";
        compatible = "purism,librem5", "fsl,imx8mq";
+       chassis-type = "handset";
 
        backlight_dsi: backlight-dsi {
                compatible = "led-backlight";
                enable-active-high;
        };
 
+       /*
+        * the pinctrl for reg_csi_1v8 and reg_vcam_1v8 is added to the PMIC
+        * since we can't have it twice in the 2 different regulator nodes.
+        */
+       reg_csi_1v8: regulator-csi-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "CAMERA_VDDIO_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&reg_vdd_3v3>;
+               gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       /* controlled by the CAMERA_POWER_KEY HKS */
+       reg_vcam_1v2: regulator-vcam-1v2 {
+               compatible = "regulator-fixed";
+               regulator-name = "CAMERA_VDDD_1V2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&reg_vdd_1v8>;
+               enable-active-high;
+       };
+
+       reg_vcam_2v8: regulator-vcam-2v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "CAMERA_VDDA_2V8";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               vin-supply = <&reg_vdd_3v3>;
+               gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        reg_gnss: regulator-gnss {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
        cpu-supply = <&buck2_reg>;
 };
 
+&csi1 {
+       status = "okay";
+};
+
 &ddrc {
        operating-points-v2 = <&ddrc_opp_table>;
 
                >;
        };
 
+       pinctrl_camera_pwr: camerapwrgrp {
+               fsl,pins = <
+                       /* CAMERA_PWR_EN_3V3 */
+                       MX8MQ_IOMUXC_GPIO1_IO00_GPIO1_IO0       0x83
+               >;
+       };
+
+       pinctrl_csi1: csi1grp {
+               fsl,pins = <
+                       /* CSI1_NRST */
+                       MX8MQ_IOMUXC_ENET_RXC_GPIO1_IO25        0x83
+               >;
+       };
+
        pinctrl_charger_in: chargeringrp {
                fsl,pins = <
                        /* CHRG_INT */
                compatible = "rohm,bd71837";
                reg = <0x4b>;
                pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_pmic>;
+               pinctrl-0 = <&pinctrl_pmic>, <&pinctrl_camera_pwr>;
                clocks = <&pmic_osc>;
                clock-names = "osc";
                clock-output-names = "pmic_clk";
                >;
        };
 
+       camera_front: camera@20 {
+               compatible = "hynix,hi846";
+               reg = <0x20>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_csi1>;
+               clocks = <&clk IMX8MQ_CLK_CLKO2>;
+               assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>;
+               assigned-clock-rates = <25000000>;
+               reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+               vdda-supply = <&reg_vcam_2v8>;
+               vddd-supply = <&reg_vcam_1v2>;
+               vddio-supply = <&reg_csi_1v8>;
+               rotation = <90>;
+               orientation = <0>;
+
+               port {
+                       camera1_ep: endpoint {
+                               data-lanes = <1 2>;
+                               link-frequencies = /bits/ 64
+                                       <80000000 200000000 300000000>;
+                               remote-endpoint = <&mipi1_sensor_ep>;
+                       };
+               };
+       };
+
        backlight@36 {
                compatible = "ti,lm36922";
                reg = <0x36>;
        status = "okay";
 };
 
+&mipi_csi1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       mipi1_sensor_ep: endpoint {
+                               remote-endpoint = <&camera1_ep>;
+                               data-lanes = <1 2>;
+                       };
+               };
+       };
+};
+
 &mipi_dsi {
        #address-cells = <1>;
        #size-cells = <0>;
index 4f2db61..fa721a1 100644 (file)
@@ -12,6 +12,7 @@
 / {
        model = "MNT Reform 2";
        compatible = "mntre,reform2", "boundary,imx8mq-nitrogen8m-som", "fsl,imx8mq";
+       chassis-type = "laptop";
 
        pcie1_refclk: clock-pcie1-refclk {
                compatible = "fixed-clock";
index 36fc428..395f77b 100644 (file)
@@ -69,6 +69,9 @@
                        reg = <4>;
                        interrupt-parent = <&gpio1>;
                        interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <300>;
                };
        };
 };
                        MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x1f
                        MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x1f
                        MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x91
-                       MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x91
+                       MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0xd1
                        MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x91
                        MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x91
                        MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x91
-                       MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x91
-                       MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9               0x19
-                       MX8MQ_IOMUXC_GPIO1_IO11_GPIO1_IO11              0x59
+                       MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0xd1
+                       MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9               0x1
+                       MX8MQ_IOMUXC_GPIO1_IO11_GPIO1_IO11              0x41
                >;
        };
 
        pinctrl_i2c1: i2c1grp {
                fsl,pins = <
-                       MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL                  0x4000007f
-                       MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA                  0x4000007f
+                       MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL                  0x40000022
+                       MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA                  0x40000022
                >;
        };
 
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-tqma8mq-mba8mx.dts b/arch/arm64/boot/dts/freescale/imx8mq-tqma8mq-mba8mx.dts
new file mode 100644 (file)
index 0000000..d7660ea
--- /dev/null
@@ -0,0 +1,349 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2019-2021 TQ-Systems GmbH
+ */
+
+/dts-v1/;
+
+#include "imx8mq-tqma8mq.dtsi"
+#include "mba8mx.dtsi"
+
+/ {
+       model = "TQ-Systems GmbH i.MX8MQ TQMa8MQ on MBa8Mx";
+       compatible = "tq,imx8mq-tqma8mq-mba8mx", "tq,imx8mq-tqma8mq", "fsl,imx8mq";
+
+       aliases {
+               eeprom0 = &eeprom3;
+               mmc0 = &usdhc1;
+               mmc1 = &usdhc2;
+               rtc0 = &pcf85063;
+               rtc1 = &snvs_rtc;
+       };
+
+       extcon_usbotg: extcon-usbotg0 {
+               compatible = "linux,extcon-usb-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbcon0>;
+               id-gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+       };
+
+       pcie0_refclk: pcie0-refclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+       };
+
+       pcie1_refclk: pcie1-refclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+       };
+
+       reg_otg_vbus: regulator-otg-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_regotgvbus>;
+               regulator-name = "MBA8MQ_OTG_VBUS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usdhc2_vmmc: regulator-vmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&btn2 {
+       gpios = <&gpio3 17 GPIO_ACTIVE_LOW>;
+};
+
+&gpio_leds {
+       led3 {
+               label = "led3";
+               gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&i2c1 {
+       expander2: gpio@25 {
+               compatible = "nxp,pca9555";
+               reg = <0x25>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               vcc-supply = <&reg_vcc_3v3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_expander>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               mpcie-rst-hog {
+                       gpio-hog;
+                       gpios = <13 0>;
+                       output-high;
+                       line-name = "MPCIE_RST#";
+               };
+       };
+};
+
+&irqsteer {
+       status = "okay";
+};
+
+&led2 {
+       gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+};
+
+&pcie0 {
+       reset-gpio = <&expander0 14 GPIO_ACTIVE_LOW>;
+       clocks = <&clk IMX8MQ_CLK_PCIE1_ROOT>,
+                <&clk IMX8MQ_CLK_PCIE1_AUX>,
+                <&clk IMX8MQ_CLK_PCIE1_PHY>,
+                <&pcie0_refclk>;
+       clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+       epdev_on-supply = <&reg_vcc_3v3>;
+       hard-wired = <1>;
+       status = "okay";
+};
+
+/*
+ * miniPCIe, also usable for cards with USB. Therefore configure the reset as
+ * static gpio hog.
+ */
+&pcie1 {
+       clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>,
+                <&clk IMX8MQ_CLK_PCIE2_AUX>,
+                <&clk IMX8MQ_CLK_PCIE2_PHY>,
+                <&pcie1_refclk>;
+       clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+       epdev_on-supply = <&reg_vcc_3v3>;
+       hard-wired = <1>;
+       status = "okay";
+};
+
+&sai3 {
+       assigned-clocks = <&clk IMX8MQ_CLK_SAI3>;
+       assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
+       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
+       clocks = <&clk IMX8MQ_CLK_SAI3_IPG>, <&clk IMX8MQ_CLK_DUMMY>,
+               <&clk IMX8MQ_CLK_SAI3_ROOT>, <&clk IMX8MQ_CLK_DUMMY>,
+               <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_AUDIO_PLL1_OUT>,
+               <&clk IMX8MQ_AUDIO_PLL2_OUT>;
+};
+
+&tlv320aic3x04 {
+       clock-names = "mclk";
+       clocks = <&clk IMX8MQ_CLK_SAI3_ROOT>;
+};
+
+&uart1 {
+       assigned-clocks = <&clk IMX8MQ_CLK_UART1>;
+       assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
+};
+
+&uart2 {
+       assigned-clocks = <&clk IMX8MQ_CLK_UART2>;
+       assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
+};
+
+/* console */
+&uart3 {
+       assigned-clocks = <&clk IMX8MQ_CLK_UART3>;
+       assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
+};
+
+&usb3_phy0 {
+       vbus-supply = <&reg_otg_vbus>;
+       status = "okay";
+};
+
+&usb_dwc3_0 {
+       /* we implement dual role but not full featured OTG */
+       extcon = <&extcon_usbotg>;
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       /* OC not supported due to non matching active polarity */
+       disable-over-current;
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb3_phy1 {
+       status = "okay";
+};
+
+&usb_dwc3_1 {
+       status = "okay";
+       dr_mode = "host";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <MX8MQ_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK        0x0000004e>,
+                          <MX8MQ_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI        0x0000004e>,
+                          <MX8MQ_IOMUXC_ECSPI1_MISO_ECSPI1_MISO        0x0000004e>,
+                          <MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9           0x0000004e>;
+       };
+
+       pinctrl_ecspi2: ecspi2grp {
+               fsl,pins = <MX8MQ_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK        0x0000004e>,
+                          <MX8MQ_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI        0x0000004e>,
+                          <MX8MQ_IOMUXC_ECSPI2_MISO_ECSPI2_MISO        0x0000004e>,
+                          <MX8MQ_IOMUXC_ECSPI2_SS0_GPIO5_IO13          0x0000004e>;
+       };
+
+       pinctrl_expander: expandergrp {
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9           0xd6>;
+       };
+
+       pinctrl_fec1: fec1grp {
+               fsl,pins = <MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC             0x3>,
+                          <MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO           0x23>,
+                          <MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3       0x1f>,
+                          <MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2       0x1f>,
+                          <MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1       0x1f>,
+                          <MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0       0x1f>,
+                          <MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3       0x91>,
+                          <MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2       0x91>,
+                          <MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1       0x91>,
+                          <MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0       0x91>,
+                          <MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC       0x1f>,
+                          <MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC       0x91>,
+                          <MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL 0x91>,
+                          <MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL 0x1f>;
+       };
+
+       pinctrl_gpiobutton: gpiobuttongrp {
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5           0x41>,
+                          <MX8MQ_IOMUXC_GPIO1_IO07_GPIO1_IO7           0x41>,
+                          <MX8MQ_IOMUXC_NAND_WE_B_GPIO3_IO17           0x41>;
+       };
+
+       pinctrl_gpioled: gpioledgrp {
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO00_GPIO1_IO0           0x41>,
+                          <MX8MQ_IOMUXC_GPIO1_IO08_GPIO1_IO8           0x41>,
+                          <MX8MQ_IOMUXC_NAND_READY_B_GPIO3_IO16        0x41>;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL              0x40000067>,
+                          <MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA              0x40000067>;
+       };
+
+       pinctrl_i2c2_gpio: i2c2gpiogrp {
+               fsl,pins = <MX8MQ_IOMUXC_I2C2_SCL_GPIO5_IO16            0x40000067>,
+                          <MX8MQ_IOMUXC_I2C2_SDA_GPIO5_IO17            0x40000067>;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL              0x40000067>,
+                          <MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA              0x40000067>;
+       };
+
+       pinctrl_i2c3_gpio: i2c3gpiogrp {
+               fsl,pins = <MX8MQ_IOMUXC_I2C3_SCL_GPIO5_IO18            0x40000067>,
+                          <MX8MQ_IOMUXC_I2C3_SDA_GPIO5_IO19            0x40000067>;
+       };
+
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO14_PWM3_OUT            0x16>;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO15_PWM4_OUT            0x16>;
+       };
+
+       pinctrl_regotgvbus: reggotgvbusgrp {
+               /* USB1 OTG PWR as GPIO */
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12          0x06>;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19         0xc1>;
+       };
+
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <MX8MQ_IOMUXC_SAI3_MCLK_SAI3_MCLK            0xd6>,
+                          <MX8MQ_IOMUXC_SAI3_RXC_SAI3_RX_BCLK          0xd6>,
+                          <MX8MQ_IOMUXC_SAI3_RXFS_SAI3_RX_SYNC         0xd6>,
+                          <MX8MQ_IOMUXC_SAI3_RXD_SAI3_RX_DATA0         0xd6>,
+                          <MX8MQ_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC         0xd6>,
+                          <MX8MQ_IOMUXC_SAI3_TXD_SAI3_TX_DATA0         0xd6>,
+                          <MX8MQ_IOMUXC_SAI3_TXC_SAI3_TX_BCLK          0xd6>;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX         0x79>,
+                          <MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX         0x79>;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX         0x79>,
+                          <MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX         0x79>;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX         0x79>,
+                          <MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX         0x79>;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <MX8MQ_IOMUXC_UART4_RXD_UART4_DCE_RX         0x79>,
+                          <MX8MQ_IOMUXC_UART4_TXD_UART4_DCE_TX         0x79>;
+       };
+
+       pinctrl_usbcon0: usb0congrp {
+               /* ID: floating / high: device, low: host -> use PU */
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO10_GPIO1_IO10          0xe6>;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK             0x83>,
+                          <MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD             0xc3>,
+                          <MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0         0xc3>,
+                          <MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1         0xc3>,
+                          <MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2         0xc3>,
+                          <MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3         0xc3>,
+                          <MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0xc1>;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK             0x85>,
+                          <MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD             0xc5>,
+                          <MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0         0xc5>,
+                          <MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1         0xc5>,
+                          <MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2         0xc5>,
+                          <MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3         0xc5>,
+                          <MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0xc1>;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK             0x9f>,
+                          <MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD             0xc7>,
+                          <MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0         0xc7>,
+                          <MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1         0xc7>,
+                          <MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2         0xc7>,
+                          <MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3         0xc7>,
+                          <MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0xc1>;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
+               fsl,pins = <MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12            0x41>;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi
new file mode 100644 (file)
index 0000000..8aedcdd
--- /dev/null
@@ -0,0 +1,360 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2019-2021 TQ-Systems GmbH
+ */
+
+#include "imx8mq.dtsi"
+
+/ {
+       model = "TQ-Systems GmbH i.MX8MQ TQMa8MQ";
+       compatible = "tq,imx8mq-tqma8mq", "fsl,imx8mq";
+
+       memory@40000000 {
+               device_type = "memory";
+               /*  our minimum RAM config will be 1024 MiB */
+               reg = <0x00000000 0x40000000 0 0x40000000>;
+       };
+
+       /* e-MMC IO, needed for HS modes */
+       reg_vcc1v8: regulator-vcc1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "TQMA8MX_VCC1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       reg_vcc3v3: regulator-vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "TQMA8MX_VCC3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_vdd_arm: regulator-vdd-arm {
+               compatible = "regulator-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_dvfs>;
+               regulator-min-microvolt = <900000>;
+               regulator-max-microvolt = <1000000>;
+               regulator-name = "TQMa8Mx_DVFS";
+               regulator-type = "voltage";
+               regulator-settling-time-us = <150000>;
+               gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+               states = <900000 0x1 1000000 0x0>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       /* 640 MiB */
+                       size = <0 0x28000000>;
+                       /*  1024 - 128 MiB, our minimum RAM config will be 1024 MiB */
+                       alloc-ranges = <0 0x40000000 0 0x78000000>;
+                       linux,cma-default;
+               };
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&reg_vdd_arm>;
+};
+
+&A53_1 {
+       cpu-supply = <&reg_vdd_arm>;
+};
+
+&A53_2 {
+       cpu-supply = <&reg_vdd_arm>;
+};
+
+&A53_3 {
+       cpu-supply = <&reg_vdd_arm>;
+};
+
+&gpu {
+       status = "okay";
+};
+
+&pgc_gpu {
+       power-supply = <&sw1a_reg>;
+};
+
+&pgc_vpu {
+       power-supply = <&sw1c_reg>;
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       pfuze100: pmic@8 {
+               compatible = "fsl,pfuze100";
+               fsl,pfuze-support-disable-sw;
+               reg = <0x8>;
+
+               regulators {
+                       /* VDD_GPU */
+                       sw1a_reg: sw1ab {
+                               regulator-min-microvolt = <825000>;
+                               regulator-max-microvolt = <1100000>;
+                       };
+
+                       /* VDD_VPU */
+                       sw1c_reg: sw1c {
+                               regulator-min-microvolt = <825000>;
+                               regulator-max-microvolt = <1100000>;
+                       };
+
+                       /* NVCC_DRAM */
+                       sw2_reg: sw2 {
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_DRAM */
+                       sw3a_reg: sw3ab {
+                               regulator-min-microvolt = <825000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                       };
+
+                       /* 1.8 V for QSPI NOR, e-MMC IO, must not be changed */
+                       nvcc_1v8_reg: sw4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+
+                       swbst_reg: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                       };
+
+                       snvs_reg: vsnvs {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                       };
+
+                       vref_reg: vrefddr {
+                               regulator-always-on;
+                       };
+
+                       /* not used */
+                       vgen1_reg: vgen1 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                       };
+
+                       /* VDD_PHY_0V9 */
+                       vgen2_reg: vgen2 {
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <975000>;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_PHY_1V8 */
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1675000>;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-always-on;
+                       };
+
+                       /* VDDA_1V8 */
+                       vgen4_reg: vgen4 {
+                               regulator-min-microvolt = <1625000>;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-always-on;
+                       };
+
+                       /* VDD_PHY_3V3 */
+                       vgen5_reg: vgen5 {
+                               regulator-min-microvolt = <3075000>;
+                               regulator-max-microvolt = <3625000>;
+                               regulator-always-on;
+                       };
+
+                       /* not used */
+                       vgen6_reg: vgen6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+       };
+
+       sensor0: temperature-sensor-eeprom@1b {
+               compatible = "nxp,se97", "jedec,jc-42.4-temp";
+               reg = <0x1b>;
+       };
+
+       pcf85063: rtc@51 {
+               compatible = "nxp,pcf85063a";
+               reg = <0x51>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rtc>;
+               interrupt-names = "irq";
+               interrupt-parent = <&gpio1>;
+               interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+               quartz-load-femtofarads = <7000>;
+
+               clock {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32768>;
+               };
+       };
+
+       eeprom1: eeprom@53 {
+               compatible = "nxp,se97b", "atmel,24c02";
+               reg = <0x53>;
+               pagesize = <16>;
+               read-only;
+       };
+
+       eeprom0: eeprom@57 {
+               compatible = "atmel,24c64";
+               reg = <0x57>;
+               pagesize = <32>;
+       };
+};
+
+&pcie0 {
+       /* 3.3V supply, only way to switch on internal 1.8V supply using GPR */
+       vph-supply = <&vgen5_reg>;
+};
+
+&pcie1 {
+       /* 3.3V supply, only way to switch on internal 1.8V supply using GPR */
+       vph-supply = <&vgen5_reg>;
+};
+
+&qspi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_qspi>;
+       assigned-clocks = <&clk IMX8MQ_CLK_QSPI>;
+       assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>;
+       status = "okay";
+
+       flash0: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <84000000>;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+       };
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       no-sd;
+       no-sdio;
+       vmmc-supply = <&reg_vcc3v3>;
+       vqmmc-supply = <&reg_vcc1v8>;
+       status = "okay";
+};
+
+&vpu {
+       status = "okay";
+};
+
+/* Attention: wdog reset forcing POR needs baseboard support */
+&wdog1 {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_dvfs: dvfsgrp {
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6   0x16>;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL              0x4000007f>,
+                          <MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA              0x4000007f>;
+       };
+
+       pinctrl_i2c1_gpio: i2c1gpiogrp {
+               fsl,pins = <MX8MQ_IOMUXC_I2C1_SCL_GPIO5_IO14            0x40000074>,
+                          <MX8MQ_IOMUXC_I2C1_SDA_GPIO5_IO15            0x40000074>;
+       };
+
+       pinctrl_qspi: qspigrp {
+               fsl,pins = <MX8MQ_IOMUXC_NAND_ALE_QSPI_A_SCLK           0x97>,
+                          <MX8MQ_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B        0x82>,
+                          <MX8MQ_IOMUXC_NAND_DATA00_QSPI_A_DATA0       0x97>,
+                          <MX8MQ_IOMUXC_NAND_DATA01_QSPI_A_DATA1       0x97>,
+                          <MX8MQ_IOMUXC_NAND_DATA02_QSPI_A_DATA2       0x97>,
+                          <MX8MQ_IOMUXC_NAND_DATA03_QSPI_A_DATA3       0x97>;
+       };
+
+       pinctrl_rtc: rtcgrp {
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO01_GPIO1_IO1           0x41>;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK             0x83>,
+                          <MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD             0xc3>,
+                          <MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0         0xc3>,
+                          <MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1         0xc3>,
+                          <MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2         0xc3>,
+                          <MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3         0xc3>,
+                          <MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4         0xc3>,
+                          <MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5         0xc3>,
+                          <MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6         0xc3>,
+                          <MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7         0xc3>,
+                          <MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE       0x83>,
+                          <MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B     0xc1>;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK             0x85>,
+                          <MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD             0xc5>,
+                          <MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0         0xc5>,
+                          <MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1         0xc5>,
+                          <MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2         0xc5>,
+                          <MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3         0xc5>,
+                          <MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4         0xc5>,
+                          <MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5         0xc5>,
+                          <MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6         0xc5>,
+                          <MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7         0xc5>,
+                          <MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE       0x85>,
+                          <MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B     0xc1>;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins = <MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK             0x87>,
+                          <MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD             0xc7>,
+                          <MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0         0xc7>,
+                          <MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1         0xc7>,
+                          <MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2         0xc7>,
+                          <MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3         0xc7>,
+                          <MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4         0xc7>,
+                          <MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5         0xc7>,
+                          <MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6         0xc7>,
+                          <MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7         0xc7>,
+                          <MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE       0x87>,
+                          <MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B     0xc1>;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B        0xc6>;
+       };
+};
index 71bf497..2df2510 100644 (file)
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MQ_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MQ_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MQ_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                        clock-latency = <61036>; /* two CLK32 periods */
                        clocks = <&clk IMX8MQ_CLK_ARM>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                        operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
 
                A53_L2: l2-cache0 {
                        compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <0x100000>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
                };
        };
 
                                clocks = <&clk IMX8MQ_CLK_TMU_ROOT>;
                                little-endian;
                                fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>;
-                               fsl,tmu-calibration = <0x00000000 0x00000023
-                                                      0x00000001 0x00000029
-                                                      0x00000002 0x0000002f
-                                                      0x00000003 0x00000035
-                                                      0x00000004 0x0000003d
-                                                      0x00000005 0x00000043
-                                                      0x00000006 0x0000004b
-                                                      0x00000007 0x00000051
-                                                      0x00000008 0x00000057
-                                                      0x00000009 0x0000005f
-                                                      0x0000000a 0x00000067
-                                                      0x0000000b 0x0000006f
-
-                                                      0x00010000 0x0000001b
-                                                      0x00010001 0x00000023
-                                                      0x00010002 0x0000002b
-                                                      0x00010003 0x00000033
-                                                      0x00010004 0x0000003b
-                                                      0x00010005 0x00000043
-                                                      0x00010006 0x0000004b
-                                                      0x00010007 0x00000055
-                                                      0x00010008 0x0000005d
-                                                      0x00010009 0x00000067
-                                                      0x0001000a 0x00000070
-
-                                                      0x00020000 0x00000017
-                                                      0x00020001 0x00000023
-                                                      0x00020002 0x0000002d
-                                                      0x00020003 0x00000037
-                                                      0x00020004 0x00000041
-                                                      0x00020005 0x0000004b
-                                                      0x00020006 0x00000057
-                                                      0x00020007 0x00000063
-                                                      0x00020008 0x0000006f
-
-                                                      0x00030000 0x00000015
-                                                      0x00030001 0x00000021
-                                                      0x00030002 0x0000002d
-                                                      0x00030003 0x00000039
-                                                      0x00030004 0x00000045
-                                                      0x00030005 0x00000053
-                                                      0x00030006 0x0000005f
-                                                      0x00030007 0x00000071>;
+                               fsl,tmu-calibration = <0x00000000 0x00000023>,
+                                                     <0x00000001 0x00000029>,
+                                                     <0x00000002 0x0000002f>,
+                                                     <0x00000003 0x00000035>,
+                                                     <0x00000004 0x0000003d>,
+                                                     <0x00000005 0x00000043>,
+                                                     <0x00000006 0x0000004b>,
+                                                     <0x00000007 0x00000051>,
+                                                     <0x00000008 0x00000057>,
+                                                     <0x00000009 0x0000005f>,
+                                                     <0x0000000a 0x00000067>,
+                                                     <0x0000000b 0x0000006f>,
+
+                                                     <0x00010000 0x0000001b>,
+                                                     <0x00010001 0x00000023>,
+                                                     <0x00010002 0x0000002b>,
+                                                     <0x00010003 0x00000033>,
+                                                     <0x00010004 0x0000003b>,
+                                                     <0x00010005 0x00000043>,
+                                                     <0x00010006 0x0000004b>,
+                                                     <0x00010007 0x00000055>,
+                                                     <0x00010008 0x0000005d>,
+                                                     <0x00010009 0x00000067>,
+                                                     <0x0001000a 0x00000070>,
+
+                                                     <0x00020000 0x00000017>,
+                                                     <0x00020001 0x00000023>,
+                                                     <0x00020002 0x0000002d>,
+                                                     <0x00020003 0x00000037>,
+                                                     <0x00020004 0x00000041>,
+                                                     <0x00020005 0x0000004b>,
+                                                     <0x00020006 0x00000057>,
+                                                     <0x00020007 0x00000063>,
+                                                     <0x00020008 0x0000006f>,
+
+                                                     <0x00030000 0x00000015>,
+                                                     <0x00030001 0x00000021>,
+                                                     <0x00030002 0x0000002d>,
+                                                     <0x00030003 0x00000039>,
+                                                     <0x00030004 0x00000045>,
+                                                     <0x00030005 0x00000053>,
+                                                     <0x00030006 0x0000005f>,
+                                                     <0x00030007 0x00000071>;
                                #thermal-sensor-cells =  <1>;
                        };
 
                                fsl,num-rx-queues = <3>;
                                nvmem-cells = <&fec_mac_address>;
                                nvmem-cell-names = "mac-address";
-                               nvmem_macaddr_swap;
                                fsl,stop-mode = <&iomuxc_gpr 0x10 3>;
                                status = "disabled";
                        };
index aebbe2b..4a7c017 100644 (file)
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                };
 
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x1>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                };
 
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x2>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                };
 
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x3>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
                };
 
                        compatible = "arm,cortex-a72", "arm,armv8";
                        reg = <0x0 0x100>;
                        enable-method = "psci";
+                       i-cache-size = <0xC000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
                        next-level-cache = <&A72_L2>;
                };
 
 
                A53_L2: l2-cache0 {
                        compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <0x100000>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
                };
 
                A72_L2: l2-cache1 {
                        compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <0x100000>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
                };
        };
 
index 617618e..dbec7c1 100644 (file)
                        compatible = "arm,cortex-a35";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A35_L2>;
                        clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
                        operating-points-v2 = <&a35_opp_table>;
                        compatible = "arm,cortex-a35";
                        reg = <0x0 0x1>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A35_L2>;
                        clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
                        operating-points-v2 = <&a35_opp_table>;
                        compatible = "arm,cortex-a35";
                        reg = <0x0 0x2>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A35_L2>;
                        clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
                        operating-points-v2 = <&a35_opp_table>;
                        compatible = "arm,cortex-a35";
                        reg = <0x0 0x3>;
                        enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
                        next-level-cache = <&A35_L2>;
                        clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
                        operating-points-v2 = <&a35_opp_table>;
 
                A35_L2: l2-cache0 {
                        compatible = "cache";
+                       cache-level = <2>;
+                       cache-size = <0x80000>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
                };
        };
 
diff --git a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
new file mode 100644 (file)
index 0000000..33e84c4
--- /dev/null
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 NXP
+ */
+
+/dts-v1/;
+
+#include "imx8ulp.dtsi"
+
+/ {
+       model = "NXP i.MX8ULP EVK";
+       compatible = "fsl,imx8ulp-evk", "fsl,imx8ulp";
+
+       chosen {
+               stdout-path = &lpuart5;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0 0x80000000>;
+       };
+};
+
+&lpuart5 {
+       /* console */
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_lpuart5>;
+       pinctrl-1 = <&pinctrl_lpuart5>;
+       status = "okay";
+};
+
+&usdhc0 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_usdhc0>;
+       pinctrl-1 = <&pinctrl_usdhc0>;
+       non-removable;
+       bus-width = <8>;
+       status = "okay";
+};
+
+&iomuxc1 {
+       pinctrl_lpuart5: lpuart5grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTF14__LPUART5_TX    0x3
+                       MX8ULP_PAD_PTF15__LPUART5_RX    0x3
+               >;
+       };
+
+       pinctrl_usdhc0: usdhc0grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTD1__SDHC0_CMD      0x43
+                       MX8ULP_PAD_PTD2__SDHC0_CLK      0x10042
+                       MX8ULP_PAD_PTD10__SDHC0_D0      0x43
+                       MX8ULP_PAD_PTD9__SDHC0_D1       0x43
+                       MX8ULP_PAD_PTD8__SDHC0_D2       0x43
+                       MX8ULP_PAD_PTD7__SDHC0_D3       0x43
+                       MX8ULP_PAD_PTD6__SDHC0_D4       0x43
+                       MX8ULP_PAD_PTD5__SDHC0_D5       0x43
+                       MX8ULP_PAD_PTD4__SDHC0_D6       0x43
+                       MX8ULP_PAD_PTD3__SDHC0_D7       0x43
+                       MX8ULP_PAD_PTD11__SDHC0_DQS     0x10042
+               >;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8ulp-pinfunc.h b/arch/arm64/boot/dts/freescale/imx8ulp-pinfunc.h
new file mode 100755 (executable)
index 0000000..b204ac7
--- /dev/null
@@ -0,0 +1,978 @@
+/* SPDX-License-Identifier: GPL-2.0+ OR MIT */
+/*
+ * Copyright 2021 NXP
+ */
+
+#ifndef __DTS_IMX8ULP_PINFUNC_H
+#define __DTS_IMX8ULP_PINFUNC_H
+
+/*
+ * The pin function ID is a tuple of
+ * <mux_reg input_reg mux_mode input_val>
+ */
+#define MX8ULP_PAD_PTD0__PTD0                                        0x0000 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD0__I2S6_RX_BCLK                                0x0000 0x0B44 0x7 0x1
+#define MX8ULP_PAD_PTD0__SDHC0_RESET_B                               0x0000 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD0__FLEXSPI2_B_DQS                              0x0000 0x0974 0x9 0x1
+#define MX8ULP_PAD_PTD0__CLKOUT2                                     0x0000 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD0__EPDC0_SDCLK_B                               0x0000 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD0__LP_APD_DBG_MUX_0                            0x0000 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD0__CLKOUT1                                     0x0000 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD0__DEBUG_MUX0_0                                0x0000 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD0__DEBUG_MUX1_0                                0x0000 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD1__PTD1                                        0x0004 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD1__I2S6_RX_FS                                  0x0004 0x0B48 0x7 0x1
+#define MX8ULP_PAD_PTD1__SDHC0_CMD                                   0x0004 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD1__FLEXSPI2_B_DATA7                            0x0004 0x0970 0x9 0x1
+#define MX8ULP_PAD_PTD1__EPDC0_SDCLK                                 0x0004 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD1__DPI0_PCLK                                   0x0004 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD1__LP_APD_DBG_MUX_1                            0x0004 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD1__DEBUG_MUX0_1                                0x0004 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD1__DEBUG_MUX1_1                                0x0004 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD2__PTD2                                        0x0008 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD2__I2S6_RXD0                                   0x0008 0x0B34 0x7 0x1
+#define MX8ULP_PAD_PTD2__SDHC0_CLK                                   0x0008 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD2__FLEXSPI2_B_DATA6                            0x0008 0x096C 0x9 0x1
+#define MX8ULP_PAD_PTD2__EPDC0_SDLE                                  0x0008 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD2__DPI0_HSYNC                                  0x0008 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD2__LP_APD_DBG_MUX_2                            0x0008 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD2__DEBUG_MUX0_2                                0x0008 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD2__DEBUG_MUX1_2                                0x0008 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD3__PTD3                                        0x000C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD3__I2S6_RXD1                                   0x000C 0x0B38 0x7 0x1
+#define MX8ULP_PAD_PTD3__SDHC0_D7                                    0x000C 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD3__FLEXSPI2_B_DATA5                            0x000C 0x0968 0x9 0x1
+#define MX8ULP_PAD_PTD3__EPDC0_GDSP                                  0x000C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD3__DPI0_VSYNC                                  0x000C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD3__LP_APD_DBG_MUX_3                            0x000C 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD3__DEBUG_MUX0_3                                0x000C 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD3__DEBUG_MUX1_3                                0x000C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD4__PTD4                                        0x0010 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD4__EXT_AUD_MCLK3                               0x0010 0x0B14 0x4 0x1
+#define MX8ULP_PAD_PTD4__SDHC0_VS                                    0x0010 0x0000 0x5 0x0
+#define MX8ULP_PAD_PTD4__TPM8_CH5                                    0x0010 0x0B2C 0x6 0x1
+#define MX8ULP_PAD_PTD4__I2S6_MCLK                                   0x0010 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD4__SDHC0_D6                                    0x0010 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD4__FLEXSPI2_B_DATA4                            0x0010 0x0964 0x9 0x1
+#define MX8ULP_PAD_PTD4__EPDC0_SDCE0                                 0x0010 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD4__DPI0_DE                                     0x0010 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD4__LP_APD_DBG_MUX_4                            0x0010 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD4__DEBUG_MUX0_4                                0x0010 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD4__DEBUG_MUX1_4                                0x0010 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD5__PTD5                                        0x0014 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD5__SDHC0_CD                                    0x0014 0x0000 0x5 0x0
+#define MX8ULP_PAD_PTD5__TPM8_CH4                                    0x0014 0x0B28 0x6 0x1
+#define MX8ULP_PAD_PTD5__I2S6_TX_BCLK                                0x0014 0x0B4C 0x7 0x1
+#define MX8ULP_PAD_PTD5__SDHC0_D5                                    0x0014 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD5__FLEXSPI2_B_SS0_B                            0x0014 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD5__FLEXSPI2_B_SCLK_B                           0x0014 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD5__EPDC0_D0                                    0x0014 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD5__DPI0_D0                                     0x0014 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD5__LP_APD_DBG_MUX_5                            0x0014 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD5__DEBUG_MUX0_5                                0x0014 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD5__DEBUG_MUX1_5                                0x0014 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD6__PTD6                                        0x0018 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD6__SDHC0_WP                                    0x0018 0x0000 0x5 0x0
+#define MX8ULP_PAD_PTD6__TPM8_CH3                                    0x0018 0x0B24 0x6 0x1
+#define MX8ULP_PAD_PTD6__I2S6_TX_FS                                  0x0018 0x0B50 0x7 0x1
+#define MX8ULP_PAD_PTD6__SDHC0_D4                                    0x0018 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD6__FLEXSPI2_B_SCLK                             0x0018 0x0978 0x9 0x1
+#define MX8ULP_PAD_PTD6__EPDC0_D1                                    0x0018 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD6__DPI0_D1                                     0x0018 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD6__LP_APD_DBG_MUX_6                            0x0018 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD6__DEBUG_MUX0_6                                0x0018 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD6__DEBUG_MUX1_6                                0x0018 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD7__PTD7                                        0x001C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD7__TPM8_CH2                                    0x001C 0x0B20 0x6 0x1
+#define MX8ULP_PAD_PTD7__I2S6_TXD0                                   0x001C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD7__SDHC0_D3                                    0x001C 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD7__FLEXSPI2_B_DATA3                            0x001C 0x0960 0x9 0x1
+#define MX8ULP_PAD_PTD7__EPDC0_D2                                    0x001C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD7__DPI0_D2                                     0x001C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD7__LP_APD_DBG_MUX_7                            0x001C 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD7__DEBUG_MUX0_7                                0x001C 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD7__DEBUG_MUX1_7                                0x001C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD8__PTD8                                        0x0020 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD8__TPM8_CH1                                    0x0020 0x0B1C 0x6 0x1
+#define MX8ULP_PAD_PTD8__I2S6_TXD1                                   0x0020 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD8__SDHC0_D2                                    0x0020 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD8__FLEXSPI2_B_DATA2                            0x0020 0x095C 0x9 0x1
+#define MX8ULP_PAD_PTD8__EPDC0_D3                                    0x0020 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD8__DPI0_D3                                     0x0020 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD8__LP_APD_DBG_MUX_8                            0x0020 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD8__DEBUG_MUX1_8                                0x0020 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD9__PTD9                                        0x0024 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD9__TPM8_CLKIN                                  0x0024 0x0B30 0x6 0x1
+#define MX8ULP_PAD_PTD9__I2S6_TXD2                                   0x0024 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD9__SDHC0_D1                                    0x0024 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD9__FLEXSPI2_B_DATA1                            0x0024 0x0958 0x9 0x1
+#define MX8ULP_PAD_PTD9__EPDC0_D4                                    0x0024 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD9__DPI0_D4                                     0x0024 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD9__LP_APD_DBG_MUX_9                            0x0024 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD9__DEBUG_MUX1_9                                0x0024 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD10__PTD10                                      0x0028 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD10__TPM8_CH0                                   0x0028 0x0B18 0x6 0x1
+#define MX8ULP_PAD_PTD10__I2S6_TXD3                                  0x0028 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD10__SDHC0_D0                                   0x0028 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD10__FLEXSPI2_B_DATA0                           0x0028 0x0954 0x9 0x1
+#define MX8ULP_PAD_PTD10__EPDC0_D5                                   0x0028 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD10__DPI0_D5                                    0x0028 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD10__LP_APD_DBG_MUX_10                          0x0028 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTD10__DEBUG_MUX1_10                              0x0028 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD11__PTD11                                      0x002C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD11__TPM8_CH5                                   0x002C 0x0B2C 0x6 0x2
+#define MX8ULP_PAD_PTD11__I2S6_RXD2                                  0x002C 0x0B3C 0x7 0x1
+#define MX8ULP_PAD_PTD11__SDHC0_DQS                                  0x002C 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD11__FLEXSPI2_B_SS0_B                           0x002C 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD11__FLEXSPI2_A_SS1_B                           0x002C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD11__EPDC0_D6                                   0x002C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD11__DPI0_D6                                    0x002C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD11__LP_APD_DBG_MUX_11                          0x002C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD12__PTD12                                      0x0030 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD12__USB0_ID                                    0x0030 0x0AC8 0x5 0x1
+#define MX8ULP_PAD_PTD12__SDHC2_D3                                   0x0030 0x0AA4 0x6 0x1
+#define MX8ULP_PAD_PTD12__I2S7_RX_BCLK                               0x0030 0x0B64 0x7 0x1
+#define MX8ULP_PAD_PTD12__SDHC1_DQS                                  0x0030 0x0A84 0x8 0x1
+#define MX8ULP_PAD_PTD12__FLEXSPI2_A_SS0_B                           0x0030 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD12__FLEXSPI2_B_SS1_B                           0x0030 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD12__EPDC0_D7                                   0x0030 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD12__DPI0_D7                                    0x0030 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD12__LP_APD_DBG_MUX_12                          0x0030 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD13__PTD13                                      0x0034 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD13__SPDIF_IN3                                  0x0034 0x0B80 0x4 0x1
+#define MX8ULP_PAD_PTD13__USB0_PWR                                   0x0034 0x0000 0x5 0x0
+#define MX8ULP_PAD_PTD13__SDHC2_D2                                   0x0034 0x0AA0 0x6 0x1
+#define MX8ULP_PAD_PTD13__I2S7_RX_FS                                 0x0034 0x0B68 0x7 0x1
+#define MX8ULP_PAD_PTD13__SDHC1_RESET_B                              0x0034 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTD13__FLEXSPI2_A_SCLK                            0x0034 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD13__CLKOUT2                                    0x0034 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD13__EPDC0_D8                                   0x0034 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD13__DPI0_D8                                    0x0034 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD13__CLKOUT1                                    0x0034 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD13__LP_APD_DBG_MUX_13                          0x0034 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD14__PTD14                                      0x0038 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD14__SPDIF_OUT3                                 0x0038 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTD14__USB0_OC                                    0x0038 0x0AC0 0x5 0x1
+#define MX8ULP_PAD_PTD14__SDHC2_D1                                   0x0038 0x0A9C 0x6 0x1
+#define MX8ULP_PAD_PTD14__I2S7_RXD0                                  0x0038 0x0B54 0x7 0x1
+#define MX8ULP_PAD_PTD14__SDHC1_D7                                   0x0038 0x0A80 0x8 0x1
+#define MX8ULP_PAD_PTD14__FLEXSPI2_A_DATA3                           0x0038 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD14__TRACE0_D7                                  0x0038 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD14__EPDC0_D9                                   0x0038 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD14__DPI0_D9                                    0x0038 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD14__LP_APD_DBG_MUX_14                          0x0038 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD15__PTD15                                      0x003C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD15__SPDIF_IN2                                  0x003C 0x0B7C 0x4 0x1
+#define MX8ULP_PAD_PTD15__SDHC1_VS                                   0x003C 0x0000 0x5 0x0
+#define MX8ULP_PAD_PTD15__SDHC2_D0                                   0x003C 0x0A98 0x6 0x1
+#define MX8ULP_PAD_PTD15__I2S7_TX_BCLK                               0x003C 0x0B6C 0x7 0x1
+#define MX8ULP_PAD_PTD15__SDHC1_D6                                   0x003C 0x0A7C 0x8 0x1
+#define MX8ULP_PAD_PTD15__FLEXSPI2_A_DATA2                           0x003C 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD15__TRACE0_D6                                  0x003C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD15__EPDC0_D10                                  0x003C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD15__DPI0_D10                                   0x003C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD15__LP_APD_DBG_MUX_15                          0x003C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD16__PTD16                                      0x0040 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD16__FXIO1_D31                                  0x0040 0x08A0 0x2 0x1
+#define MX8ULP_PAD_PTD16__LPSPI4_PCS1                                0x0040 0x08F8 0x3 0x1
+#define MX8ULP_PAD_PTD16__SPDIF_OUT2                                 0x0040 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTD16__SDHC1_CD                                   0x0040 0x0A58 0x5 0x1
+#define MX8ULP_PAD_PTD16__SDHC2_CLK                                  0x0040 0x0A90 0x6 0x1
+#define MX8ULP_PAD_PTD16__I2S7_TX_FS                                 0x0040 0x0B70 0x7 0x1
+#define MX8ULP_PAD_PTD16__SDHC1_D5                                   0x0040 0x0A78 0x8 0x1
+#define MX8ULP_PAD_PTD16__FLEXSPI2_A_DATA1                           0x0040 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD16__TRACE0_D5                                  0x0040 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD16__EPDC0_D11                                  0x0040 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD16__DPI0_D11                                   0x0040 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD16__LP_APD_DBG_MUX_16                          0x0040 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD17__PTD17                                      0x0044 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD17__FXIO1_D30                                  0x0044 0x089C 0x2 0x1
+#define MX8ULP_PAD_PTD17__LPSPI4_PCS2                                0x0044 0x08FC 0x3 0x1
+#define MX8ULP_PAD_PTD17__EXT_AUD_MCLK3                              0x0044 0x0B14 0x4 0x2
+#define MX8ULP_PAD_PTD17__SDHC1_WP                                   0x0044 0x0A88 0x5 0x1
+#define MX8ULP_PAD_PTD17__SDHC2_CMD                                  0x0044 0x0A94 0x6 0x1
+#define MX8ULP_PAD_PTD17__I2S7_TXD0                                  0x0044 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD17__SDHC1_D4                                   0x0044 0x0A74 0x8 0x1
+#define MX8ULP_PAD_PTD17__FLEXSPI2_A_DATA0                           0x0044 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD17__TRACE0_D4                                  0x0044 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD17__EPDC0_D12                                  0x0044 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD17__DPI0_D12                                   0x0044 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD17__LP_APD_DBG_MUX_17                          0x0044 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD18__PTD18                                      0x0048 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD18__FXIO1_D29                                  0x0048 0x0894 0x2 0x1
+#define MX8ULP_PAD_PTD18__LPSPI4_PCS3                                0x0048 0x0900 0x3 0x1
+#define MX8ULP_PAD_PTD18__SPDIF_CLK                                  0x0048 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTD18__EXT_AUD_MCLK3                              0x0048 0x0B14 0x5 0x3
+#define MX8ULP_PAD_PTD18__TPM8_CH0                                   0x0048 0x0B18 0x6 0x2
+#define MX8ULP_PAD_PTD18__I2S7_MCLK                                  0x0048 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD18__SDHC1_D3                                   0x0048 0x0A70 0x8 0x1
+#define MX8ULP_PAD_PTD18__FLEXSPI2_A_DQS                             0x0048 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD18__TRACE0_D3                                  0x0048 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD18__EPDC0_D13                                  0x0048 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD18__DPI0_D13                                   0x0048 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD18__LP_APD_DBG_MUX_18                          0x0048 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD19__PTD19                                      0x004C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD19__FXIO1_D28                                  0x004C 0x0890 0x2 0x1
+#define MX8ULP_PAD_PTD19__SPDIF_IN0                                  0x004C 0x0B74 0x4 0x1
+#define MX8ULP_PAD_PTD19__TPM8_CH1                                   0x004C 0x0B1C 0x6 0x2
+#define MX8ULP_PAD_PTD19__I2S6_RXD3                                  0x004C 0x0B40 0x7 0x1
+#define MX8ULP_PAD_PTD19__SDHC1_D2                                   0x004C 0x0A6C 0x8 0x1
+#define MX8ULP_PAD_PTD19__FLEXSPI2_A_DATA7                           0x004C 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD19__TRACE0_D2                                  0x004C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD19__EPDC0_D14                                  0x004C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD19__DPI0_D14                                   0x004C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD19__LP_APD_DBG_MUX_19                          0x004C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD20__PTD20                                      0x0050 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD20__FXIO1_D27                                  0x0050 0x088C 0x2 0x1
+#define MX8ULP_PAD_PTD20__LPSPI4_SIN                                 0x0050 0x0908 0x3 0x1
+#define MX8ULP_PAD_PTD20__SPDIF_OUT0                                 0x0050 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTD20__TPM8_CLKIN                                 0x0050 0x0B30 0x6 0x2
+#define MX8ULP_PAD_PTD20__I2S7_RXD1                                  0x0050 0x0B58 0x7 0x1
+#define MX8ULP_PAD_PTD20__SDHC1_D1                                   0x0050 0x0A68 0x8 0x1
+#define MX8ULP_PAD_PTD20__FLEXSPI2_A_DATA6                           0x0050 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD20__TRACE0_D1                                  0x0050 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD20__EPDC0_D15                                  0x0050 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTD20__DPI0_D15                                   0x0050 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD20__LP_APD_DBG_MUX_20                          0x0050 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD21__PTD21                                      0x0054 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD21__FXIO1_D26                                  0x0054 0x0888 0x2 0x1
+#define MX8ULP_PAD_PTD21__LPSPI4_SOUT                                0x0054 0x090C 0x3 0x1
+#define MX8ULP_PAD_PTD21__SPDIF_IN1                                  0x0054 0x0B78 0x4 0x1
+#define MX8ULP_PAD_PTD21__USB1_PWR                                   0x0054 0x0000 0x5 0x0
+#define MX8ULP_PAD_PTD21__TPM8_CH2                                   0x0054 0x0B20 0x6 0x2
+#define MX8ULP_PAD_PTD21__I2S7_TXD1                                  0x0054 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD21__SDHC1_D0                                   0x0054 0x0A64 0x8 0x1
+#define MX8ULP_PAD_PTD21__FLEXSPI2_A_DATA5                           0x0054 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD21__TRACE0_D0                                  0x0054 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD21__DPI0_D16                                   0x0054 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD21__WDOG5_RST                                  0x0054 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTD21__LP_APD_DBG_MUX_21                          0x0054 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD22__PTD22                                      0x0058 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD22__FXIO1_D25                                  0x0058 0x0884 0x2 0x1
+#define MX8ULP_PAD_PTD22__LPSPI4_SCK                                 0x0058 0x0904 0x3 0x1
+#define MX8ULP_PAD_PTD22__SPDIF_OUT1                                 0x0058 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTD22__USB1_OC                                    0x0058 0x0AC4 0x5 0x1
+#define MX8ULP_PAD_PTD22__TPM8_CH3                                   0x0058 0x0B24 0x6 0x2
+#define MX8ULP_PAD_PTD22__I2S7_TXD2                                  0x0058 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD22__SDHC1_CLK                                  0x0058 0x0A5C 0x8 0x1
+#define MX8ULP_PAD_PTD22__FLEXSPI2_A_DATA4                           0x0058 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD22__TRACE0_CLKOUT                              0x0058 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD22__DPI0_D17                                   0x0058 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD22__LP_APD_DBG_MUX_22                          0x0058 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTD23__PTD23                                      0x005C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTD23__FXIO1_D24                                  0x005C 0x0880 0x2 0x1
+#define MX8ULP_PAD_PTD23__LPSPI4_PCS0                                0x005C 0x08F4 0x3 0x1
+#define MX8ULP_PAD_PTD23__USB1_ID                                    0x005C 0x0ACC 0x5 0x1
+#define MX8ULP_PAD_PTD23__TPM8_CH4                                   0x005C 0x0B28 0x6 0x2
+#define MX8ULP_PAD_PTD23__I2S7_TXD3                                  0x005C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTD23__SDHC1_CMD                                  0x005C 0x0A60 0x8 0x1
+#define MX8ULP_PAD_PTD23__FLEXSPI2_A_SS0_B                           0x005C 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTD23__FLEXSPI2_A_SCLK_B                          0x005C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTD23__DPI0_D18                                   0x005C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTD23__LP_APD_DBG_MUX_23                          0x005C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE0__PTE0                                        0x0080 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE0__FXIO1_D23                                   0x0080 0x087C 0x2 0x1
+#define MX8ULP_PAD_PTE0__SPDIF_IN3                                   0x0080 0x0B80 0x3 0x2
+#define MX8ULP_PAD_PTE0__LPUART4_CTS_B                               0x0080 0x08DC 0x4 0x1
+#define MX8ULP_PAD_PTE0__LPI2C4_SCL                                  0x0080 0x08C8 0x5 0x1
+#define MX8ULP_PAD_PTE0__TPM8_CLKIN                                  0x0080 0x0B30 0x6 0x3
+#define MX8ULP_PAD_PTE0__I2S7_RXD2                                   0x0080 0x0B5C 0x7 0x1
+#define MX8ULP_PAD_PTE0__SDHC2_D1                                    0x0080 0x0A9C 0x8 0x2
+#define MX8ULP_PAD_PTE0__FLEXSPI2_B_DQS                              0x0080 0x0974 0x9 0x2
+#define MX8ULP_PAD_PTE0__ENET0_CRS                                   0x0080 0x0AE8 0xa 0x1
+#define MX8ULP_PAD_PTE0__DBI0_WRX                                    0x0080 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE0__DPI0_D19                                    0x0080 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE0__WUU1_P0                                     0x0080 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE0__DEBUG_MUX0_8                                0x0080 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE0__DEBUG_MUX1_11                               0x0080 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE1__PTE1                                        0x0084 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE1__FXIO1_D22                                   0x0084 0x0878 0x2 0x1
+#define MX8ULP_PAD_PTE1__SPDIF_OUT3                                  0x0084 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTE1__LPUART4_RTS_B                               0x0084 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTE1__LPI2C4_SDA                                  0x0084 0x08CC 0x5 0x1
+#define MX8ULP_PAD_PTE1__TPM8_CH0                                    0x0084 0x0B18 0x6 0x3
+#define MX8ULP_PAD_PTE1__I2S7_RXD3                                   0x0084 0x0B60 0x7 0x1
+#define MX8ULP_PAD_PTE1__SDHC2_D0                                    0x0084 0x0A98 0x8 0x2
+#define MX8ULP_PAD_PTE1__FLEXSPI2_B_DATA7                            0x0084 0x0970 0x9 0x2
+#define MX8ULP_PAD_PTE1__ENET0_COL                                   0x0084 0x0AE4 0xa 0x1
+#define MX8ULP_PAD_PTE1__DBI0_CSX                                    0x0084 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE1__DPI0_D20                                    0x0084 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE1__WUU1_P1                                     0x0084 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE1__DEBUG_MUX0_9                                0x0084 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE1__DEBUG_MUX1_12                               0x0084 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE2__PTE2                                        0x0088 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE2__FXIO1_D21                                   0x0088 0x0874 0x2 0x1
+#define MX8ULP_PAD_PTE2__SPDIF_IN2                                   0x0088 0x0B7C 0x3 0x2
+#define MX8ULP_PAD_PTE2__LPUART4_TX                                  0x0088 0x08E4 0x4 0x1
+#define MX8ULP_PAD_PTE2__LPI2C4_HREQ                                 0x0088 0x08C4 0x5 0x1
+#define MX8ULP_PAD_PTE2__TPM8_CH1                                    0x0088 0x0B1C 0x6 0x3
+#define MX8ULP_PAD_PTE2__EXT_AUD_MCLK3                               0x0088 0x0B14 0x7 0x4
+#define MX8ULP_PAD_PTE2__SDHC2_CLK                                   0x0088 0x0A90 0x8 0x2
+#define MX8ULP_PAD_PTE2__FLEXSPI2_B_DATA6                            0x0088 0x096C 0x9 0x2
+#define MX8ULP_PAD_PTE2__ENET0_TXER                                  0x0088 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTE2__DBI0_DCX                                    0x0088 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE2__DPI0_D21                                    0x0088 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE2__LP_HV_DBG_MUX_0                             0x0088 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE2__DEBUG_MUX0_10                               0x0088 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE2__DEBUG_MUX1_13                               0x0088 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE3__PTE3                                        0x008C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE3__FXIO1_D20                                   0x008C 0x0870 0x2 0x1
+#define MX8ULP_PAD_PTE3__SPDIF_OUT2                                  0x008C 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTE3__LPUART4_RX                                  0x008C 0x08E0 0x4 0x1
+#define MX8ULP_PAD_PTE3__TPM8_CH2                                    0x008C 0x0B20 0x6 0x3
+#define MX8ULP_PAD_PTE3__I2S6_MCLK                                   0x008C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE3__SDHC2_CMD                                   0x008C 0x0A94 0x8 0x2
+#define MX8ULP_PAD_PTE3__FLEXSPI2_B_DATA5                            0x008C 0x0968 0x9 0x2
+#define MX8ULP_PAD_PTE3__ENET0_TXCLK                                 0x008C 0x0B10 0xa 0x1
+#define MX8ULP_PAD_PTE3__DBI0_RWX                                    0x008C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE3__DPI0_D22                                    0x008C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE3__WUU1_P2                                     0x008C 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE3__DEBUG_MUX0_11                               0x008C 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE3__DEBUG_MUX1_14                               0x008C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE4__PTE4                                        0x0090 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE4__FXIO1_D19                                   0x0090 0x0868 0x2 0x1
+#define MX8ULP_PAD_PTE4__SPDIF_CLK                                   0x0090 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTE4__LPUART5_CTS_B                               0x0090 0x08E8 0x4 0x1
+#define MX8ULP_PAD_PTE4__LPI2C5_SCL                                  0x0090 0x08D4 0x5 0x1
+#define MX8ULP_PAD_PTE4__TPM8_CH3                                    0x0090 0x0B24 0x6 0x3
+#define MX8ULP_PAD_PTE4__I2S6_RX_BCLK                                0x0090 0x0B44 0x7 0x2
+#define MX8ULP_PAD_PTE4__SDHC2_D3                                    0x0090 0x0AA4 0x8 0x2
+#define MX8ULP_PAD_PTE4__FLEXSPI2_B_DATA4                            0x0090 0x0964 0x9 0x2
+#define MX8ULP_PAD_PTE4__ENET0_TXD3                                  0x0090 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTE4__DBI0_E                                      0x0090 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE4__DPI0_D23                                    0x0090 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE4__WUU1_P3                                     0x0090 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE4__DEBUG_MUX0_12                               0x0090 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE4__DEBUG_MUX1_15                               0x0090 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE5__PTE5                                        0x0094 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE5__FXIO1_D18                                   0x0094 0x0864 0x2 0x1
+#define MX8ULP_PAD_PTE5__SPDIF_IN0                                   0x0094 0x0B74 0x3 0x2
+#define MX8ULP_PAD_PTE5__LPUART5_RTS_B                               0x0094 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTE5__LPI2C5_SDA                                  0x0094 0x08D8 0x5 0x1
+#define MX8ULP_PAD_PTE5__TPM8_CH4                                    0x0094 0x0B28 0x6 0x3
+#define MX8ULP_PAD_PTE5__I2S6_RX_FS                                  0x0094 0x0B48 0x7 0x2
+#define MX8ULP_PAD_PTE5__SDHC2_D2                                    0x0094 0x0AA0 0x8 0x2
+#define MX8ULP_PAD_PTE5__FLEXSPI2_B_SS0_B                            0x0094 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTE5__ENET0_TXD2                                  0x0094 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTE5__DBI0_D0                                     0x0094 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE5__LP_HV_DBG_MUX_1                             0x0094 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE5__DEBUG_MUX0_13                               0x0094 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE5__DEBUG_MUX1_16                               0x0094 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE6__PTE6                                        0x0098 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE6__FXIO1_D17                                   0x0098 0x0860 0x2 0x1
+#define MX8ULP_PAD_PTE6__SPDIF_OUT0                                  0x0098 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTE6__LPUART5_TX                                  0x0098 0x08F0 0x4 0x1
+#define MX8ULP_PAD_PTE6__LPI2C5_HREQ                                 0x0098 0x08D0 0x5 0x1
+#define MX8ULP_PAD_PTE6__TPM8_CH5                                    0x0098 0x0B2C 0x6 0x3
+#define MX8ULP_PAD_PTE6__I2S6_RXD0                                   0x0098 0x0B34 0x7 0x2
+#define MX8ULP_PAD_PTE6__SDHC2_D4                                    0x0098 0x0AA8 0x8 0x1
+#define MX8ULP_PAD_PTE6__FLEXSPI2_B_SCLK                             0x0098 0x0978 0x9 0x2
+#define MX8ULP_PAD_PTE6__ENET0_RXCLK                                 0x0098 0x0B0C 0xa 0x1
+#define MX8ULP_PAD_PTE6__DBI0_D1                                     0x0098 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE6__LP_HV_DBG_MUX_2                             0x0098 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE6__WDOG5_RST                                   0x0098 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE6__DEBUG_MUX0_14                               0x0098 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE6__DEBUG_MUX1_17                               0x0098 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE7__PTE7                                        0x009C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE7__FXIO1_D16                                   0x009C 0x085C 0x2 0x1
+#define MX8ULP_PAD_PTE7__SPDIF_IN1                                   0x009C 0x0B78 0x3 0x2
+#define MX8ULP_PAD_PTE7__LPUART5_RX                                  0x009C 0x08EC 0x4 0x1
+#define MX8ULP_PAD_PTE7__LPI2C6_HREQ                                 0x009C 0x09B4 0x5 0x1
+#define MX8ULP_PAD_PTE7__TPM4_CLKIN                                  0x009C 0x081C 0x6 0x1
+#define MX8ULP_PAD_PTE7__I2S6_RXD1                                   0x009C 0x0B38 0x7 0x2
+#define MX8ULP_PAD_PTE7__SDHC2_D5                                    0x009C 0x0AAC 0x8 0x1
+#define MX8ULP_PAD_PTE7__FLEXSPI2_B_DATA3                            0x009C 0x0960 0x9 0x2
+#define MX8ULP_PAD_PTE7__ENET0_RXD3                                  0x009C 0x0B04 0xa 0x1
+#define MX8ULP_PAD_PTE7__DBI0_D2                                     0x009C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE7__EPDC0_BDR1                                  0x009C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE7__WUU1_P4                                     0x009C 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE7__DEBUG_MUX0_15                               0x009C 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE7__DEBUG_MUX1_18                               0x009C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE8__PTE8                                        0x00A0 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE8__FXIO1_D15                                   0x00A0 0x0858 0x2 0x1
+#define MX8ULP_PAD_PTE8__LPSPI4_PCS1                                 0x00A0 0x08F8 0x3 0x2
+#define MX8ULP_PAD_PTE8__LPUART6_CTS_B                               0x00A0 0x09CC 0x4 0x1
+#define MX8ULP_PAD_PTE8__LPI2C6_SCL                                  0x00A0 0x09B8 0x5 0x1
+#define MX8ULP_PAD_PTE8__TPM4_CH0                                    0x00A0 0x0804 0x6 0x1
+#define MX8ULP_PAD_PTE8__I2S6_RXD2                                   0x00A0 0x0B3C 0x7 0x2
+#define MX8ULP_PAD_PTE8__SDHC2_D6                                    0x00A0 0x0AB0 0x8 0x1
+#define MX8ULP_PAD_PTE8__FLEXSPI2_B_DATA2                            0x00A0 0x095C 0x9 0x2
+#define MX8ULP_PAD_PTE8__ENET0_RXD2                                  0x00A0 0x0B00 0xa 0x1
+#define MX8ULP_PAD_PTE8__DBI0_D3                                     0x00A0 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE8__EPDC0_BDR0                                  0x00A0 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE8__LP_HV_DBG_MUX_3                             0x00A0 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE8__DEBUG_MUX1_19                               0x00A0 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE9__PTE9                                        0x00A4 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE9__FXIO1_D14                                   0x00A4 0x0854 0x2 0x1
+#define MX8ULP_PAD_PTE9__LPSPI4_PCS2                                 0x00A4 0x08FC 0x3 0x2
+#define MX8ULP_PAD_PTE9__LPUART6_RTS_B                               0x00A4 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTE9__LPI2C6_SDA                                  0x00A4 0x09BC 0x5 0x1
+#define MX8ULP_PAD_PTE9__TPM4_CH1                                    0x00A4 0x0808 0x6 0x1
+#define MX8ULP_PAD_PTE9__I2S6_RXD3                                   0x00A4 0x0B40 0x7 0x2
+#define MX8ULP_PAD_PTE9__SDHC2_D7                                    0x00A4 0x0AB4 0x8 0x1
+#define MX8ULP_PAD_PTE9__FLEXSPI2_B_DATA1                            0x00A4 0x0958 0x9 0x2
+#define MX8ULP_PAD_PTE9__ENET0_1588_TMR3                             0x00A4 0x0AE0 0xa 0x1
+#define MX8ULP_PAD_PTE9__DBI0_D4                                     0x00A4 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE9__EPDC0_VCOM1                                 0x00A4 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE9__LP_HV_DBG_MUX_4                             0x00A4 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE9__DEBUG_MUX1_20                               0x00A4 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE10__PTE10                                      0x00A8 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE10__FXIO1_D13                                  0x00A8 0x0850 0x2 0x1
+#define MX8ULP_PAD_PTE10__LPSPI4_PCS3                                0x00A8 0x0900 0x3 0x2
+#define MX8ULP_PAD_PTE10__LPUART6_TX                                 0x00A8 0x09D4 0x4 0x1
+#define MX8ULP_PAD_PTE10__I3C2_SCL                                   0x00A8 0x08BC 0x5 0x1
+#define MX8ULP_PAD_PTE10__TPM4_CH2                                   0x00A8 0x080C 0x6 0x1
+#define MX8ULP_PAD_PTE10__I2S6_TX_BCLK                               0x00A8 0x0B4C 0x7 0x2
+#define MX8ULP_PAD_PTE10__SDHC2_DQS                                  0x00A8 0x0AB8 0x8 0x1
+#define MX8ULP_PAD_PTE10__FLEXSPI2_B_DATA0                           0x00A8 0x0954 0x9 0x2
+#define MX8ULP_PAD_PTE10__ENET0_1588_TMR2                            0x00A8 0x0ADC 0xa 0x1
+#define MX8ULP_PAD_PTE10__DBI0_D5                                    0x00A8 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE10__EPDC0_VCOM0                                0x00A8 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE10__LP_HV_DBG_MUX_5                            0x00A8 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTE10__DEBUG_MUX1_21                              0x00A8 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE11__PTE11                                      0x00AC 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE11__FXIO1_D12                                  0x00AC 0x084C 0x2 0x1
+#define MX8ULP_PAD_PTE11__SPDIF_OUT1                                 0x00AC 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTE11__LPUART6_RX                                 0x00AC 0x09D0 0x4 0x1
+#define MX8ULP_PAD_PTE11__I3C2_SDA                                   0x00AC 0x08C0 0x5 0x1
+#define MX8ULP_PAD_PTE11__TPM4_CH3                                   0x00AC 0x0810 0x6 0x1
+#define MX8ULP_PAD_PTE11__I2S6_TX_FS                                 0x00AC 0x0B50 0x7 0x2
+#define MX8ULP_PAD_PTE11__FLEXSPI2_B_SCLK_B                          0x00AC 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTE11__FLEXSPI2_B_SS0_B                           0x00AC 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTE11__ENET0_1588_TMR1                            0x00AC 0x0AD8 0xa 0x1
+#define MX8ULP_PAD_PTE11__DBI0_D6                                    0x00AC 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE11__EPDC0_PWRCTRL0                             0x00AC 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE11__LP_HV_DBG_MUX_6                            0x00AC 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE12__PTE12                                      0x00B0 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE12__FXIO1_D11                                  0x00B0 0x0848 0x2 0x1
+#define MX8ULP_PAD_PTE12__LPSPI4_SIN                                 0x00B0 0x0908 0x3 0x2
+#define MX8ULP_PAD_PTE12__LPUART7_CTS_B                              0x00B0 0x09D8 0x4 0x1
+#define MX8ULP_PAD_PTE12__LPI2C7_SCL                                 0x00B0 0x09C4 0x5 0x1
+#define MX8ULP_PAD_PTE12__TPM4_CH4                                   0x00B0 0x0814 0x6 0x1
+#define MX8ULP_PAD_PTE12__I2S6_TXD0                                  0x00B0 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE12__SDHC2_RESET_B                              0x00B0 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTE12__FLEXSPI2_B_SS1_B                           0x00B0 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTE12__ENET0_1588_TMR0                            0x00B0 0x0AD4 0xa 0x1
+#define MX8ULP_PAD_PTE12__DBI0_D7                                    0x00B0 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE12__EPDC0_PWRCTRL1                             0x00B0 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE12__WUU1_P5                                    0x00B0 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE13__PTE13                                      0x00B4 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE13__FXIO1_D10                                  0x00B4 0x0844 0x2 0x1
+#define MX8ULP_PAD_PTE13__LPSPI4_SOUT                                0x00B4 0x090C 0x3 0x2
+#define MX8ULP_PAD_PTE13__LPUART7_RTS_B                              0x00B4 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTE13__LPI2C7_SDA                                 0x00B4 0x09C8 0x5 0x1
+#define MX8ULP_PAD_PTE13__TPM4_CH5                                   0x00B4 0x0818 0x6 0x1
+#define MX8ULP_PAD_PTE13__I2S6_TXD1                                  0x00B4 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE13__SDHC1_WP                                   0x00B4 0x0A88 0x8 0x2
+#define MX8ULP_PAD_PTE13__ENET0_1588_CLKIN                           0x00B4 0x0AD0 0xa 0x1
+#define MX8ULP_PAD_PTE13__DBI0_D8                                    0x00B4 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE13__EPDC0_PWRCTRL2                             0x00B4 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE13__LP_HV_DBG_MUX_7                            0x00B4 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE14__PTE14                                      0x00B8 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE14__FXIO1_D9                                   0x00B8 0x08B8 0x2 0x1
+#define MX8ULP_PAD_PTE14__LPSPI4_SCK                                 0x00B8 0x0904 0x3 0x2
+#define MX8ULP_PAD_PTE14__LPUART7_TX                                 0x00B8 0x09E0 0x4 0x1
+#define MX8ULP_PAD_PTE14__LPI2C7_HREQ                                0x00B8 0x09C0 0x5 0x1
+#define MX8ULP_PAD_PTE14__TPM5_CLKIN                                 0x00B8 0x0838 0x6 0x1
+#define MX8ULP_PAD_PTE14__I2S6_TXD2                                  0x00B8 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE14__SDHC1_CD                                   0x00B8 0x0A58 0x8 0x2
+#define MX8ULP_PAD_PTE14__ENET0_MDIO                                 0x00B8 0x0AF0 0xa 0x1
+#define MX8ULP_PAD_PTE14__DBI0_D9                                    0x00B8 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE14__EPDC0_PWRCTRL3                             0x00B8 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE14__LP_HV_DBG_MUX_8                            0x00B8 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE15__PTE15                                      0x00BC 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE15__FXIO1_D8                                   0x00BC 0x08B4 0x2 0x1
+#define MX8ULP_PAD_PTE15__LPSPI4_PCS0                                0x00BC 0x08F4 0x3 0x2
+#define MX8ULP_PAD_PTE15__LPUART7_RX                                 0x00BC 0x09DC 0x4 0x1
+#define MX8ULP_PAD_PTE15__I3C2_PUR                                   0x00BC 0x0000 0x5 0x0
+#define MX8ULP_PAD_PTE15__TPM5_CH0                                   0x00BC 0x0820 0x6 0x1
+#define MX8ULP_PAD_PTE15__I2S6_TXD3                                  0x00BC 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE15__MQS1_LEFT                                  0x00BC 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTE15__ENET0_MDC                                  0x00BC 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTE15__DBI0_D10                                   0x00BC 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE15__EPDC0_PWRCOM                               0x00BC 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE15__WUU1_P6                                    0x00BC 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE16__PTE16                                      0x00C0 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE16__FXIO1_D7                                   0x00C0 0x08B0 0x2 0x1
+#define MX8ULP_PAD_PTE16__LPSPI5_PCS1                                0x00C0 0x0914 0x3 0x1
+#define MX8ULP_PAD_PTE16__LPUART4_CTS_B                              0x00C0 0x08DC 0x4 0x2
+#define MX8ULP_PAD_PTE16__LPI2C4_SCL                                 0x00C0 0x08C8 0x5 0x2
+#define MX8ULP_PAD_PTE16__TPM5_CH1                                   0x00C0 0x0824 0x6 0x1
+#define MX8ULP_PAD_PTE16__MQS1_LEFT                                  0x00C0 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE16__MQS1_RIGHT                                 0x00C0 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTE16__USB0_ID                                    0x00C0 0x0AC8 0x9 0x2
+#define MX8ULP_PAD_PTE16__ENET0_TXEN                                 0x00C0 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTE16__DBI0_D11                                   0x00C0 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE16__EPDC0_PWRIRQ                               0x00C0 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE16__WDOG3_RST                                  0x00C0 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE16__LP_HV_DBG_MUX_9                            0x00C0 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE17__PTE17                                      0x00C4 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE17__FXIO1_D6                                   0x00C4 0x08AC 0x2 0x1
+#define MX8ULP_PAD_PTE17__LPSPI5_PCS2                                0x00C4 0x0918 0x3 0x1
+#define MX8ULP_PAD_PTE17__LPUART4_RTS_B                              0x00C4 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTE17__LPI2C4_SDA                                 0x00C4 0x08CC 0x5 0x2
+#define MX8ULP_PAD_PTE17__MQS1_RIGHT                                 0x00C4 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE17__SDHC1_VS                                   0x00C4 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTE17__USB0_PWR                                   0x00C4 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTE17__ENET0_RXER                                 0x00C4 0x0B08 0xa 0x1
+#define MX8ULP_PAD_PTE17__DBI0_D12                                   0x00C4 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE17__EPDC0_PWRSTAT                              0x00C4 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE17__LP_HV_DBG_MUX_10                           0x00C4 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE18__PTE18                                      0x00C8 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE18__FXIO1_D5                                   0x00C8 0x08A8 0x2 0x1
+#define MX8ULP_PAD_PTE18__LPSPI5_PCS3                                0x00C8 0x091C 0x3 0x1
+#define MX8ULP_PAD_PTE18__LPUART4_TX                                 0x00C8 0x08E4 0x4 0x2
+#define MX8ULP_PAD_PTE18__LPI2C4_HREQ                                0x00C8 0x08C4 0x5 0x2
+#define MX8ULP_PAD_PTE18__I2S7_TX_BCLK                               0x00C8 0x0B6C 0x7 0x2
+#define MX8ULP_PAD_PTE18__USB0_OC                                    0x00C8 0x0AC0 0x9 0x2
+#define MX8ULP_PAD_PTE18__ENET0_CRS_DV                               0x00C8 0x0AEC 0xa 0x1
+#define MX8ULP_PAD_PTE18__DBI0_D13                                   0x00C8 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE18__EPDC0_PWRWAKE                              0x00C8 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE18__LP_HV_DBG_MUX_11                           0x00C8 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE19__PTE19                                      0x00CC 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE19__FXIO1_D4                                   0x00CC 0x08A4 0x2 0x1
+#define MX8ULP_PAD_PTE19__LPUART4_RX                                 0x00CC 0x08E0 0x4 0x2
+#define MX8ULP_PAD_PTE19__LPI2C5_HREQ                                0x00CC 0x08D0 0x5 0x2
+#define MX8ULP_PAD_PTE19__I3C2_PUR                                   0x00CC 0x0000 0x6 0x0
+#define MX8ULP_PAD_PTE19__I2S7_TX_FS                                 0x00CC 0x0B70 0x7 0x2
+#define MX8ULP_PAD_PTE19__USB1_PWR                                   0x00CC 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTE19__ENET0_REFCLK                               0x00CC 0x0AF4 0xa 0x1
+#define MX8ULP_PAD_PTE19__DBI0_D14                                   0x00CC 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE19__EPDC0_GDCLK                                0x00CC 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE19__WUU1_P7                                    0x00CC 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE20__PTE20                                      0x00D0 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE20__FXIO1_D3                                   0x00D0 0x0898 0x2 0x1
+#define MX8ULP_PAD_PTE20__LPSPI5_SIN                                 0x00D0 0x0924 0x3 0x1
+#define MX8ULP_PAD_PTE20__LPUART5_CTS_B                              0x00D0 0x08E8 0x4 0x2
+#define MX8ULP_PAD_PTE20__LPI2C5_SCL                                 0x00D0 0x08D4 0x5 0x2
+#define MX8ULP_PAD_PTE20__I2S7_TXD0                                  0x00D0 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE20__USB1_OC                                    0x00D0 0x0AC4 0x9 0x2
+#define MX8ULP_PAD_PTE20__ENET0_RXD1                                 0x00D0 0x0AFC 0xa 0x1
+#define MX8ULP_PAD_PTE20__DBI0_D15                                   0x00D0 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTE20__EPDC0_GDOE                                 0x00D0 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE20__LP_HV_DBG_MUX_12                           0x00D0 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE21__PTE21                                      0x00D4 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE21__FXIO1_D2                                   0x00D4 0x086C 0x2 0x1
+#define MX8ULP_PAD_PTE21__LPSPI5_SOUT                                0x00D4 0x0928 0x3 0x1
+#define MX8ULP_PAD_PTE21__LPUART5_RTS_B                              0x00D4 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTE21__LPI2C5_SDA                                 0x00D4 0x08D8 0x5 0x2
+#define MX8ULP_PAD_PTE21__TPM6_CLKIN                                 0x00D4 0x0994 0x6 0x1
+#define MX8ULP_PAD_PTE21__I2S7_TXD1                                  0x00D4 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE21__USB1_ID                                    0x00D4 0x0ACC 0x9 0x2
+#define MX8ULP_PAD_PTE21__ENET0_RXD0                                 0x00D4 0x0AF8 0xa 0x1
+#define MX8ULP_PAD_PTE21__EPDC0_GDRL                                 0x00D4 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE21__WDOG4_RST                                  0x00D4 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE21__LP_HV_DBG_MUX_13                           0x00D4 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE22__PTE22                                      0x00D8 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE22__FXIO1_D1                                   0x00D8 0x0840 0x2 0x1
+#define MX8ULP_PAD_PTE22__LPSPI5_SCK                                 0x00D8 0x0920 0x3 0x1
+#define MX8ULP_PAD_PTE22__LPUART5_TX                                 0x00D8 0x08F0 0x4 0x2
+#define MX8ULP_PAD_PTE22__I3C2_SCL                                   0x00D8 0x08BC 0x5 0x2
+#define MX8ULP_PAD_PTE22__TPM6_CH0                                   0x00D8 0x097C 0x6 0x1
+#define MX8ULP_PAD_PTE22__I2S7_TXD2                                  0x00D8 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE22__EXT_AUD_MCLK3                              0x00D8 0x0B14 0x9 0x5
+#define MX8ULP_PAD_PTE22__ENET0_TXD1                                 0x00D8 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTE22__EPDC0_SDOED                                0x00D8 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE22__CLKOUT2                                    0x00D8 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE22__LP_HV_DBG_MUX_14                           0x00D8 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTE23__PTE23                                      0x00DC 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTE23__FXIO1_D0                                   0x00DC 0x083C 0x2 0x1
+#define MX8ULP_PAD_PTE23__LPSPI5_PCS0                                0x00DC 0x0910 0x3 0x1
+#define MX8ULP_PAD_PTE23__LPUART5_RX                                 0x00DC 0x08EC 0x4 0x2
+#define MX8ULP_PAD_PTE23__I3C2_SDA                                   0x00DC 0x08C0 0x5 0x2
+#define MX8ULP_PAD_PTE23__TPM6_CH1                                   0x00DC 0x0980 0x6 0x1
+#define MX8ULP_PAD_PTE23__I2S7_TXD3                                  0x00DC 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTE23__EXT_AUD_MCLK2                              0x00DC 0x0800 0x9 0x1
+#define MX8ULP_PAD_PTE23__ENET0_TXD0                                 0x00DC 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTE23__EPDC0_SDOEZ                                0x00DC 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTE23__CLKOUT1                                    0x00DC 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTE23__LP_HV_DBG_MUX_15                           0x00DC 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF0__PTF0                                        0x0100 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF0__FXIO1_D0                                    0x0100 0x083C 0x2 0x2
+#define MX8ULP_PAD_PTF0__LPUART6_CTS_B                               0x0100 0x09CC 0x4 0x2
+#define MX8ULP_PAD_PTF0__LPI2C6_SCL                                  0x0100 0x09B8 0x5 0x2
+#define MX8ULP_PAD_PTF0__I2S7_RX_BCLK                                0x0100 0x0B64 0x7 0x2
+#define MX8ULP_PAD_PTF0__SDHC1_D1                                    0x0100 0x0A68 0x8 0x2
+#define MX8ULP_PAD_PTF0__ENET0_RXD1                                  0x0100 0x0AFC 0x9 0x2
+#define MX8ULP_PAD_PTF0__USB1_ID                                     0x0100 0x0ACC 0xa 0x3
+#define MX8ULP_PAD_PTF0__EPDC0_SDOE                                  0x0100 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF0__DPI0_D23                                    0x0100 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF0__WUU1_P8                                     0x0100 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF1__PTF1                                        0x0104 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF1__FXIO1_D1                                    0x0104 0x0840 0x2 0x2
+#define MX8ULP_PAD_PTF1__LPUART6_RTS_B                               0x0104 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTF1__LPI2C6_SDA                                  0x0104 0x09BC 0x5 0x2
+#define MX8ULP_PAD_PTF1__I2S7_RX_FS                                  0x0104 0x0B68 0x7 0x2
+#define MX8ULP_PAD_PTF1__SDHC1_D0                                    0x0104 0x0A64 0x8 0x2
+#define MX8ULP_PAD_PTF1__ENET0_RXD0                                  0x0104 0x0AF8 0x9 0x2
+#define MX8ULP_PAD_PTF1__LP_HV_DBG_MUX_16                            0x0104 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF1__EPDC0_SDSHR                                 0x0104 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF1__DPI0_D22                                    0x0104 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF1__WDOG3_RST                                   0x0104 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF1__DEBUG_MUX0_16                               0x0104 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF1__DEBUG_MUX1_22                               0x0104 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF2__PTF2                                        0x0108 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF2__FXIO1_D2                                    0x0108 0x086C 0x2 0x2
+#define MX8ULP_PAD_PTF2__LPUART6_TX                                  0x0108 0x09D4 0x4 0x2
+#define MX8ULP_PAD_PTF2__LPI2C6_HREQ                                 0x0108 0x09B4 0x5 0x2
+#define MX8ULP_PAD_PTF2__I2S7_RXD0                                   0x0108 0x0B54 0x7 0x2
+#define MX8ULP_PAD_PTF2__SDHC1_CLK                                   0x0108 0x0A5C 0x8 0x2
+#define MX8ULP_PAD_PTF2__ENET0_TXD1                                  0x0108 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTF2__USB0_ID                                     0x0108 0x0AC8 0xa 0x3
+#define MX8ULP_PAD_PTF2__EPDC0_SDCE9                                 0x0108 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF2__DPI0_D21                                    0x0108 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF2__LP_HV_DBG_MUX_17                            0x0108 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF2__DEBUG_MUX0_17                               0x0108 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF2__DEBUG_MUX1_23                               0x0108 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF3__PTF3                                        0x010C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF3__FXIO1_D3                                    0x010C 0x0898 0x2 0x2
+#define MX8ULP_PAD_PTF3__LPUART6_RX                                  0x010C 0x09D0 0x4 0x2
+#define MX8ULP_PAD_PTF3__LPI2C7_HREQ                                 0x010C 0x09C0 0x5 0x2
+#define MX8ULP_PAD_PTF3__I2S7_RXD1                                   0x010C 0x0B58 0x7 0x2
+#define MX8ULP_PAD_PTF3__SDHC1_CMD                                   0x010C 0x0A60 0x8 0x2
+#define MX8ULP_PAD_PTF3__ENET0_TXD0                                  0x010C 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTF3__USB0_PWR                                    0x010C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF3__EPDC0_SDCE8                                 0x010C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF3__DPI0_D20                                    0x010C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF3__WUU1_P9                                     0x010C 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF3__DEBUG_MUX1_24                               0x010C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF4__PTF4                                        0x0110 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF4__FXIO1_D4                                    0x0110 0x08A4 0x2 0x2
+#define MX8ULP_PAD_PTF4__LPSPI4_PCS1                                 0x0110 0x08F8 0x3 0x3
+#define MX8ULP_PAD_PTF4__LPUART7_CTS_B                               0x0110 0x09D8 0x4 0x2
+#define MX8ULP_PAD_PTF4__LPI2C7_SCL                                  0x0110 0x09C4 0x5 0x2
+#define MX8ULP_PAD_PTF4__TPM7_CLKIN                                  0x0110 0x09B0 0x6 0x1
+#define MX8ULP_PAD_PTF4__I2S7_RXD2                                   0x0110 0x0B5C 0x7 0x2
+#define MX8ULP_PAD_PTF4__SDHC1_D3                                    0x0110 0x0A70 0x8 0x2
+#define MX8ULP_PAD_PTF4__ENET0_TXEN                                  0x0110 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTF4__USB0_OC                                     0x0110 0x0AC0 0xa 0x3
+#define MX8ULP_PAD_PTF4__EPDC0_SDCE7                                 0x0110 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF4__DPI0_D19                                    0x0110 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF4__WUU1_P10                                    0x0110 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF4__DEBUG_MUX1_25                               0x0110 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF5__PTF5                                        0x0114 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF5__FXIO1_D5                                    0x0114 0x08A8 0x2 0x2
+#define MX8ULP_PAD_PTF5__LPSPI4_PCS2                                 0x0114 0x08FC 0x3 0x3
+#define MX8ULP_PAD_PTF5__LPUART7_RTS_B                               0x0114 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTF5__LPI2C7_SDA                                  0x0114 0x09C8 0x5 0x2
+#define MX8ULP_PAD_PTF5__TPM7_CH0                                    0x0114 0x0998 0x6 0x1
+#define MX8ULP_PAD_PTF5__I2S7_RXD3                                   0x0114 0x0B60 0x7 0x2
+#define MX8ULP_PAD_PTF5__SDHC1_D2                                    0x0114 0x0A6C 0x8 0x2
+#define MX8ULP_PAD_PTF5__ENET0_RXER                                  0x0114 0x0B08 0x9 0x2
+#define MX8ULP_PAD_PTF5__USB1_PWR                                    0x0114 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF5__EPDC0_SDCE6                                 0x0114 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF5__DPI0_D18                                    0x0114 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF5__LP_HV_DBG_MUX_18                            0x0114 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF5__DEBUG_MUX0_18                               0x0114 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF5__DEBUG_MUX1_26                               0x0114 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF6__LP_HV_DBG_MUX_19                            0x0118 0x0000 0x0 0x0
+#define MX8ULP_PAD_PTF6__PTF6                                        0x0118 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF6__FXIO1_D6                                    0x0118 0x08AC 0x2 0x2
+#define MX8ULP_PAD_PTF6__LPSPI4_PCS3                                 0x0118 0x0900 0x3 0x3
+#define MX8ULP_PAD_PTF6__LPUART7_TX                                  0x0118 0x09E0 0x4 0x2
+#define MX8ULP_PAD_PTF6__I3C2_SCL                                    0x0118 0x08BC 0x5 0x3
+#define MX8ULP_PAD_PTF6__TPM7_CH1                                    0x0118 0x099C 0x6 0x1
+#define MX8ULP_PAD_PTF6__I2S7_MCLK                                   0x0118 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF6__SDHC1_D4                                    0x0118 0x0A74 0x8 0x2
+#define MX8ULP_PAD_PTF6__ENET0_CRS_DV                                0x0118 0x0AEC 0x9 0x2
+#define MX8ULP_PAD_PTF6__USB1_OC                                     0x0118 0x0AC4 0xa 0x3
+#define MX8ULP_PAD_PTF6__EPDC0_SDCE5                                 0x0118 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF6__DPI0_D17                                    0x0118 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF6__WDOG4_RST                                   0x0118 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF6__DEBUG_MUX0_19                               0x0118 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF6__DEBUG_MUX1_27                               0x0118 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF7__PTF7                                        0x011C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF7__FXIO1_D7                                    0x011C 0x08B0 0x2 0x2
+#define MX8ULP_PAD_PTF7__LPUART7_RX                                  0x011C 0x09DC 0x4 0x2
+#define MX8ULP_PAD_PTF7__I3C2_SDA                                    0x011C 0x08C0 0x5 0x3
+#define MX8ULP_PAD_PTF7__TPM7_CH2                                    0x011C 0x09A0 0x6 0x1
+#define MX8ULP_PAD_PTF7__MQS1_LEFT                                   0x011C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF7__SDHC1_D5                                    0x011C 0x0A78 0x8 0x2
+#define MX8ULP_PAD_PTF7__ENET0_REFCLK                                0x011C 0x0AF4 0x9 0x2
+#define MX8ULP_PAD_PTF7__TRACE0_D15                                  0x011C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF7__EPDC0_SDCE4                                 0x011C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF7__DPI0_D16                                    0x011C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF7__WUU1_P11                                    0x011C 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF7__DEBUG_MUX1_28                               0x011C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF8__PTF8                                        0x0120 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF8__FXIO1_D8                                    0x0120 0x08B4 0x2 0x2
+#define MX8ULP_PAD_PTF8__LPSPI4_SIN                                  0x0120 0x0908 0x3 0x3
+#define MX8ULP_PAD_PTF8__LPUART4_CTS_B                               0x0120 0x08DC 0x4 0x3
+#define MX8ULP_PAD_PTF8__LPI2C4_SCL                                  0x0120 0x08C8 0x5 0x3
+#define MX8ULP_PAD_PTF8__TPM7_CH3                                    0x0120 0x09A4 0x6 0x1
+#define MX8ULP_PAD_PTF8__MQS1_RIGHT                                  0x0120 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF8__SDHC1_D6                                    0x0120 0x0A7C 0x8 0x2
+#define MX8ULP_PAD_PTF8__ENET0_MDIO                                  0x0120 0x0AF0 0x9 0x2
+#define MX8ULP_PAD_PTF8__TRACE0_D14                                  0x0120 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF8__EPDC0_D15                                   0x0120 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF8__DPI0_D15                                    0x0120 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF8__LP_HV_DBG_MUX_24                            0x0120 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF8__DEBUG_MUX1_29                               0x0120 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF9__PTF9                                        0x0124 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF9__FXIO1_D9                                    0x0124 0x08B8 0x2 0x2
+#define MX8ULP_PAD_PTF9__LPSPI4_SOUT                                 0x0124 0x090C 0x3 0x3
+#define MX8ULP_PAD_PTF9__LPUART4_RTS_B                               0x0124 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTF9__LPI2C4_SDA                                  0x0124 0x08CC 0x5 0x3
+#define MX8ULP_PAD_PTF9__TPM7_CH4                                    0x0124 0x09A8 0x6 0x1
+#define MX8ULP_PAD_PTF9__EXT_AUD_MCLK2                               0x0124 0x0800 0x7 0x2
+#define MX8ULP_PAD_PTF9__SDHC1_D7                                    0x0124 0x0A80 0x8 0x2
+#define MX8ULP_PAD_PTF9__ENET0_MDC                                   0x0124 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTF9__TRACE0_D13                                  0x0124 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF9__EPDC0_D14                                   0x0124 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF9__DPI0_D14                                    0x0124 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF9__LP_HV_DBG_MUX_25                            0x0124 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF9__DEBUG_MUX1_30                               0x0124 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF10__LP_HV_DBG_MUX_26                           0x0128 0x0000 0x0 0x0
+#define MX8ULP_PAD_PTF10__PTF10                                      0x0128 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF10__FXIO1_D10                                  0x0128 0x0844 0x2 0x2
+#define MX8ULP_PAD_PTF10__LPSPI4_SCK                                 0x0128 0x0904 0x3 0x3
+#define MX8ULP_PAD_PTF10__LPUART4_TX                                 0x0128 0x08E4 0x4 0x3
+#define MX8ULP_PAD_PTF10__LPI2C4_HREQ                                0x0128 0x08C4 0x5 0x3
+#define MX8ULP_PAD_PTF10__TPM7_CH5                                   0x0128 0x09AC 0x6 0x1
+#define MX8ULP_PAD_PTF10__I2S4_RX_BCLK                               0x0128 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF10__SDHC1_DQS                                  0x0128 0x0A84 0x8 0x2
+#define MX8ULP_PAD_PTF10__ENET0_1588_CLKIN                           0x0128 0x0AD0 0x9 0x2
+#define MX8ULP_PAD_PTF10__TRACE0_D12                                 0x0128 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF10__EPDC0_D13                                  0x0128 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF10__DPI0_D13                                   0x0128 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF10__DEBUG_MUX0_20                              0x0128 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF10__DEBUG_MUX1_31                              0x0128 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF11__PTF11                                      0x012C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF11__FXIO1_D11                                  0x012C 0x0848 0x2 0x2
+#define MX8ULP_PAD_PTF11__LPSPI4_PCS0                                0x012C 0x08F4 0x3 0x3
+#define MX8ULP_PAD_PTF11__LPUART4_RX                                 0x012C 0x08E0 0x4 0x3
+#define MX8ULP_PAD_PTF11__TPM4_CLKIN                                 0x012C 0x081C 0x6 0x2
+#define MX8ULP_PAD_PTF11__I2S4_RX_FS                                 0x012C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF11__SDHC1_RESET_B                              0x012C 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTF11__ENET0_1588_TMR0                            0x012C 0x0AD4 0x9 0x2
+#define MX8ULP_PAD_PTF11__TRACE0_D11                                 0x012C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF11__EPDC0_D12                                  0x012C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF11__DPI0_D12                                   0x012C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF11__LP_HV_DBG_MUX_27                           0x012C 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF11__DEBUG_MUX1_32                              0x012C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF12__PTF12                                      0x0130 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF12__FXIO1_D12                                  0x0130 0x084C 0x2 0x2
+#define MX8ULP_PAD_PTF12__LPSPI5_PCS1                                0x0130 0x0914 0x3 0x2
+#define MX8ULP_PAD_PTF12__LPUART5_CTS_B                              0x0130 0x08E8 0x4 0x3
+#define MX8ULP_PAD_PTF12__LPI2C5_SCL                                 0x0130 0x08D4 0x5 0x3
+#define MX8ULP_PAD_PTF12__TPM4_CH0                                   0x0130 0x0804 0x6 0x2
+#define MX8ULP_PAD_PTF12__I2S4_RXD0                                  0x0130 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF12__SDHC2_WP                                   0x0130 0x0ABC 0x8 0x1
+#define MX8ULP_PAD_PTF12__ENET0_1588_TMR1                            0x0130 0x0AD8 0x9 0x2
+#define MX8ULP_PAD_PTF12__TRACE0_D10                                 0x0130 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF12__EPDC0_D11                                  0x0130 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF12__DPI0_D11                                   0x0130 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF12__LP_HV_DBG_MUX_28                           0x0130 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF12__DEBUG_MUX1_33                              0x0130 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF13__PTF13                                      0x0134 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF13__FXIO1_D13                                  0x0134 0x0850 0x2 0x2
+#define MX8ULP_PAD_PTF13__LPSPI5_PCS2                                0x0134 0x0918 0x3 0x2
+#define MX8ULP_PAD_PTF13__LPUART5_RTS_B                              0x0134 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTF13__LPI2C5_SDA                                 0x0134 0x08D8 0x5 0x3
+#define MX8ULP_PAD_PTF13__TPM4_CH1                                   0x0134 0x0808 0x6 0x2
+#define MX8ULP_PAD_PTF13__I2S4_RXD1                                  0x0134 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF13__SDHC2_CD                                   0x0134 0x0A8C 0x8 0x1
+#define MX8ULP_PAD_PTF13__ENET0_1588_TMR2                            0x0134 0x0ADC 0x9 0x2
+#define MX8ULP_PAD_PTF13__TRACE0_D9                                  0x0134 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF13__EPDC0_D10                                  0x0134 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF13__DPI0_D10                                   0x0134 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF13__DEBUG_MUX0_21                              0x0134 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF13__LP_HV_DBG_MUX_29                           0x0134 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF14__PTF14                                      0x0138 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF14__FXIO1_D14                                  0x0138 0x0854 0x2 0x2
+#define MX8ULP_PAD_PTF14__LPSPI5_PCS3                                0x0138 0x091C 0x3 0x2
+#define MX8ULP_PAD_PTF14__LPUART5_TX                                 0x0138 0x08F0 0x4 0x3
+#define MX8ULP_PAD_PTF14__LPI2C5_HREQ                                0x0138 0x08D0 0x5 0x3
+#define MX8ULP_PAD_PTF14__TPM4_CH2                                   0x0138 0x080C 0x6 0x2
+#define MX8ULP_PAD_PTF14__I2S4_MCLK                                  0x0138 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF14__SDHC2_VS                                   0x0138 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTF14__ENET0_1588_TMR3                            0x0138 0x0AE0 0x9 0x2
+#define MX8ULP_PAD_PTF14__TRACE0_D8                                  0x0138 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF14__EPDC0_D9                                   0x0138 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF14__DPI0_D9                                    0x0138 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF14__DEBUG_MUX0_22                              0x0138 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF14__LP_HV_DBG_MUX_30                           0x0138 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF15__PTF15                                      0x013C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF15__FXIO1_D15                                  0x013C 0x0858 0x2 0x2
+#define MX8ULP_PAD_PTF15__LPUART5_RX                                 0x013C 0x08EC 0x4 0x3
+#define MX8ULP_PAD_PTF15__TPM4_CH3                                   0x013C 0x0810 0x6 0x2
+#define MX8ULP_PAD_PTF15__I2S4_TX_BCLK                               0x013C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF15__SDHC2_D1                                   0x013C 0x0A9C 0x8 0x3
+#define MX8ULP_PAD_PTF15__ENET0_RXD2                                 0x013C 0x0B00 0x9 0x2
+#define MX8ULP_PAD_PTF15__TRACE0_D7                                  0x013C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF15__EPDC0_D8                                   0x013C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF15__DPI0_D8                                    0x013C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF15__LP_HV_DBG_MUX_31                           0x013C 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF16__PTF16                                      0x0140 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF16__FXIO1_D16                                  0x0140 0x085C 0x2 0x2
+#define MX8ULP_PAD_PTF16__LPSPI5_SIN                                 0x0140 0x0924 0x3 0x2
+#define MX8ULP_PAD_PTF16__LPUART6_CTS_B                              0x0140 0x09CC 0x4 0x3
+#define MX8ULP_PAD_PTF16__LPI2C6_SCL                                 0x0140 0x09B8 0x5 0x3
+#define MX8ULP_PAD_PTF16__TPM4_CH4                                   0x0140 0x0814 0x6 0x2
+#define MX8ULP_PAD_PTF16__I2S4_TX_FS                                 0x0140 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF16__SDHC2_D0                                   0x0140 0x0A98 0x8 0x3
+#define MX8ULP_PAD_PTF16__ENET0_RXD3                                 0x0140 0x0B04 0x9 0x2
+#define MX8ULP_PAD_PTF16__TRACE0_D6                                  0x0140 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF16__EPDC0_D7                                   0x0140 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF16__DPI0_D7                                    0x0140 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF16__LP_HV_DBG_MUX_32                           0x0140 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF17__PTF17                                      0x0144 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF17__FXIO1_D17                                  0x0144 0x0860 0x2 0x2
+#define MX8ULP_PAD_PTF17__LPSPI5_SOUT                                0x0144 0x0928 0x3 0x2
+#define MX8ULP_PAD_PTF17__LPUART6_RTS_B                              0x0144 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTF17__LPI2C6_SDA                                 0x0144 0x09BC 0x5 0x3
+#define MX8ULP_PAD_PTF17__TPM4_CH5                                   0x0144 0x0818 0x6 0x2
+#define MX8ULP_PAD_PTF17__I2S4_TXD0                                  0x0144 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF17__SDHC2_CLK                                  0x0144 0x0A90 0x8 0x3
+#define MX8ULP_PAD_PTF17__ENET0_RXCLK                                0x0144 0x0B0C 0x9 0x2
+#define MX8ULP_PAD_PTF17__TRACE0_D5                                  0x0144 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF17__EPDC0_D6                                   0x0144 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF17__DPI0_D6                                    0x0144 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF17__DEBUG_MUX0_23                              0x0144 0x0000 0xe 0x0
+#define MX8ULP_PAD_PTF17__LP_HV_DBG_MUX_33                           0x0144 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF18__PTF18                                      0x0148 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF18__FXIO1_D18                                  0x0148 0x0864 0x2 0x2
+#define MX8ULP_PAD_PTF18__LPSPI5_SCK                                 0x0148 0x0920 0x3 0x2
+#define MX8ULP_PAD_PTF18__LPUART6_TX                                 0x0148 0x09D4 0x4 0x3
+#define MX8ULP_PAD_PTF18__LPI2C6_HREQ                                0x0148 0x09B4 0x5 0x3
+#define MX8ULP_PAD_PTF18__TPM5_CLKIN                                 0x0148 0x0838 0x6 0x2
+#define MX8ULP_PAD_PTF18__I2S4_TXD1                                  0x0148 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF18__SDHC2_CMD                                  0x0148 0x0A94 0x8 0x3
+#define MX8ULP_PAD_PTF18__ENET0_TXD2                                 0x0148 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTF18__TRACE0_D4                                  0x0148 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF18__EPDC0_D5                                   0x0148 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF18__DPI0_D5                                    0x0148 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF19__PTF19                                      0x014C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF19__FXIO1_D19                                  0x014C 0x0868 0x2 0x2
+#define MX8ULP_PAD_PTF19__LPSPI5_PCS0                                0x014C 0x0910 0x3 0x2
+#define MX8ULP_PAD_PTF19__LPUART6_RX                                 0x014C 0x09D0 0x4 0x3
+#define MX8ULP_PAD_PTF19__TPM5_CH0                                   0x014C 0x0820 0x6 0x2
+#define MX8ULP_PAD_PTF19__I2S5_RX_BCLK                               0x014C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF19__SDHC2_D3                                   0x014C 0x0AA4 0x8 0x3
+#define MX8ULP_PAD_PTF19__ENET0_TXD3                                 0x014C 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTF19__TRACE0_D3                                  0x014C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF19__EPDC0_D4                                   0x014C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF19__DPI0_D4                                    0x014C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF20__PTF20                                      0x0150 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF20__FXIO1_D20                                  0x0150 0x0870 0x2 0x2
+#define MX8ULP_PAD_PTF20__LPUART7_CTS_B                              0x0150 0x09D8 0x4 0x3
+#define MX8ULP_PAD_PTF20__LPI2C7_SCL                                 0x0150 0x09C4 0x5 0x3
+#define MX8ULP_PAD_PTF20__TPM5_CH1                                   0x0150 0x0824 0x6 0x2
+#define MX8ULP_PAD_PTF20__I2S5_RX_FS                                 0x0150 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF20__SDHC2_D2                                   0x0150 0x0AA0 0x8 0x3
+#define MX8ULP_PAD_PTF20__ENET0_TXCLK                                0x0150 0x0B10 0x9 0x2
+#define MX8ULP_PAD_PTF20__TRACE0_D2                                  0x0150 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF20__EPDC0_D3                                   0x0150 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF20__DPI0_D3                                    0x0150 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF21__PTF21                                      0x0154 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF21__FXIO1_D21                                  0x0154 0x0874 0x2 0x2
+#define MX8ULP_PAD_PTF21__SPDIF_CLK                                  0x0154 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTF21__LPUART7_RTS_B                              0x0154 0x0000 0x4 0x0
+#define MX8ULP_PAD_PTF21__LPI2C7_SDA                                 0x0154 0x09C8 0x5 0x3
+#define MX8ULP_PAD_PTF21__TPM6_CLKIN                                 0x0154 0x0994 0x6 0x2
+#define MX8ULP_PAD_PTF21__I2S5_RXD0                                  0x0154 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF21__SDHC2_D4                                   0x0154 0x0AA8 0x8 0x2
+#define MX8ULP_PAD_PTF21__ENET0_CRS                                  0x0154 0x0AE8 0x9 0x2
+#define MX8ULP_PAD_PTF21__TRACE0_D1                                  0x0154 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF21__EPDC0_D2                                   0x0154 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF21__DPI0_D2                                    0x0154 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF22__PTF22                                      0x0158 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF22__FXIO1_D22                                  0x0158 0x0878 0x2 0x2
+#define MX8ULP_PAD_PTF22__SPDIF_IN0                                  0x0158 0x0B74 0x3 0x3
+#define MX8ULP_PAD_PTF22__LPUART7_TX                                 0x0158 0x09E0 0x4 0x3
+#define MX8ULP_PAD_PTF22__LPI2C7_HREQ                                0x0158 0x09C0 0x5 0x3
+#define MX8ULP_PAD_PTF22__TPM6_CH0                                   0x0158 0x097C 0x6 0x2
+#define MX8ULP_PAD_PTF22__I2S5_RXD1                                  0x0158 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF22__SDHC2_D5                                   0x0158 0x0AAC 0x8 0x2
+#define MX8ULP_PAD_PTF22__ENET0_COL                                  0x0158 0x0AE4 0x9 0x2
+#define MX8ULP_PAD_PTF22__TRACE0_D0                                  0x0158 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF22__EPDC0_D1                                   0x0158 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF22__DPI0_D1                                    0x0158 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF23__PTF23                                      0x015C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF23__FXIO1_D23                                  0x015C 0x087C 0x2 0x2
+#define MX8ULP_PAD_PTF23__SPDIF_OUT0                                 0x015C 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTF23__LPUART7_RX                                 0x015C 0x09DC 0x4 0x3
+#define MX8ULP_PAD_PTF23__I3C2_PUR                                   0x015C 0x0000 0x5 0x0
+#define MX8ULP_PAD_PTF23__TPM6_CH1                                   0x015C 0x0980 0x6 0x2
+#define MX8ULP_PAD_PTF23__I2S5_RXD2                                  0x015C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF23__SDHC2_D6                                   0x015C 0x0AB0 0x8 0x2
+#define MX8ULP_PAD_PTF23__ENET0_TXER                                 0x015C 0x0000 0x9 0x0
+#define MX8ULP_PAD_PTF23__TRACE0_CLKOUT                              0x015C 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF23__EPDC0_D0                                   0x015C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF23__DPI0_D0                                    0x015C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF24__PTF24                                      0x0160 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF24__FXIO1_D24                                  0x0160 0x0880 0x2 0x2
+#define MX8ULP_PAD_PTF24__SPDIF_IN1                                  0x0160 0x0B78 0x3 0x3
+#define MX8ULP_PAD_PTF24__I3C2_SCL                                   0x0160 0x08BC 0x5 0x4
+#define MX8ULP_PAD_PTF24__I2S5_RXD3                                  0x0160 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF24__SDHC2_D7                                   0x0160 0x0AB4 0x8 0x2
+#define MX8ULP_PAD_PTF24__DBI0_WRX                                   0x0160 0x0000 0xa 0x0
+#define MX8ULP_PAD_PTF24__EPDC0_SDCLK                                0x0160 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF24__DPI0_PCLK                                  0x0160 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF24__WUU1_P12                                   0x0160 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF25__PTF25                                      0x0164 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF25__FXIO1_D25                                  0x0164 0x0884 0x2 0x2
+#define MX8ULP_PAD_PTF25__SPDIF_OUT1                                 0x0164 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTF25__I3C2_SDA                                   0x0164 0x08C0 0x5 0x4
+#define MX8ULP_PAD_PTF25__TPM7_CH5                                   0x0164 0x09AC 0x6 0x2
+#define MX8ULP_PAD_PTF25__I2S5_MCLK                                  0x0164 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF25__SDHC2_DQS                                  0x0164 0x0AB8 0x8 0x2
+#define MX8ULP_PAD_PTF25__EXT_AUD_MCLK2                              0x0164 0x0800 0x9 0x3
+#define MX8ULP_PAD_PTF25__EPDC0_GDSP                                 0x0164 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF25__DPI0_VSYNC                                 0x0164 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF25__WUU1_P13                                   0x0164 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF26__PTF26                                      0x0168 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF26__FXIO1_D26                                  0x0168 0x0888 0x2 0x2
+#define MX8ULP_PAD_PTF26__SPDIF_IN2                                  0x0168 0x0B7C 0x3 0x3
+#define MX8ULP_PAD_PTF26__TPM7_CLKIN                                 0x0168 0x09B0 0x6 0x2
+#define MX8ULP_PAD_PTF26__I2S5_TX_BCLK                               0x0168 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF26__SDHC2_RESET_B                              0x0168 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTF26__EPDC0_SDLE                                 0x0168 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF26__DPI0_HSYNC                                 0x0168 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF26__WUU1_P14                                   0x0168 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF27__PTF27                                      0x016C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF27__FXIO1_D27                                  0x016C 0x088C 0x2 0x2
+#define MX8ULP_PAD_PTF27__SPDIF_OUT2                                 0x016C 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTF27__TPM7_CH0                                   0x016C 0x0998 0x6 0x2
+#define MX8ULP_PAD_PTF27__I2S5_TX_FS                                 0x016C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF27__SDHC2_WP                                   0x016C 0x0ABC 0x8 0x2
+#define MX8ULP_PAD_PTF27__EPDC0_SDCE0                                0x016C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF27__DPI0_DE                                    0x016C 0x0000 0xc 0x0
+#define MX8ULP_PAD_PTF27__WUU1_P15                                   0x016C 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF28__PTF28                                      0x0170 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF28__FXIO1_D28                                  0x0170 0x0890 0x2 0x2
+#define MX8ULP_PAD_PTF28__SPDIF_IN3                                  0x0170 0x0B80 0x3 0x3
+#define MX8ULP_PAD_PTF28__TPM7_CH1                                   0x0170 0x099C 0x6 0x2
+#define MX8ULP_PAD_PTF28__I2S5_TXD0                                  0x0170 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF28__SDHC2_CD                                   0x0170 0x0A8C 0x8 0x2
+#define MX8ULP_PAD_PTF28__EPDC0_SDCLK_B                              0x0170 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF28__LP_HV_DBG_MUX_20                           0x0170 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF29__PTF29                                      0x0174 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF29__FXIO1_D29                                  0x0174 0x0894 0x2 0x2
+#define MX8ULP_PAD_PTF29__SPDIF_OUT3                                 0x0174 0x0000 0x3 0x0
+#define MX8ULP_PAD_PTF29__TPM7_CH2                                   0x0174 0x09A0 0x6 0x2
+#define MX8ULP_PAD_PTF29__I2S5_TXD1                                  0x0174 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF29__SDHC2_VS                                   0x0174 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTF29__EPDC0_SDCE1                                0x0174 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF29__WDOG3_RST                                  0x0174 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF29__LP_HV_DBG_MUX_21                           0x0174 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF30__PTF30                                      0x0178 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF30__FXIO1_D30                                  0x0178 0x089C 0x2 0x2
+#define MX8ULP_PAD_PTF30__TPM7_CH3                                   0x0178 0x09A4 0x6 0x2
+#define MX8ULP_PAD_PTF30__I2S5_TXD2                                  0x0178 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF30__MQS1_LEFT                                  0x0178 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTF30__EPDC0_SDCE2                                0x0178 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF30__WDOG4_RST                                  0x0178 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF30__LP_HV_DBG_MUX_22                           0x0178 0x0000 0xf 0x0
+#define MX8ULP_PAD_PTF31__PTF31                                      0x017C 0x0000 0x1 0x0
+#define MX8ULP_PAD_PTF31__FXIO1_D31                                  0x017C 0x08A0 0x2 0x2
+#define MX8ULP_PAD_PTF31__TPM7_CH4                                   0x017C 0x09A8 0x6 0x2
+#define MX8ULP_PAD_PTF31__I2S5_TXD3                                  0x017C 0x0000 0x7 0x0
+#define MX8ULP_PAD_PTF31__MQS1_RIGHT                                 0x017C 0x0000 0x8 0x0
+#define MX8ULP_PAD_PTF31__EPDC0_SDCE3                                0x017C 0x0000 0xb 0x0
+#define MX8ULP_PAD_PTF31__WDOG5_RST                                  0x017C 0x0000 0xd 0x0
+#define MX8ULP_PAD_PTF31__LP_HV_DBG_MUX_23                           0x017C 0x0000 0xf 0x0
+#define MX8ULP_PAD_BOOT_MODE0__BOOT_MODE0                            0x0400 0x0000 0x0 0x0
+#define MX8ULP_PAD_BOOT_MODE1__BOOT_MODE1                            0x0404 0x0000 0x0 0x0
+
+#endif /* __DTS_IMX8ULP_PINFUNC_H */
diff --git a/arch/arm64/boot/dts/freescale/imx8ulp.dtsi b/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
new file mode 100644 (file)
index 0000000..a987ff7
--- /dev/null
@@ -0,0 +1,434 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 NXP
+ */
+
+#include <dt-bindings/clock/imx8ulp-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/imx8ulp-power.h>
+
+#include "imx8ulp-pinfunc.h"
+
+/ {
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               gpio0 = &gpiod;
+               gpio1 = &gpioe;
+               gpio2 = &gpiof;
+               mmc0 = &usdhc0;
+               mmc1 = &usdhc1;
+               mmc2 = &usdhc2;
+               serial0 = &lpuart4;
+               serial1 = &lpuart5;
+               serial2 = &lpuart6;
+               serial3 = &lpuart7;
+       };
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               A35_0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a35";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+                       next-level-cache = <&A35_L2>;
+               };
+
+               A35_1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a35";
+                       reg = <0x0 0x1>;
+                       enable-method = "psci";
+                       next-level-cache = <&A35_L2>;
+               };
+
+               A35_L2: l2-cache0 {
+                       compatible = "cache";
+               };
+       };
+
+       gic: interrupt-controller@2d400000 {
+               compatible = "arm,gic-v3";
+               reg = <0x0 0x2d400000 0 0x10000>, /* GIC Dist */
+                     <0x0 0x2d440000 0 0xc0000>; /* GICR (RD_base + SGI_base) */
+               #interrupt-cells = <3>;
+               interrupt-controller;
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */
+       };
+
+       frosc: clock-frosc {
+               compatible = "fixed-clock";
+               clock-frequency = <192000000>;
+               clock-output-names = "frosc";
+               #clock-cells = <0>;
+       };
+
+       lposc: clock-lposc {
+               compatible = "fixed-clock";
+               clock-frequency = <1000000>;
+               clock-output-names = "lposc";
+               #clock-cells = <0>;
+       };
+
+       rosc: clock-rosc {
+               compatible = "fixed-clock";
+               clock-frequency = <32768>;
+               clock-output-names = "rosc";
+               #clock-cells = <0>;
+       };
+
+       sosc: clock-sosc {
+               compatible = "fixed-clock";
+               clock-frequency = <24000000>;
+               clock-output-names = "sosc";
+               #clock-cells = <0>;
+       };
+
+       sram@2201f000 {
+               compatible = "mmio-sram";
+               reg = <0x0 0x2201f000 0x0 0x1000>;
+
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0x0 0x2201f000 0x1000>;
+
+               scmi_buf: scmi-buf@0 {
+                       compatible = "arm,scmi-shmem";
+                       reg = <0x0 0x400>;
+               };
+       };
+
+       firmware {
+               scmi {
+                       compatible = "arm,scmi-smc";
+                       arm,smc-id = <0xc20000fe>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       shmem = <&scmi_buf>;
+
+                       scmi_devpd: protocol@11 {
+                               reg = <0x11>;
+                               #power-domain-cells = <1>;
+                       };
+
+                       scmi_sensor: protocol@15 {
+                               reg = <0x15>;
+                               #thermal-sensor-cells = <0>;
+                       };
+               };
+       };
+
+       soc@0 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x0 0x0 0x40000000>;
+
+               per_bridge3: bus@29000000 {
+                       compatible = "simple-bus";
+                       reg = <0x29000000 0x800000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       wdog3: watchdog@292a0000 {
+                               compatible = "fsl,imx8ulp-wdt", "fsl,imx7ulp-wdt";
+                               reg = <0x292a0000 0x10000>;
+                               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc3 IMX8ULP_CLK_WDOG3>;
+                               assigned-clocks = <&pcc3 IMX8ULP_CLK_WDOG3>;
+                               assigned-clock-parents = <&cgc1 IMX8ULP_CLK_SOSC_DIV2>;
+                               timeout-sec = <40>;
+                       };
+
+                       cgc1: clock-controller@292c0000 {
+                               compatible = "fsl,imx8ulp-cgc1";
+                               reg = <0x292c0000 0x10000>;
+                               clocks = <&rosc>, <&sosc>, <&frosc>, <&lposc>;
+                               clock-names = "rosc", "sosc", "frosc", "lposc";
+                               #clock-cells = <1>;
+                       };
+
+                       pcc3: clock-controller@292d0000 {
+                               compatible = "fsl,imx8ulp-pcc3";
+                               reg = <0x292d0000 0x10000>;
+                               #clock-cells = <1>;
+                       };
+
+                       tpm5: tpm@29340000 {
+                               compatible = "fsl,imx8ulp-tpm", "fsl,imx7ulp-tpm";
+                               reg = <0x29340000 0x1000>;
+                               interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc3 IMX8ULP_CLK_TPM5>,
+                                        <&pcc3 IMX8ULP_CLK_TPM5>;
+                               clock-names = "ipg", "per";
+                               status = "disabled";
+                       };
+
+                       lpi2c4: i2c@29370000 {
+                               compatible = "fsl,imx8ulp-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x29370000 0x10000>;
+                               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc3 IMX8ULP_CLK_LPI2C4>,
+                                        <&pcc3 IMX8ULP_CLK_LPI2C4>;
+                               clock-names = "per", "ipg";
+                               assigned-clocks = <&pcc3 IMX8ULP_CLK_LPI2C4>;
+                               assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
+                               assigned-clock-rates = <48000000>;
+                               status = "disabled";
+                       };
+
+                       lpi2c5: i2c@29380000 {
+                               compatible = "fsl,imx8ulp-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x29380000 0x10000>;
+                               interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc3 IMX8ULP_CLK_LPI2C5>,
+                                        <&pcc3 IMX8ULP_CLK_LPI2C5>;
+                               clock-names = "per", "ipg";
+                               assigned-clocks = <&pcc3 IMX8ULP_CLK_LPI2C5>;
+                               assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
+                               assigned-clock-rates = <48000000>;
+                               status = "disabled";
+                       };
+
+                       lpuart4: serial@29390000 {
+                               compatible = "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
+                               reg = <0x29390000 0x1000>;
+                               interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc3 IMX8ULP_CLK_LPUART4>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       lpuart5: serial@293a0000 {
+                               compatible = "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
+                               reg = <0x293a0000 0x1000>;
+                               interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc3 IMX8ULP_CLK_LPUART5>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       lpspi4: spi@293b0000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx8ulp-spi", "fsl,imx7ulp-spi";
+                               reg = <0x293b0000 0x10000>;
+                               interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc3 IMX8ULP_CLK_LPSPI4>,
+                                        <&pcc3 IMX8ULP_CLK_LPSPI4>;
+                               clock-names = "per", "ipg";
+                               assigned-clocks = <&pcc3 IMX8ULP_CLK_LPSPI4>;
+                               assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
+                               assigned-clock-rates = <16000000>;
+                               status = "disabled";
+                       };
+
+                       lpspi5: spi@293c0000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx8ulp-spi", "fsl,imx7ulp-spi";
+                               reg = <0x293c0000 0x10000>;
+                               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc3 IMX8ULP_CLK_LPSPI5>,
+                                        <&pcc3 IMX8ULP_CLK_LPSPI5>;
+                               clock-names = "per", "ipg";
+                               assigned-clocks = <&pcc3 IMX8ULP_CLK_LPSPI5>;
+                               assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
+                               assigned-clock-rates = <16000000>;
+                               status = "disabled";
+                       };
+               };
+
+               per_bridge4: bus@29800000 {
+                       compatible = "simple-bus";
+                       reg = <0x29800000 0x800000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       pcc4: clock-controller@29800000 {
+                               compatible = "fsl,imx8ulp-pcc4";
+                               reg = <0x29800000 0x10000>;
+                               #clock-cells = <1>;
+                       };
+
+                       lpi2c6: i2c@29840000 {
+                               compatible = "fsl,imx8ulp-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x29840000 0x10000>;
+                               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_LPI2C6>,
+                                        <&pcc4 IMX8ULP_CLK_LPI2C6>;
+                               clock-names = "per", "ipg";
+                               assigned-clocks = <&pcc4 IMX8ULP_CLK_LPI2C6>;
+                               assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
+                               assigned-clock-rates = <48000000>;
+                               status = "disabled";
+                       };
+
+                       lpi2c7: i2c@29850000 {
+                               compatible = "fsl,imx8ulp-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x29850000 0x10000>;
+                               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_LPI2C7>,
+                                        <&pcc4 IMX8ULP_CLK_LPI2C7>;
+                               clock-names = "per", "ipg";
+                               assigned-clocks = <&pcc4 IMX8ULP_CLK_LPI2C7>;
+                               assigned-clock-parents = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>;
+                               assigned-clock-rates = <48000000>;
+                               status = "disabled";
+                       };
+
+                       lpuart6: serial@29860000 {
+                               compatible = "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
+                               reg = <0x29860000 0x1000>;
+                               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_LPUART6>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       lpuart7: serial@29870000 {
+                               compatible = "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart";
+                               reg = <0x29870000 0x1000>;
+                               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_LPUART7>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       iomuxc1: pinctrl@298c0000 {
+                               compatible = "fsl,imx8ulp-iomuxc1";
+                               reg = <0x298c0000 0x10000>;
+                       };
+
+                       usdhc0: mmc@298d0000 {
+                               compatible = "fsl,imx8ulp-usdhc", "fsl,imx8mm-usdhc";
+                               reg = <0x298d0000 0x10000>;
+                               interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>,
+                                        <&cgc1 IMX8ULP_CLK_XBAR_AD_DIVPLAT>,
+                                        <&pcc4 IMX8ULP_CLK_USDHC0>;
+                               clock-names = "ipg", "ahb", "per";
+                               power-domains = <&scmi_devpd IMX8ULP_PD_USDHC0>;
+                               fsl,tuning-start-tap = <20>;
+                               fsl,tuning-step= <2>;
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+
+                       usdhc1: mmc@298e0000 {
+                               compatible = "fsl,imx8ulp-usdhc", "fsl,imx8mm-usdhc";
+                               reg = <0x298e0000 0x10000>;
+                               interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>,
+                                        <&cgc1 IMX8ULP_CLK_NIC_PER_DIVPLAT>,
+                                        <&pcc4 IMX8ULP_CLK_USDHC1>;
+                               clock-names = "ipg", "ahb", "per";
+                               power-domains = <&scmi_devpd IMX8ULP_PD_USDHC1>;
+                               fsl,tuning-start-tap = <20>;
+                               fsl,tuning-step= <2>;
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+
+                       usdhc2: mmc@298f0000 {
+                               compatible = "fsl,imx8ulp-usdhc", "fsl,imx8mm-usdhc";
+                               reg = <0x298f0000 0x10000>;
+                               interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>,
+                                        <&cgc1 IMX8ULP_CLK_NIC_PER_DIVPLAT>,
+                                        <&pcc4 IMX8ULP_CLK_USDHC2>;
+                               clock-names = "ipg", "ahb", "per";
+                               power-domains = <&scmi_devpd IMX8ULP_PD_USDHC2_USB1>;
+                               fsl,tuning-start-tap = <20>;
+                               fsl,tuning-step= <2>;
+                               bus-width = <4>;
+                               status = "disabled";
+                       };
+               };
+
+               gpioe: gpio@2d000000 {
+                               compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio";
+                               reg = <0x2d000080 0x1000>, <0x2d000040 0x40>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               clocks = <&pcc4 IMX8ULP_CLK_RGPIOE>,
+                                        <&pcc4 IMX8ULP_CLK_PCTLE>;
+                               clock-names = "gpio", "port";
+                               gpio-ranges = <&iomuxc1 0 32 24>;
+               };
+
+               gpiof: gpio@2d010000 {
+                               compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio";
+                               reg = <0x2d010080 0x1000>, <0x2d010040 0x40>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               clocks = <&pcc4 IMX8ULP_CLK_RGPIOF>,
+                                        <&pcc4 IMX8ULP_CLK_PCTLF>;
+                               clock-names = "gpio", "port";
+                               gpio-ranges = <&iomuxc1 0 64 32>;
+               };
+
+               per_bridge5: bus@2d800000 {
+                       compatible = "simple-bus";
+                       reg = <0x2d800000 0x800000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       cgc2: clock-controller@2da60000 {
+                               compatible = "fsl,imx8ulp-cgc2";
+                               reg = <0x2da60000 0x10000>;
+                               clocks = <&sosc>, <&frosc>;
+                               clock-names = "sosc", "frosc";
+                               #clock-cells = <1>;
+                       };
+
+                       pcc5: clock-controller@2da70000 {
+                               compatible = "fsl,imx8ulp-pcc5";
+                               reg = <0x2da70000 0x10000>;
+                               #clock-cells = <1>;
+                       };
+               };
+
+               gpiod: gpio@2e200000 {
+                       compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio";
+                       reg = <0x2e200080 0x1000>, <0x2e200040 0x40>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       clocks = <&pcc5 IMX8ULP_CLK_RGPIOD>,
+                                <&pcc5 IMX8ULP_CLK_RGPIOD>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&iomuxc1 0 0 24>;
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/mba8mx.dtsi b/arch/arm64/boot/dts/freescale/mba8mx.dtsi
new file mode 100644 (file)
index 0000000..f27e3c8
--- /dev/null
@@ -0,0 +1,282 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2020-2021 TQ-Systems GmbH
+ */
+
+#include <dt-bindings/net/ti-dp83867.h>
+
+/* TQ-Systems GmbH MBa8Mx baseboard */
+
+/ {
+       beeper {
+               compatible = "pwm-beeper";
+               pwms = <&pwm4 0 250000 0>;
+               beeper-hz = <4000>;
+               amp-supply = <&reg_vcc_3v3>;
+       };
+
+       chosen {
+               // bootargs = "console=ttymxc2,115200 earlycon=ec_imx6q,0x30880000,115200";
+               stdout-path = &uart3;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpiobutton>;
+               autorepeat;
+
+               switch1 {
+                       label = "switch1";
+                       linux,code = <BTN_0>;
+                       gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               btn2: switch2 {
+                       label = "switch2";
+                       linux,code = <BTN_1>;
+                       gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               switch3 {
+                       label = "switch3";
+                       linux,code = <BTN_2>;
+                       gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+       };
+
+       gpio_leds: gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpioled>;
+
+               led1 {
+                       label = "led1";
+                       gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led2: led2 {
+                       label = "led2";
+                       gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       reg_hub_vbus: regulator-hub-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "MBA8MX_HUB_VBUS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_sn65dsi83_1v8: regulator-sn65dsi83-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "SN65DSI83_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpio = <&expander0 5 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_vcc_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "MBA8MX_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       sound {
+               compatible = "fsl,imx-audio-tlv320aic32x4";
+               model = "tqm-tlv320aic32";
+               ssi-controller = <&sai3>;
+               audio-codec = <&tlv320aic3x04>;
+       };
+};
+
+&ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&ecspi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi2>;
+       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy0>;
+       phy-supply = <&reg_vcc_3v3>;
+       fsl,magic-packet;
+       mac-address = [ 00 00 00 00 00 00 ];
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@e {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0xe>;
+                       ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>;
+                       ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>;
+                       ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+                       ti,dp83867-rxctrl-strap-quirk;
+                       ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+                       enet-phy-lane-no-swap;
+                       reset-gpios = <&expander2 7 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <500000>;
+                       reset-deassert-us = <500>;
+               };
+       };
+};
+
+&i2c1 {
+       expander0: gpio@23 {
+               compatible = "nxp,pca9555";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               vcc-supply = <&reg_vcc_3v3>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               sd-mux-oe-hog {
+                       gpio-hog;
+                       gpios = <8 0>;
+                       output-low;
+                       line-name = "SD_MUX_EN#";
+               };
+
+               boot-cfg-oe-hog {
+                       gpio-hog;
+                       gpios = <12 0>;
+                       output-high;
+                       line-name = "BOOT_CFG_OE#";
+               };
+
+               rst-usb-hub-hog {
+                       gpio-hog;
+                       gpios = <13 0>;
+                       output-high;
+                       line-name = "RST_USB_HUB#";
+               };
+       };
+
+       expander1: gpio@24 {
+               compatible = "nxp,pca9555";
+               reg = <0x24>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               vcc-supply = <&reg_vcc_3v3>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       tlv320aic3x04: audio-codec@18 {
+               compatible = "ti,tlv320aic32x4";
+               reg = <0x18>;
+               reset-gpios = <&expander2 0 GPIO_ACTIVE_LOW>;
+               iov-supply = <&reg_vcc_3v3>;
+               ldoin-supply = <&reg_vcc_3v3>;
+       };
+
+       sensor1: sensor@1f {
+               compatible = "nxp,se97", "jedec,jc-42.4-temp";
+               reg = <0x1f>;
+       };
+
+       eeprom3: eeprom@57 {
+               compatible = "nxp,se97b", "atmel,24c02";
+               reg = <0x57>;
+               pagesize = <16>;
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+};
+
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+       status = "okay";
+};
+
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+       status = "okay";
+};
+
+&sai3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai3>;
+       #sound-dai-cells = <0>;
+       assigned-clock-rates = <49152000>;
+       status = "okay";
+};
+
+&snvs_pwrkey {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+/* console */
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "okay";
+};
+
+/* UART4 is assigned to Cortex-M4 */
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       bus-width = <4>;
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       no-mmc;
+       no-sdio;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       status = "okay";
+};
index cc2dcab..57f8348 100644 (file)
                        reg = <0 0x200000>;
                };
                partition@200000 {
-                       label = "env";
-                       reg = <0x200000 0x40000>;
-               };
-               partition@240000 {
-                       label = "dtb";
-                       reg = <0x240000 0x40000>;
-               };
-               partition@280000 {
-                       label = "kernel";
-                       reg = <0x280000 0x2000000>;
-               };
-               partition@2280000 {
-                       label = "misc";
-                       reg = <0x2280000 0x2000000>;
-               };
-               partition@4280000 {
-                       label = "rootfs";
-                       reg = <0x4280000 0x3bd80000>;
+                       label = "root";
+                       reg = <0x200000 0x3fe00000>;
                };
        };
 };
index 01f1307..f3c1310 100644 (file)
        compatible = "intel,easic-n5x-clkmgr";
 };
 
+&gmac0 {
+       status = "okay";
+       phy-mode = "rgmii";
+       phy-handle = <&phy0>;
+
+       max-frame-size = <9000>;
+
+       mdio0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+               phy0: ethernet-phy@0 {
+                       reg = <4>;
+
+                       txd0-skew-ps = <0>; /* -420ps */
+                       txd1-skew-ps = <0>; /* -420ps */
+                       txd2-skew-ps = <0>; /* -420ps */
+                       txd3-skew-ps = <0>; /* -420ps */
+                       rxd0-skew-ps = <420>; /* 0ps */
+                       rxd1-skew-ps = <420>; /* 0ps */
+                       rxd2-skew-ps = <420>; /* 0ps */
+                       rxd3-skew-ps = <420>; /* 0ps */
+                       txen-skew-ps = <0>; /* -420ps */
+                       txc-skew-ps = <900>; /* 0ps */
+                       rxdv-skew-ps = <420>; /* 0ps */
+                       rxc-skew-ps = <1680>; /* 780ps */
+               };
+       };
+};
+
 &mmc {
        status = "okay";
        cap-sd-highspeed;
        clock-frequency = <25000000>;
 };
 
+&qspi {
+       status = "okay";
+       flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "micron,mt25qu02g", "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <100000000>;
+
+               m25p,fast-read;
+               cdns,page-size = <256>;
+               cdns,block-size = <16>;
+               cdns,read-delay = <2>;
+               cdns,tshsl-ns = <50>;
+               cdns,tsd2d-ns = <50>;
+               cdns,tchsh-ns = <4>;
+               cdns,tslch-ns = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       qspi_boot: partition@0 {
+                               label = "Boot and fpga data";
+                               reg = <0x0 0x03FE0000>;
+                       };
+
+                       qspi_rootfs: partition@3FE0000 {
+                               label = "Root Filesystem - JFFS2";
+                               reg = <0x03FE0000 0x0C020000>;
+                       };
+               };
+       };
+};
+
 &uart0 {
        status = "okay";
 };
 
+&usb0 {
+       status = "okay";
+       disable-over-current;
+};
+
 &watchdog0 {
        status = "okay";
 };
index 9acc5d2..673f490 100644 (file)
                                            "lane2_sata_usb3";
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               clocks = <&xtalclk>;
+                               clock-names = "xtal";
 
                                comphy0: phy@0 {
                                        reg = <0>;
index 505ae69..d9f9f2c 100644 (file)
@@ -17,6 +17,8 @@
                ethernet0 = &cp0_eth0;
                ethernet1 = &cp0_eth1;
                ethernet2 = &cp0_eth2;
+               gpio1 = &cp0_gpio1;
+               gpio2 = &cp0_gpio2;
        };
 
        memory@0 {
                enable-active-high;
                regulator-always-on;
        };
+
+       sfp: sfp {
+               compatible = "sff,sfp";
+               i2c-bus = <&cp0_i2c1>;
+               mod-def0-gpios = <&expander0 3 GPIO_ACTIVE_LOW>;
+               los-gpio = <&expander0 15 GPIO_ACTIVE_HIGH>;
+               tx-disable-gpio = <&expander0 2 GPIO_ACTIVE_HIGH>;
+               tx-fault-gpio = <&cp0_gpio1 24 GPIO_ACTIVE_HIGH>;
+               maximum-power-milliwatt = <3000>;
+               status = "okay";
+       };
 };
 
 &uart0 {
        };
 };
 
+&cp0_gpio1 {
+       status = "okay";
+};
+
+&cp0_gpio2 {
+       status = "okay";
+};
+
 &cp0_i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&cp0_i2c0_pins>;
        phy0: ethernet-phy@0 {
                reg = <0>;
        };
+
+       switch6: switch0@6 {
+               /* Actual device is MV88E6393X */
+               compatible = "marvell,mv88e6190";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <6>;
+               interrupt-parent = <&cp0_gpio1>;
+               interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               dsa,member = <0 0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@1 {
+                               reg = <1>;
+                               label = "p1";
+                               phy-handle = <&switch0phy1>;
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               label = "p2";
+                               phy-handle = <&switch0phy2>;
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                               label = "p3";
+                               phy-handle = <&switch0phy3>;
+                       };
+
+                       port@4 {
+                               reg = <4>;
+                               label = "p4";
+                               phy-handle = <&switch0phy4>;
+                       };
+
+                       port@5 {
+                               reg = <5>;
+                               label = "p5";
+                               phy-handle = <&switch0phy5>;
+                       };
+
+                       port@6 {
+                               reg = <6>;
+                               label = "p6";
+                               phy-handle = <&switch0phy6>;
+                       };
+
+                       port@7 {
+                               reg = <7>;
+                               label = "p7";
+                               phy-handle = <&switch0phy7>;
+                       };
+
+                       port@8 {
+                               reg = <8>;
+                               label = "p8";
+                               phy-handle = <&switch0phy8>;
+                       };
+
+                       port@9 {
+                               reg = <9>;
+                               label = "p9";
+                               phy-mode = "10gbase-r";
+                               sfp = <&sfp>;
+                               managed = "in-band-status";
+                       };
+
+                       port@a {
+                               reg = <10>;
+                               label = "cpu";
+                               ethernet = <&cp0_eth0>;
+                       };
+
+               };
+
+               mdio {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       switch0phy1: switch0phy1@1 {
+                               reg = <0x1>;
+                       };
+
+                       switch0phy2: switch0phy2@2 {
+                               reg = <0x2>;
+                       };
+
+                       switch0phy3: switch0phy3@3 {
+                               reg = <0x3>;
+                       };
+
+                       switch0phy4: switch0phy4@4 {
+                               reg = <0x4>;
+                       };
+
+                       switch0phy5: switch0phy5@5 {
+                               reg = <0x5>;
+                       };
+
+                       switch0phy6: switch0phy6@6 {
+                               reg = <0x6>;
+                       };
+
+                       switch0phy7: switch0phy7@7 {
+                               reg = <0x7>;
+                       };
+
+                       switch0phy8: switch0phy8@8 {
+                               reg = <0x8>;
+                       };
+               };
+       };
 };
 
 &cp0_xmdio {
index a2b7e5e..327b041 100644 (file)
        model = "Marvell Armada CN9130 SoC";
        compatible = "marvell,cn9130", "marvell,armada-ap807-quad",
                     "marvell,armada-ap807";
+
+       aliases {
+               gpio1 = &cp0_gpio1;
+               gpio2 = &cp0_gpio2;
+               spi1 = &cp0_spi0;
+               spi2 = &cp0_spi1;
+       };
 };
 
 /*
 #undef CP11X_PCIE0_BASE
 #undef CP11X_PCIE1_BASE
 #undef CP11X_PCIE2_BASE
+
+&cp0_gpio1 {
+       status = "okay";
+};
+
+&cp0_gpio2 {
+       status = "okay";
+};
index 4f68ebe..8c1e180 100644 (file)
@@ -7,6 +7,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-x20-dev.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-rfb.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986b-rfb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8167-pumpkin.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm-hana.dtb
@@ -14,16 +16,20 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-elm-hana-rev7.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-burnet.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-cozmo.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-damu.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel-sku1.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel-sku6.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel-sku7.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel14.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-fennel14-sku2.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-juniper-sku16.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kappa.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-kenzo.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku0.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-jacuzzi-willow-sku1.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kakadu.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kakadu-sku22.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku16.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku272.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-kodama-sku288.dtb
diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts b/arch/arm64/boot/dts/mediatek/mt7986a-rfb.dts
new file mode 100644 (file)
index 0000000..5cd760a
--- /dev/null
@@ -0,0 +1,57 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ * Author: Sam.Shih <sam.shih@mediatek.com>
+ */
+
+/dts-v1/;
+#include "mt7986a.dtsi"
+
+/ {
+       model = "MediaTek MT7986a RFB";
+       compatible = "mediatek,mt7986a-rfb";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               reg = <0 0x40000000 0 0x40000000>;
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+       status = "okay";
+};
+
+&pio {
+       uart1_pins: uart1-pins {
+               mux {
+                       function = "uart";
+                       groups = "uart1";
+               };
+       };
+
+       uart2_pins: uart2-pins {
+               mux {
+                       function = "uart";
+                       groups = "uart2";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt7986a.dtsi b/arch/arm64/boot/dts/mediatek/mt7986a.dtsi
new file mode 100644 (file)
index 0000000..b8da76b
--- /dev/null
@@ -0,0 +1,169 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ * Author: Sam.Shih <sam.shih@mediatek.com>
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       system_clk: dummy40m {
+               compatible = "fixed-clock";
+               clock-frequency = <40000000>;
+               #clock-cells = <0>;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       enable-method = "psci";
+                       reg = <0x0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       enable-method = "psci";
+                       reg = <0x1>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       enable-method = "psci";
+                       reg = <0x2>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu3: cpu@3 {
+                       device_type = "cpu";
+                       enable-method = "psci";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x3>;
+                       #cooling-cells = <2>;
+               };
+       };
+
+       psci {
+               compatible  = "arm,psci-0.2";
+               method      = "smc";
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               /* 192 KiB reserved for ARM Trusted Firmware (BL31) */
+               secmon_reserved: secmon@43000000 {
+                       reg = <0 0x43000000 0 0x30000>;
+                       no-map;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       soc {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               compatible = "simple-bus";
+               ranges;
+
+               gic: interrupt-controller@c000000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       reg = <0 0x0c000000 0 0x10000>,  /* GICD */
+                             <0 0x0c080000 0 0x80000>,  /* GICR */
+                             <0 0x0c400000 0 0x2000>,   /* GICC */
+                             <0 0x0c410000 0 0x1000>,   /* GICH */
+                             <0 0x0c420000 0 0x2000>;   /* GICV */
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               watchdog: watchdog@1001c000 {
+                       compatible = "mediatek,mt7986-wdt",
+                                    "mediatek,mt6589-wdt";
+                       reg = <0 0x1001c000 0 0x1000>;
+                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+                       #reset-cells = <1>;
+                       status = "disabled";
+               };
+
+               pio: pinctrl@1001f000 {
+                       compatible = "mediatek,mt7986a-pinctrl";
+                       reg = <0 0x1001f000 0 0x1000>,
+                             <0 0x11c30000 0 0x1000>,
+                             <0 0x11c40000 0 0x1000>,
+                             <0 0x11e20000 0 0x1000>,
+                             <0 0x11e30000 0 0x1000>,
+                             <0 0x11f00000 0 0x1000>,
+                             <0 0x11f10000 0 0x1000>,
+                             <0 0x1000b000 0 0x1000>;
+                       reg-names = "gpio", "iocfg_rt", "iocfg_rb", "iocfg_lt",
+                                   "iocfg_lb", "iocfg_tr", "iocfg_tl", "eint";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pio 0 0 100>;
+                       interrupt-controller;
+                       interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-parent = <&gic>;
+                       #interrupt-cells = <2>;
+               };
+
+               trng: trng@1020f000 {
+                       compatible = "mediatek,mt7986-rng",
+                                    "mediatek,mt7623-rng";
+                       reg = <0 0x1020f000 0 0x100>;
+                       clocks = <&system_clk>;
+                       clock-names = "rng";
+                       status = "disabled";
+               };
+
+               uart0: serial@11002000 {
+                       compatible = "mediatek,mt7986-uart",
+                                    "mediatek,mt6577-uart";
+                       reg = <0 0x11002000 0 0x400>;
+                       interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&system_clk>;
+                       status = "disabled";
+               };
+
+               uart1: serial@11003000 {
+                       compatible = "mediatek,mt7986-uart",
+                                    "mediatek,mt6577-uart";
+                       reg = <0 0x11003000 0 0x400>;
+                       interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&system_clk>;
+                       status = "disabled";
+               };
+
+               uart2: serial@11004000 {
+                       compatible = "mediatek,mt7986-uart",
+                                    "mediatek,mt6577-uart";
+                       reg = <0 0x11004000 0 0x400>;
+                       interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&system_clk>;
+                       status = "disabled";
+               };
+
+       };
+
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts b/arch/arm64/boot/dts/mediatek/mt7986b-rfb.dts
new file mode 100644 (file)
index 0000000..5fb752e
--- /dev/null
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ * Author: Sam.Shih <sam.shih@mediatek.com>
+ */
+
+/dts-v1/;
+#include "mt7986b.dtsi"
+
+/ {
+       model = "MediaTek MT7986b RFB";
+       compatible = "mediatek,mt7986b-rfb";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               reg = <0 0x40000000 0 0x40000000>;
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt7986b.dtsi b/arch/arm64/boot/dts/mediatek/mt7986b.dtsi
new file mode 100644 (file)
index 0000000..23923b9
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ * Author: Sam.Shih <sam.shih@mediatek.com>
+ */
+
+#include "mt7986a.dtsi"
+
+&pio {
+       compatible = "mediatek,mt7986b-pinctrl";
+       gpio-ranges = <&pio 0 0 41>, <&pio 66 66 35>;
+};
index e666ebb..9c75fbb 100644 (file)
@@ -28,7 +28,7 @@
                enable-gpios = <&pio 95 GPIO_ACTIVE_HIGH>;
 
                pinctrl-names = "default";
-               pinctrl-0 = <&disp_pwm0_pins>;
+               pinctrl-0 = <&panel_backlight_en_pins>;
                status = "okay";
        };
 
                };
        };
 
+       panel_backlight_en_pins: panel_backlight_en_pins {
+               pins1 {
+                       pinmux = <MT8173_PIN_95_PCM_TX__FUNC_GPIO95>;
+               };
+       };
+
        panel_fixed_pins: panel_fixed_pins {
                pins1 {
                        pinmux = <MT8173_PIN_41_CMMCLK__FUNC_GPIO41>;
 };
 
 &pwm0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&disp_pwm0_pins>;
        status = "okay";
 };
 
index dee66e5..2b7d331 100644 (file)
                        interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>;
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_UFOE>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0xa000 0x1000>;
                };
 
                dsi0: dsi@1401b000 {
                        compatible = "mediatek,mt8173-disp-od";
                        reg = <0 0x14023000 0 0x1000>;
                        clocks = <&mmsys CLK_MM_DISP_OD>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1402XXXX 0x3000 0x1000>;
                };
 
                hdmi0: hdmi@14025000 {
index 7bc0a6a..f3fd3cc 100644 (file)
                        no-map;
                };
        };
+
+       ntc@0 {
+               compatible = "murata,ncp03wf104";
+               pullup-uv = <1800000>;
+               pullup-ohm = <390000>;
+               pulldown-ohm = <0>;
+               io-channels = <&auxadc 0>;
+       };
 };
 
 &auxadc {
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cozmo.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-cozmo.dts
new file mode 100644 (file)
index 0000000..072133f
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2021 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-jacuzzi.dtsi"
+#include "mt8183-kukui-audio-ts3a227e-max98357a.dtsi"
+
+/ {
+       model = "Google cozmo board";
+       compatible = "google,cozmo", "mediatek,mt8183";
+};
+
+&i2c_tunnel {
+       google,remote-bus = <0>;
+};
+
+&i2c2 {
+       trackpad@2c {
+               compatible = "hid-over-i2c";
+               reg = <0x2c>;
+               hid-descr-addr = <0x20>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&trackpad_pins>;
+
+               interrupts-extended = <&pio 7 IRQ_TYPE_LEVEL_LOW>;
+
+               wakeup-source;
+       };
+};
+
+&qca_wifi {
+       qcom,ath10k-calibration-variant = "GO_COZMO";
+};
index ef6257c..dec11a4 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "mt8183-kukui-jacuzzi-fennel.dtsi"
+#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
 
 / {
        model = "Google fennel sku1 board";
index 899c2e4..37e6e58 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "mt8183-kukui-jacuzzi-fennel.dtsi"
+#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
 
 / {
        model = "Google fennel sku6 board";
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel-sku7.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel-sku7.dts
new file mode 100644 (file)
index 0000000..0e09604
--- /dev/null
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2021 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-jacuzzi-fennel.dtsi"
+#include "mt8183-kukui-audio-ts3a227e-rt1015p.dtsi"
+
+/ {
+       model = "Google fennel sku7 board";
+       compatible = "google,fennel-sku7", "google,fennel", "mediatek,mt8183";
+};
+
+&touchscreen {
+       status = "okay";
+
+       compatible = "hid-over-i2c";
+       reg = <0x10>;
+       interrupt-parent = <&pio>;
+       interrupts = <155 IRQ_TYPE_LEVEL_LOW>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&touchscreen_pins>;
+
+       post-power-on-delay-ms = <10>;
+       hid-descr-addr = <0x0001>;
+};
+
+
+&qca_wifi {
+       qcom,ath10k-calibration-variant = "GO_FENNEL";
+};
+
index 577519a..bbe6c33 100644 (file)
@@ -5,7 +5,6 @@
 
 /dts-v1/;
 #include "mt8183-kukui-jacuzzi.dtsi"
-#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
 
 &mt6358codec {
        mediatek,dmic-mode = <1>; /* one-wire */
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel14-sku2.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-fennel14-sku2.dts
new file mode 100644 (file)
index 0000000..3fc5a61
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2021 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-jacuzzi-fennel.dtsi"
+#include "mt8183-kukui-audio-ts3a227e-rt1015p.dtsi"
+
+/ {
+       model = "Google fennel14 sku2 board";
+       compatible = "google,fennel-sku2", "google,fennel", "mediatek,mt8183";
+};
+
+&qca_wifi {
+       qcom,ath10k-calibration-variant = "GO_FENNEL14";
+};
index e8c41f6..23ad0b9 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include "mt8183-kukui-jacuzzi-fennel.dtsi"
+#include "mt8183-kukui-audio-da7219-rt1015p.dtsi"
 
 / {
        model = "Google fennel14 sku0 board";
index d8826c8..8f7bf33 100644 (file)
@@ -9,7 +9,6 @@
        panel: panel {
                compatible = "auo,b116xw03";
                power-supply = <&pp3300_panel>;
-               ddc-i2c-bus = <&i2c4>;
                backlight = <&backlight_lcd0>;
 
                port {
diff --git a/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu-sku22.dts b/arch/arm64/boot/dts/mediatek/mt8183-kukui-kakadu-sku22.dts
new file mode 100644 (file)
index 0000000..3a724e6
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2021 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8183-kukui-kakadu.dtsi"
+#include "mt8183-kukui-audio-rt1015p.dtsi"
+
+/ {
+       model = "MediaTek kakadu board sku22";
+       compatible = "google,kakadu-rev3-sku22", "google,kakadu-rev2-sku22",
+                    "google,kakadu", "mediatek,mt8183";
+};
+
+&sound {
+       compatible = "mediatek,mt8183_mt6358_ts3a227_rt1015p";
+};
+
index b42d81d..0f9480f 100644 (file)
                #thermal-sensor-cells = <0>;
                io-channels = <&auxadc 0>;
                io-channel-names = "sensor-channel";
-               temperature-lookup-table = <    (-5000) 4241
-                                               0 4063
-                                               5000 3856
-                                               10000 3621
-                                               15000 3364
-                                               20000 3091
-                                               25000 2810
-                                               30000 2526
-                                               35000 2247
-                                               40000 1982
-                                               45000 1734
-                                               50000 1507
-                                               55000 1305
-                                               60000 1122
-                                               65000 964
-                                               70000 827
-                                               75000 710
-                                               80000 606
-                                               85000 519
-                                               90000 445
-                                               95000 382
-                                               100000 330
-                                               105000 284
-                                               110000 245
-                                               115000 213
-                                               120000 183
-                                               125000 161>;
+               temperature-lookup-table = <    (-5000) 1553
+                                               0 1488
+                                               5000 1412
+                                               10000 1326
+                                               15000 1232
+                                               20000 1132
+                                               25000 1029
+                                               30000 925
+                                               35000 823
+                                               40000 726
+                                               45000 635
+                                               50000 552
+                                               55000 478
+                                               60000 411
+                                               65000 353
+                                               70000 303
+                                               75000 260
+                                               80000 222
+                                               85000 190
+                                               90000 163
+                                               95000 140
+                                               100000 121
+                                               105000 104
+                                               110000 90
+                                               115000 78
+                                               120000 67
+                                               125000 59>;
        };
 
        tboard_thermistor2: thermal-sensor2 {
                #thermal-sensor-cells = <0>;
                io-channels = <&auxadc 1>;
                io-channel-names = "sensor-channel";
-               temperature-lookup-table = <    (-5000) 4241
-                                               0 4063
-                                               5000 3856
-                                               10000 3621
-                                               15000 3364
-                                               20000 3091
-                                               25000 2810
-                                               30000 2526
-                                               35000 2247
-                                               40000 1982
-                                               45000 1734
-                                               50000 1507
-                                               55000 1305
-                                               60000 1122
-                                               65000 964
-                                               70000 827
-                                               75000 710
-                                               80000 606
-                                               85000 519
-                                               90000 445
-                                               95000 382
-                                               100000 330
-                                               105000 284
-                                               110000 245
-                                               115000 213
-                                               120000 183
-                                               125000 161>;
+               temperature-lookup-table = <    (-5000) 1553
+                                               0 1488
+                                               5000 1412
+                                               10000 1326
+                                               15000 1232
+                                               20000 1132
+                                               25000 1029
+                                               30000 925
+                                               35000 823
+                                               40000 726
+                                               45000 635
+                                               50000 552
+                                               55000 478
+                                               60000 411
+                                               65000 353
+                                               70000 303
+                                               75000 260
+                                               80000 222
+                                               85000 190
+                                               90000 163
+                                               95000 140
+                                               100000 121
+                                               105000 104
+                                               110000 90
+                                               115000 78
+                                               120000 67
+                                               125000 59>;
        };
 };
 
 
        cros_ec {
                compatible = "google,cros-ec-rpmsg";
-               mtk,rpmsg-name = "cros-ec-rpmsg";
+               mediatek,rpmsg-name = "cros-ec-rpmsg";
        };
 };
 
                cbas {
                        compatible = "google,cros-cbas";
                };
+
+               typec {
+                       compatible = "google,cros-ec-typec";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       usb_c0: connector@0 {
+                               compatible = "usb-c-connector";
+                               reg = <0>;
+                               power-role = "dual";
+                               data-role = "host";
+                               try-power-role = "sink";
+                       };
+               };
        };
 };
 
index ba4584f..00f2ddd 100644 (file)
                        reg = <0 0x0c530a80 0 0x50>;
                };
 
+               cpu_debug0: cpu-debug@d410000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xd410000 0x0 0x1000>;
+                       clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu0>;
+               };
+
+               cpu_debug1: cpu-debug@d510000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xd510000 0x0 0x1000>;
+                       clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu1>;
+               };
+
+               cpu_debug2: cpu-debug@d610000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xd610000 0x0 0x1000>;
+                       clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu2>;
+               };
+
+               cpu_debug3: cpu-debug@d710000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xd710000 0x0 0x1000>;
+                       clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu3>;
+               };
+
+               cpu_debug4: cpu-debug@d810000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xd810000 0x0 0x1000>;
+                       clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu4>;
+               };
+
+               cpu_debug5: cpu-debug@d910000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xd910000 0x0 0x1000>;
+                       clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu5>;
+               };
+
+               cpu_debug6: cpu-debug@da10000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xda10000 0x0 0x1000>;
+                       clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu6>;
+               };
+
+               cpu_debug7: cpu-debug@db10000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xdb10000 0x0 0x1000>;
+                       clocks = <&infracfg CLK_INFRA_DEBUGSYS>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu7>;
+               };
+
                topckgen: syscon@10000000 {
                        compatible = "mediatek,mt8183-topckgen", "syscon";
                        reg = <0 0x10000000 0 0x1000>;
index c7c7d4e..53d790c 100644 (file)
                        #clock-cells = <1>;
                };
 
-               i2c3: i2c3@11cb0000 {
+               i2c3: i2c@11cb0000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11cb0000 0 0x1000>,
                              <0 0x10217300 0 0x80>;
                        #clock-cells = <1>;
                };
 
-               i2c7: i2c7@11d00000 {
+               i2c7: i2c@11d00000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11d00000 0 0x1000>,
                              <0 0x10217600 0 0x180>;
                        status = "disabled";
                };
 
-               i2c8: i2c8@11d01000 {
+               i2c8: i2c@11d01000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11d01000 0 0x1000>,
                              <0 0x10217780 0 0x180>;
                        status = "disabled";
                };
 
-               i2c9: i2c9@11d02000 {
+               i2c9: i2c@11d02000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11d02000 0 0x1000>,
                              <0 0x10217900 0 0x180>;
                        #clock-cells = <1>;
                };
 
-               i2c1: i2c1@11d20000 {
+               i2c1: i2c@11d20000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11d20000 0 0x1000>,
                              <0 0x10217100 0 0x80>;
                        status = "disabled";
                };
 
-               i2c2: i2c2@11d21000 {
+               i2c2: i2c@11d21000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11d21000 0 0x1000>,
                              <0 0x10217180 0 0x180>;
                        status = "disabled";
                };
 
-               i2c4: i2c4@11d22000 {
+               i2c4: i2c@11d22000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11d22000 0 0x1000>,
                              <0 0x10217380 0 0x180>;
                        #clock-cells = <1>;
                };
 
-               i2c5: i2c5@11e00000 {
+               i2c5: i2c@11e00000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11e00000 0 0x1000>,
                              <0 0x10217500 0 0x80>;
                        #clock-cells = <1>;
                };
 
-               i2c0: i2c0@11f00000 {
+               i2c0: i2c@11f00000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11f00000 0 0x1000>,
                              <0 0x10217080 0 0x80>;
                        status = "disabled";
                };
 
-               i2c6: i2c6@11f01000 {
+               i2c6: i2c@11f01000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11f01000 0 0x1000>,
                              <0 0x10217580 0 0x80>;
index bbe5a14..d1b67c8 100644 (file)
                        reg = <0 0x11009000 0 0x90>,
                              <0 0x11000180 0 0x80>;
                        interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>;
-                       clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>,
-                                <&infracfg CLK_IFR_I2C0_SEL>,
-                                <&topckgen CLK_TOP_I2C0>,
+                       clocks = <&topckgen CLK_TOP_I2C0>,
                                 <&topckgen CLK_TOP_APDMA>;
-                       clock-names = "main-source",
-                                     "main-sel",
-                                     "main",
-                                     "dma";
+                       clock-names = "main", "dma";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        reg = <0 0x1100a000 0 0x90>,
                              <0 0x11000200 0 0x80>;
                        interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
-                       clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>,
-                                <&infracfg CLK_IFR_I2C1_SEL>,
-                                <&topckgen CLK_TOP_I2C1>,
+                       clocks = <&topckgen CLK_TOP_I2C1>,
                                 <&topckgen CLK_TOP_APDMA>;
-                       clock-names = "main-source",
-                                     "main-sel",
-                                     "main",
-                                     "dma";
+                       clock-names = "main", "dma";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        reg = <0 0x1100b000 0 0x90>,
                              <0 0x11000280 0 0x80>;
                        interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
-                       clocks = <&topckgen CLK_TOP_AHB_INFRA_D2>,
-                                <&infracfg CLK_IFR_I2C2_SEL>,
-                                <&topckgen CLK_TOP_I2C2>,
+                       clocks = <&topckgen CLK_TOP_I2C2>,
                                 <&topckgen CLK_TOP_APDMA>;
-                       clock-names = "main-source",
-                                     "main-sel",
-                                     "main",
-                                     "dma";
+                       clock-names = "main", "dma";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
index c80f7dc..ea3f338 100644 (file)
@@ -12,3 +12,4 @@ dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p2972-0000.dtb
 dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0000.dtb
 dtb-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra194-p3509-0000+p3668-0001.dtb
 dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-sim-vdk.dtb
+dtb-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra234-p3737-0000+p3701-0000.dtb
index 8a51751..f16acb4 100644 (file)
                        pinctrl-names = "default";
                        pinctrl-0 = <&as3722_default>;
 
-                       as3722_default: pinmux@0 {
+                       as3722_default: pinmux {
                                gpio0 {
                                        pins = "gpio0";
                                        function = "gpio";
 
                                google,remote-bus = <0>;
 
-                               charger: bq24735 {
+                               charger: bq24735@9 {
                                        compatible = "ti,bq24735";
                                        reg = <0x9>;
                                        interrupt-parent = <&gpio>;
                                                        GPIO_ACTIVE_HIGH>;
                                };
 
-                               battery: smart-battery {
+                               battery: smart-battery@b {
                                        compatible = "sbs,sbs-battery";
                                        reg = <0xb>;
                                        sbs,i2c-retry-count = <2>;
        pmc@7000e400 {
                nvidia,invert-interrupt;
                nvidia,suspend-mode = <0>;
-               #wake-cells = <3>;
                nvidia,cpu-pwr-good-time = <500>;
                nvidia,cpu-pwr-off-time = <300>;
                nvidia,core-pwr-good-time = <641 3845>;
                nvidia,core-pwr-off-time = <61036>;
                nvidia,core-power-req-active-high;
                nvidia,sys-clock-req-active-high;
-               nvidia,reset-gpio = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
        };
 
        usb@70090000 {
                default-brightness-level = <6>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                ddc-i2c-bus = <&dpaux>;
        };
 
-       vdd_mux: regulator@0 {
+       vdd_mux: regulator-vdd-mux {
                compatible = "regulator-fixed";
                regulator-name = "+VDD_MUX";
                regulator-min-microvolt = <19000000>;
                regulator-boot-on;
        };
 
-       vdd_5v0_sys: regulator@1 {
+       vdd_5v0_sys: regulator-vdd-5v0-sys {
                compatible = "regulator-fixed";
                regulator-name = "+5V_SYS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_3v3_sys: regulator@2 {
+       vdd_3v3_sys: regulator-vdd-3v3-sys {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_SYS";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_3v3_run: regulator@3 {
+       vdd_3v3_run: regulator-vdd-3v3-run {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_RUN";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_3v3_hdmi: regulator@4 {
+       vdd_3v3_hdmi: regulator-vdd-3v3-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_AVDD_HDMI_AP_GATED";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_run>;
        };
 
-       vdd_led: regulator@5 {
+       vdd_led: regulator-vdd-led {
                compatible = "regulator-fixed";
                regulator-name = "+VDD_LED";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_mux>;
        };
 
-       vdd_usb1_vbus: regulator@6 {
+       vdd_usb1_vbus: regulator-vdd-usb1-vbus {
                compatible = "regulator-fixed";
                regulator-name = "+5V_USB_HS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_usb3_vbus: regulator@7 {
+       vdd_usb3_vbus: regulator-vdd-usb3-vbus {
                compatible = "regulator-fixed";
                regulator-name = "+5V_USB_SS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_3v3_panel: regulator@8 {
+       vdd_3v3_panel: regulator-vdd-3v3-panel {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_PANEL";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_hdmi_pll: regulator@9 {
+       vdd_hdmi_pll: regulator-vdd-hdmi-pll {
                compatible = "regulator-fixed";
                regulator-name = "+1.05V_RUN_AVDD_HDMI_PLL_AP_GATE";
                regulator-min-microvolt = <1050000>;
                vin-supply = <&vdd_1v05_run>;
        };
 
-       vdd_5v0_hdmi: regulator@10 {
+       vdd_5v0_hdmi: regulator-vdd-5v0-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "+5V_HDMI_CON";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_5v0_ts: regulator@11 {
+       vdd_5v0_ts: regulator-vdd-5v0-ts {
                compatible = "regulator-fixed";
                regulator-name = "+5V_VDD_TS";
                regulator-min-microvolt = <5000000>;
                enable-active-high;
        };
 
-       vdd_3v3_lp0: regulator@12 {
+       vdd_3v3_lp0: regulator-vdd-3v3-lp0 {
                compatible = "regulator-fixed";
                regulator-name = "+3.3V_LP0";
                regulator-min-microvolt = <3300000>;
diff --git a/arch/arm64/boot/dts/nvidia/tegra132-peripherals-opp.dtsi b/arch/arm64/boot/dts/nvidia/tegra132-peripherals-opp.dtsi
new file mode 100644 (file)
index 0000000..66ffb7f
--- /dev/null
@@ -0,0 +1,426 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/ {
+       /* EMC DVFS OPP table */
+       emc_icc_dvfs_opp_table: opp-table-dvfs0 {
+               compatible = "operating-points-v2";
+
+               opp-12750000-800 {
+                       opp-microvolt = <800000 800000 1150000>;
+                       opp-hz = /bits/ 64 <12750000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-12750000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <12750000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-12750000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <12750000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-12750000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <12750000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-20400000-800 {
+                       opp-microvolt = <800000 800000 1150000>;
+                       opp-hz = /bits/ 64 <20400000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-20400000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <20400000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-20400000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <20400000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-20400000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <20400000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-40800000-800 {
+                       opp-microvolt = <800000 800000 1150000>;
+                       opp-hz = /bits/ 64 <40800000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-40800000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <40800000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-40800000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <40800000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-40800000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <40800000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-68000000-800 {
+                       opp-microvolt = <800000 800000 1150000>;
+                       opp-hz = /bits/ 64 <68000000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-68000000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <68000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-68000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <68000000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-68000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <68000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-102000000-800 {
+                       opp-microvolt = <800000 800000 1150000>;
+                       opp-hz = /bits/ 64 <102000000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-102000000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <102000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-102000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <102000000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-102000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <102000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-204000000-800 {
+                       opp-microvolt = <800000 800000 1150000>;
+                       opp-hz = /bits/ 64 <204000000>;
+                       opp-supported-hw = <0x0003>;
+                       opp-suspend;
+               };
+
+               opp-204000000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <204000000>;
+                       opp-supported-hw = <0x0008>;
+                       opp-suspend;
+               };
+
+               opp-204000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <204000000>;
+                       opp-supported-hw = <0x0010>;
+                       opp-suspend;
+               };
+
+               opp-204000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <204000000>;
+                       opp-supported-hw = <0x0004>;
+                       opp-suspend;
+               };
+
+               opp-264000000-800 {
+                       opp-microvolt = <800000 800000 1150000>;
+                       opp-hz = /bits/ 64 <264000000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-264000000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <264000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-264000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <264000000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-264000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <264000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-300000000-850 {
+                       opp-microvolt = <850000 850000 1150000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-300000000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-300000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-300000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-348000000-850 {
+                       opp-microvolt = <850000 850000 1150000>;
+                       opp-hz = /bits/ 64 <348000000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-348000000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <348000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-348000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <348000000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-348000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <348000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-396000000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <396000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-396000000-1000 {
+                       opp-microvolt = <1000000 1000000 1150000>;
+                       opp-hz = /bits/ 64 <396000000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-396000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <396000000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-396000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <396000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-528000000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <528000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-528000000-1000 {
+                       opp-microvolt = <1000000 1000000 1150000>;
+                       opp-hz = /bits/ 64 <528000000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-528000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <528000000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-528000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <528000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-600000000-950 {
+                       opp-microvolt = <950000 950000 1150000>;
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x0008>;
+               };
+
+               opp-600000000-1000 {
+                       opp-microvolt = <1000000 1000000 1150000>;
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x0003>;
+               };
+
+               opp-600000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-600000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-792000000-1000 {
+                       opp-microvolt = <1000000 1000000 1150000>;
+                       opp-hz = /bits/ 64 <792000000>;
+                       opp-supported-hw = <0x000B>;
+               };
+
+               opp-792000000-1050 {
+                       opp-microvolt = <1050000 1050000 1150000>;
+                       opp-hz = /bits/ 64 <792000000>;
+                       opp-supported-hw = <0x0010>;
+               };
+
+               opp-792000000-1110 {
+                       opp-microvolt = <1110000 1110000 1150000>;
+                       opp-hz = /bits/ 64 <792000000>;
+                       opp-supported-hw = <0x0004>;
+               };
+
+               opp-924000000-1100 {
+                       opp-microvolt = <1100000 1100000 1150000>;
+                       opp-hz = /bits/ 64 <924000000>;
+                       opp-supported-hw = <0x0013>;
+               };
+
+               opp-1200000000-1100 {
+                       opp-microvolt = <1100000 1100000 1150000>;
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-supported-hw = <0x0003>;
+               };
+       };
+
+       /* EMC bandwidth OPP table */
+       emc_bw_dfs_opp_table: opp-table-dvfs1 {
+               compatible = "operating-points-v2";
+
+               opp-12750000 {
+                       opp-hz = /bits/ 64 <12750000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <204000>;
+               };
+
+               opp-20400000 {
+                       opp-hz = /bits/ 64 <20400000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <326400>;
+               };
+
+               opp-40800000 {
+                       opp-hz = /bits/ 64 <40800000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <652800>;
+               };
+
+               opp-68000000 {
+                       opp-hz = /bits/ 64 <68000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <1088000>;
+               };
+
+               opp-102000000 {
+                       opp-hz = /bits/ 64 <102000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <1632000>;
+               };
+
+               opp-204000000 {
+                       opp-hz = /bits/ 64 <204000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <3264000>;
+                       opp-suspend;
+               };
+
+               opp-264000000 {
+                       opp-hz = /bits/ 64 <264000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <4224000>;
+               };
+
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <4800000>;
+               };
+
+               opp-348000000 {
+                       opp-hz = /bits/ 64 <348000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <5568000>;
+               };
+
+               opp-396000000 {
+                       opp-hz = /bits/ 64 <396000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <6336000>;
+               };
+
+               opp-528000000 {
+                       opp-hz = /bits/ 64 <528000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <8448000>;
+               };
+
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <9600000>;
+               };
+
+               opp-792000000 {
+                       opp-hz = /bits/ 64 <792000000>;
+                       opp-supported-hw = <0x001F>;
+                       opp-peak-kBps = <12672000>;
+               };
+
+               opp-924000000 {
+                       opp-hz = /bits/ 64 <924000000>;
+                       opp-supported-hw = <0x0013>;
+                       opp-peak-kBps = <14784000>;
+               };
+
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-supported-hw = <0x0003>;
+                       opp-peak-kBps = <19200000>;
+               };
+       };
+};
index 63aa312..3673f79 100644 (file)
@@ -8,6 +8,8 @@
 #include <dt-bindings/thermal/tegra124-soctherm.h>
 #include <dt-bindings/soc/tegra-pmc.h>
 
+#include "tegra132-peripherals-opp.dtsi"
+
 / {
        compatible = "nvidia,tegra132", "nvidia,tegra124";
        interrupt-parent = <&lic>;
        };
 
        timer@60005000 {
-               compatible = "nvidia,tegra124-timer", "nvidia,tegra20-timer";
+               compatible = "nvidia,tegra124-timer", "nvidia,tegra30-timer";
                reg = <0x0 0x60005000 0x0 0x400>;
                interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
                clock-names = "actmon", "emc";
                resets = <&tegra_car 119>;
                reset-names = "actmon";
+               operating-points-v2 = <&emc_bw_dfs_opp_table>;
+               interconnects = <&mc TEGRA124_MC_MPCORER &emc>;
+               interconnect-names = "cpu-read";
+               #cooling-cells = <2>;
        };
 
        gpio: gpio@6000d000 {
        };
 
        i2c@7000c000 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000c000 0x0 0x100>;
                interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000c400 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000c400 0x0 0x100>;
                interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000c500 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000c500 0x0 0x100>;
                interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000c700 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000c700 0x0 0x100>;
                interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000d000 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000d000 0x0 0x100>;
                interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        i2c@7000d100 {
-               compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
+               compatible = "nvidia,tegra124-i2c";
                reg = <0x0 0x7000d100 0x0 0x100>;
                interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
 
                #iommu-cells = <1>;
+               #reset-cells = <1>;
+               #interconnect-cells = <1>;
        };
 
        emc: external-memory-controller@7001b000 {
-               compatible = "nvidia,tegra132-emc";
+               compatible = "nvidia,tegra132-emc", "nvidia,tegra124-emc";
                reg = <0x0 0x7001b000 0x0 0x1000>;
                clocks = <&tegra_car TEGRA124_CLK_EMC>;
                clock-names = "emc";
 
                nvidia,memory-controller = <&mc>;
+               operating-points-v2 = <&emc_icc_dvfs_opp_table>;
+
+               #interconnect-cells = <0>;
        };
 
        sata@70020000 {
                      <0x0 0x70020000 0x0 0x7000>; /* SATA */
                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&tegra_car TEGRA124_CLK_SATA>,
-                        <&tegra_car TEGRA124_CLK_SATA_OOB>,
-                        <&tegra_car TEGRA124_CLK_CML1>,
-                        <&tegra_car TEGRA124_CLK_PLL_E>;
-               clock-names = "sata", "sata-oob", "cml1", "pll_e";
+                        <&tegra_car TEGRA124_CLK_SATA_OOB>;
+               clock-names = "sata", "sata-oob";
                resets = <&tegra_car 124>,
                         <&tegra_car 129>,
                         <&tegra_car 123>;
                         <&tegra_car TEGRA124_CLK_XUSB_HOST_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_FALCON_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_SS>,
-                        <&tegra_car TEGRA124_CLK_XUSB_SS_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_SS_DIV2>,
+                        <&tegra_car TEGRA124_CLK_XUSB_SS_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_HS_SRC>,
                         <&tegra_car TEGRA124_CLK_XUSB_FS_SRC>,
                         <&tegra_car TEGRA124_CLK_PLL_U_480M>,
                         <&tegra_car TEGRA124_CLK_PLL_E>;
                clock-names = "xusb_host", "xusb_host_src",
                              "xusb_falcon_src", "xusb_ss",
-                             "xusb_ss_src", "xusb_ss_div2",
+                             "xusb_ss_div2", "xusb_ss_src",
                              "xusb_hs_src", "xusb_fs_src",
                              "pll_u_480m", "clk_m", "pll_e";
                resets = <&tegra_car 89>, <&tegra_car 156>,
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <0>;
 
                                };
                        };
                };
-               mem {
+
+               mem-thermal {
                        polling-delay-passive = <0>;
                        polling-delay = <0>;
 
                                 */
                        };
                };
-               gpu {
+
+               gpu-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <0>;
 
                                };
                        };
                };
-               pllx {
+
+               pllx-thermal {
                        polling-delay-passive = <0>;
                        polling-delay = <0>;
 
index 52fa258..c4dee05 100644 (file)
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       channel@0 {
+                       input@0 {
                                reg = <0x0>;
                                label = "VDD_MUX";
                                shunt-resistor-micro-ohms = <20000>;
                        };
 
-                       channel@1 {
+                       input@1 {
                                reg = <0x1>;
                                label = "VDD_5V0_IO_SYS";
                                shunt-resistor-micro-ohms = <5000>;
                        };
 
-                       channel@2 {
+                       input@2 {
                                reg = <0x2>;
                                label = "VDD_3V3_SYS";
                                shunt-resistor-micro-ohms = <10000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       channel@0 {
+                       input@0 {
                                reg = <0x0>;
                                label = "VDD_3V3_IO_SLP";
                                shunt-resistor-micro-ohms = <10000>;
                        };
 
-                       channel@1 {
+                       input@1 {
                                reg = <0x1>;
                                label = "VDD_1V8_IO";
                                shunt-resistor-micro-ohms = <10000>;
                        };
 
-                       channel@2 {
+                       input@2 {
                                reg = <0x2>;
                                label = "VDD_M2_IN";
                                shunt-resistor-micro-ohms = <10000>;
                };
        };
 
-       vdd_sd: regulator@100 {
+       vdd_sd: regulator-vdd-sd {
                compatible = "regulator-fixed";
                regulator-name = "SD_CARD_SW_PWR";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_hdmi: regulator@101 {
+       vdd_hdmi: regulator-vdd-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "VDD_HDMI_5V0";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_usb0: regulator@102 {
+       vdd_usb0: regulator-vdd-usb0 {
                compatible = "regulator-fixed";
                regulator-name = "VDD_USB0";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_usb1: regulator@103 {
+       vdd_usb1: regulator-vdd-usb1 {
                compatible = "regulator-fixed";
                regulator-name = "VDD_USB1";
                regulator-min-microvolt = <5000000>;
index fcd71bf..aff857d 100644 (file)
@@ -44,7 +44,7 @@
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       phy: phy@0 {
+                       phy: ethernet-phy@0 {
                                compatible = "ethernet-phy-ieee802.3-c22";
                                reg = <0x0>;
                                interrupt-parent = <&gpio>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       channel@0 {
+                       input@0 {
                                reg = <0x0>;
                                label = "VDD_SYS_GPU";
                                shunt-resistor-micro-ohms = <10000>;
                        };
 
-                       channel@1 {
+                       input@1 {
                                reg = <0x1>;
                                label = "VDD_SYS_SOC";
                                shunt-resistor-micro-ohms = <10000>;
                        };
 
-                       channel@2 {
+                       input@2 {
                                reg = <0x2>;
                                label = "VDD_3V8_WIFI";
                                shunt-resistor-micro-ohms = <10000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       channel@0 {
+                       input@0 {
                                reg = <0x0>;
                                label = "VDD_IN";
                                shunt-resistor-micro-ohms = <5000>;
                        };
 
-                       channel@1 {
+                       input@1 {
                                reg = <0x1>;
                                label = "VDD_SYS_CPU";
                                shunt-resistor-micro-ohms = <10000>;
                        };
 
-                       channel@2 {
+                       input@2 {
                                reg = <0x2>;
                                label = "VDD_5V0_DDR";
                                shunt-resistor-micro-ohms = <10000>;
                method = "smc";
        };
 
-       gnd: regulator@0 {
+       gnd: regulator-gnd {
                compatible = "regulator-fixed";
                regulator-name = "GND";
                regulator-min-microvolt = <0>;
                regulator-boot-on;
        };
 
-       vdd_5v0_sys: regulator@1 {
+       vdd_5v0_sys: regulator-vdd-5v0-sys {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V0_SYS";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       vdd_1v8_ap: regulator@2 {
+       vdd_1v8_ap: regulator-vdd-1v8-ap {
                compatible = "regulator-fixed";
                regulator-name = "VDD_1V8_AP";
                regulator-min-microvolt = <1800000>;
index af33fe9..4631504 100644 (file)
@@ -46,7 +46,7 @@
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       phy: phy@0 {
+                       phy: ethernet-phy@0 {
                                compatible = "ethernet-phy-ieee802.3-c22";
                                reg = <0x0>;
                                interrupt-parent = <&gpio_aon>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       channel@0 {
+                       input@0 {
                                reg = <0>;
                                label = "VDD_IN";
                                shunt-resistor-micro-ohms = <5>;
                        };
 
-                       channel@1 {
+                       input@1 {
                                reg = <1>;
                                label = "VDD_CPU_GPU";
                                shunt-resistor-micro-ohms = <5>;
                        };
 
-                       channel@2 {
+                       input@2 {
                                reg = <2>;
                                label = "VDD_SOC";
-                               shunt-resistor-micro-ohms = <>;
+                               shunt-resistor-micro-ohms = <5>;
                        };
                };
        };
                method = "smc";
        };
 
-       gnd: regulator@0 {
+       gnd: regulator-gnd {
                compatible = "regulator-fixed";
                regulator-name = "GND";
                regulator-min-microvolt = <0>;
                regulator-boot-on;
        };
 
-       vdd_5v0_sys: regulator@1 {
+       vdd_5v0_sys: regulator-vdd-5v0-sys {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V0_SYS";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       vdd_1v8_ap: regulator@2 {
+       vdd_1v8_ap: regulator-vdd-1v8-ap {
                compatible = "regulator-fixed";
                regulator-name = "VDD_1V8_AP";
                regulator-min-microvolt = <1800000>;
                vin-supply = <&vdd_1v8>;
        };
 
-       vdd_hdmi: regulator@3 {
+       vdd_hdmi: regulator-vdd-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V0_HDMI_CON";
                regulator-min-microvolt = <5000000>;
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <500>;
                        status = "okay";
                        };
                };
 
-               gpu {
+               aux-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <500>;
                        status = "okay";
 
                        trips {
-                               gpu_alert0: critical {
-                                       temperature = <99000>;
+                               aux_alert0: critical {
+                                       temperature = <90000>;
                                        hysteresis = <0>;
                                        type = "critical";
                                };
                        };
                };
 
-               aux {
+               gpu-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <500>;
                        status = "okay";
 
                        trips {
-                               aux_alert0: critical {
-                                       temperature = <90000>;
+                               gpu_alert0: critical {
+                                       temperature = <99000>;
                                        hysteresis = <0>;
                                        type = "critical";
                                };
index 9ac4f01..c91afff 100644 (file)
                };
        };
 
+       timer@3010000 {
+               compatible = "nvidia,tegra186-timer";
+               reg = <0x0 0x03010000 0x0 0x000e0000>;
+               interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               status = "disabled";
+       };
+
        uarta: serial@3100000 {
                compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
                reg = <0x0 0x03100000 0x0 0x40>;
        };
 
        gen1_i2c: i2c@3160000 {
-               compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
+               compatible = "nvidia,tegra186-i2c";
                reg = <0x0 0x03160000 0x0 0x10000>;
                interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        cam_i2c: i2c@3180000 {
-               compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
+               compatible = "nvidia,tegra186-i2c";
                reg = <0x0 0x03180000 0x0 0x10000>;
                interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
 
        /* shares pads with dpaux1 */
        dp_aux_ch1_i2c: i2c@3190000 {
-               compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
+               compatible = "nvidia,tegra186-i2c";
                reg = <0x0 0x03190000 0x0 0x10000>;
                interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
 
        /* controlled by BPMP, should not be enabled */
        pwr_i2c: i2c@31a0000 {
-               compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
+               compatible = "nvidia,tegra186-i2c";
                reg = <0x0 0x031a0000 0x0 0x10000>;
                interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
 
        /* shares pads with dpaux0 */
        dp_aux_ch0_i2c: i2c@31b0000 {
-               compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
+               compatible = "nvidia,tegra186-i2c";
                reg = <0x0 0x031b0000 0x0 0x10000>;
                interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        gen7_i2c: i2c@31c0000 {
-               compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
+               compatible = "nvidia,tegra186-i2c";
                reg = <0x0 0x031c0000 0x0 0x10000>;
                interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        gen9_i2c: i2c@31e0000 {
-               compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
+               compatible = "nvidia,tegra186-i2c";
                reg = <0x0 0x031e0000 0x0 0x10000>;
                interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        gen2_i2c: i2c@c240000 {
-               compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
+               compatible = "nvidia,tegra186-i2c";
                reg = <0x0 0x0c240000 0x0 0x10000>;
                interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
        };
 
        gen8_i2c: i2c@c250000 {
-               compatible = "nvidia,tegra186-i2c", "nvidia,tegra210-i2c";
+               compatible = "nvidia,tegra186-i2c";
                reg = <0x0 0x0c250000 0x0 0x10000>;
                interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
 
        ccplex@e000000 {
                compatible = "nvidia,tegra186-ccplex-cluster";
-               reg = <0x0 0x0e000000 0x0 0x3fffff>;
+               reg = <0x0 0x0e000000 0x0 0x400000>;
 
                nvidia,bpmp = <&bpmp>;
        };
                        iommus = <&smmu TEGRA186_SID_VIC>;
                };
 
+               nvjpg@15380000 {
+                       compatible = "nvidia,tegra186-nvjpg";
+                       reg = <0x15380000 0x40000>;
+                       clocks = <&bpmp TEGRA186_CLK_NVJPG>;
+                       clock-names = "nvjpg";
+                       resets = <&bpmp TEGRA186_RESET_NVJPG>;
+                       reset-names = "nvjpg";
+
+                       power-domains = <&bpmp TEGRA186_POWER_DOMAIN_NVJPG>;
+                       interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVJPGSRD &emc>,
+                                       <&mc TEGRA186_MEMORY_CLIENT_NVJPGSWR &emc>;
+                       interconnect-names = "dma-mem", "write";
+                       iommus = <&smmu TEGRA186_SID_NVJPG>;
+               };
+
                dsib: dsi@15400000 {
                        compatible = "nvidia,tegra186-dsi";
                        reg = <0x15400000 0x10000>;
                        iommus = <&smmu TEGRA186_SID_NVDEC>;
                };
 
+               nvenc@154c0000 {
+                       compatible = "nvidia,tegra186-nvenc";
+                       reg = <0x154c0000 0x40000>;
+                       clocks = <&bpmp TEGRA186_CLK_NVENC>;
+                       clock-names = "nvenc";
+                       resets = <&bpmp TEGRA186_RESET_NVENC>;
+                       reset-names = "nvenc";
+
+                       power-domains = <&bpmp TEGRA186_POWER_DOMAIN_MPE>;
+                       interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVENCSRD &emc>,
+                                       <&mc TEGRA186_MEMORY_CLIENT_NVENCSWR &emc>;
+                       interconnect-names = "dma-mem", "write";
+                       iommus = <&smmu TEGRA186_SID_NVENC>;
+               };
+
                sor0: sor@15540000 {
                        compatible = "nvidia,tegra186-sor";
                        reg = <0x15540000 0x10000>;
                iommus = <&smmu TEGRA186_SID_BPMP>;
                mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB
                                    TEGRA_HSP_DB_MASTER_BPMP>;
-               shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
+               shmem = <&cpu_bpmp_tx>, <&cpu_bpmp_rx>;
                #clock-cells = <1>;
                #reset-cells = <1>;
                #power-domain-cells = <1>;
        };
 
        thermal-zones {
-               a57 {
+               /* Cortex-A57 cluster */
+               cpu-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <1000>;
 
-                       thermal-sensors =
-                               <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_CPU>;
+                       thermal-sensors = <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_CPU>;
 
                        trips {
                                critical {
                        };
                };
 
-               denver {
+               /* Denver cluster */
+               aux-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <1000>;
 
-                       thermal-sensors =
-                               <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AUX>;
+                       thermal-sensors = <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AUX>;
 
                        trips {
                                critical {
                        };
                };
 
-               gpu {
+               gpu-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <1000>;
 
-                       thermal-sensors =
-                               <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_GPU>;
+                       thermal-sensors = <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_GPU>;
 
                        trips {
                                critical {
                        };
                };
 
-               pll {
+               pll-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <1000>;
 
-                       thermal-sensors =
-                               <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_PLLX>;
+                       thermal-sensors = <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_PLLX>;
 
                        trips {
                                critical {
                        };
                };
 
-               always_on {
+               ao-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <1000>;
 
-                       thermal-sensors =
-                               <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AO>;
+                       thermal-sensors = <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AO>;
 
                        trips {
                                critical {
index c4058ee..a7d7cfd 100644 (file)
@@ -39,7 +39,7 @@
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               phy: phy@0 {
+                               phy: ethernet-phy@0 {
                                        compatible = "ethernet-phy-ieee802.3-c22";
                                        reg = <0x0>;
                                        interrupt-parent = <&gpio>;
                };
        };
 
-       vdd_5v0_sys: regulator@0 {
+       vdd_5v0_sys: regulator-vdd-5v0-sys {
                compatible = "regulator-fixed";
                regulator-name = "VIN_SYS_5V0";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       vdd_hdmi: regulator@1 {
+       vdd_hdmi: regulator-vdd-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V0_HDMI_CON";
                regulator-min-microvolt = <5000000>;
                enable-active-high;
        };
 
-       vdd_3v3_pcie: regulator@2 {
+       vdd_3v3_pcie: regulator-vdd-3v3-pcie {
                compatible = "regulator-fixed";
                regulator-name = "PEX_3V3";
                regulator-min-microvolt = <3300000>;
                enable-active-high;
        };
 
-       vdd_12v_pcie: regulator@3 {
+       vdd_12v_pcie: regulator-vdd-12v-pcie {
                compatible = "regulator-fixed";
                regulator-name = "VDD_12V";
                regulator-min-microvolt = <1200000>;
                regulator-boot-on;
        };
 
-       vdd_5v_sata: regulator@4 {
+       vdd_5v_sata: regulator-vdd-5v0-sata {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V_SATA";
                regulator-min-microvolt = <5000000>;
index 9f34871..2478ece 100644 (file)
                                                i2s6_port: port@1 {
                                                        reg = <1>;
 
-                                                       i2s6_dap_ep: endpoint@0 {
+                                                       i2s6_dap_ep: endpoint {
                                                                dai-format = "i2s";
                                                                /* Place holder for external Codec */
                                                        };
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <500>;
                        status = "okay";
                        };
                };
 
-               gpu {
+               gpu-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <500>;
                        status = "okay";
                        };
                };
 
-               aux {
+               aux-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <500>;
                        status = "okay";
index a055f17..1323fa9 100644 (file)
                                                i2s5_port: port@1 {
                                                        reg = <1>;
 
-                                                       i2s5_dap_ep: endpoint@0 {
+                                                       i2s5_dap_ep: endpoint {
                                                                dai-format = "i2s";
                                                                /* Place holder for external Codec */
                                                        };
                        status = "okay";
 
                        flash@0 {
-                               compatible = "spi-nor";
+                               compatible = "jedec,spi-nor";
                                reg = <0>;
                                spi-max-frequency = <102000000>;
                                spi-tx-bus-width = <4>;
                };
        };
 
-       vdd_5v0_sys: regulator@100 {
+       vdd_5v0_sys: regulator-vdd-5v0-sys {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V_SYS";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       vdd_3v3_sys: regulator@101 {
+       vdd_3v3_sys: regulator-vdd-3v3-sys {
                compatible = "regulator-fixed";
                regulator-name = "VDD_3V3_SYS";
                regulator-min-microvolt = <3300000>;
                regulator-boot-on;
        };
 
-       vdd_3v3_ao: regulator@102 {
+       vdd_3v3_ao: regulator-vdd-3v3-ao {
                compatible = "regulator-fixed";
                regulator-name = "VDD_3V3_AO";
                regulator-min-microvolt = <3300000>;
                regulator-boot-on;
        };
 
-       vdd_1v8: regulator@103 {
+       vdd_1v8: regulator-vdd-1v8 {
                compatible = "regulator-fixed";
                regulator-name = "VDD_1V8";
                regulator-min-microvolt = <1800000>;
                regulator-boot-on;
        };
 
-       vdd_hdmi: regulator@104 {
+       vdd_hdmi: regulator-vdd-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V0_HDMI_CON";
                regulator-min-microvolt = <5000000>;
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <500>;
                        status = "okay";
                        };
                };
 
-               gpu {
+               gpu-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <500>;
                        status = "okay";
                        };
                };
 
-               aux {
+               aux-thermal {
                        polling-delay = <0>;
                        polling-delay-passive = <500>;
                        status = "okay";
index 14da420..8c2c709 100644 (file)
@@ -20,7 +20,7 @@
                };
        };
 
-       vdd_3v3_sd: regulator@0 {
+       vdd_3v3_sd: regulator-vdd-3v3-sd {
                compatible = "regulator-fixed";
                regulator-name = "VDD_3V3_SD";
                regulator-min-microvolt = <3300000>;
index f16b0aa..0bd66f9 100644 (file)
@@ -36,7 +36,7 @@
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               phy: phy@0 {
+                               phy: ethernet-phy@0 {
                                        compatible = "ethernet-phy-ieee802.3-c22";
                                        reg = <0x0>;
                                        interrupt-parent = <&gpio>;
index 851e049..3c4acfc 100644 (file)
@@ -3,6 +3,7 @@
 #include <dt-bindings/gpio/tegra194-gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/mailbox/tegra186-hsp.h>
+#include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
 #include <dt-bindings/pinctrl/pinctrl-tegra.h>
 #include <dt-bindings/power/tegra194-powergate.h>
 #include <dt-bindings/reset/tegra194-reset.h>
                                pex_rst {
                                        nvidia,pins = "pex_l5_rst_n_pgg1";
                                        nvidia,schmitt = <TEGRA_PIN_DISABLE>;
-                                       nvidia,lpdr = <TEGRA_PIN_ENABLE>;
                                        nvidia,enable-input = <TEGRA_PIN_DISABLE>;
                                        nvidia,io-hv = <TEGRA_PIN_ENABLE>;
                                        nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                clkreq {
                                        nvidia,pins = "pex_l5_clkreq_n_pgg0";
                                        nvidia,schmitt = <TEGRA_PIN_DISABLE>;
-                                       nvidia,lpdr = <TEGRA_PIN_ENABLE>;
                                        nvidia,enable-input = <TEGRA_PIN_ENABLE>;
                                        nvidia,io-hv = <TEGRA_PIN_ENABLE>;
                                        nvidia,tristate = <TEGRA_PIN_DISABLE>;
                                compatible = "nvidia,tegra194-emc";
                                reg = <0x0 0x02c60000 0x0 0x90000>,
                                      <0x0 0x01780000 0x0 0x80000>;
+                               interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&bpmp TEGRA194_CLK_EMC>;
                                clock-names = "emc";
 
                                        <&mc TEGRA194_MEMORY_CLIENT_SDMMCWA &emc>;
                        interconnect-names = "dma-mem", "write";
                        iommus = <&smmu TEGRA194_SID_SDMMC1>;
+                       pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
+                       pinctrl-0 = <&sdmmc1_3v3>;
+                       pinctrl-1 = <&sdmmc1_1v8>;
                        nvidia,pad-autocal-pull-up-offset-3v3-timeout =
                                                                        <0x07>;
                        nvidia,pad-autocal-pull-down-offset-3v3-timeout =
                        nvidia,pad-autocal-pull-down-offset-sdr104 = <0x00>;
                        nvidia,default-tap = <0x9>;
                        nvidia,default-trim = <0x5>;
+                       sd-uhs-sdr25;
+                       sd-uhs-sdr50;
+                       sd-uhs-ddr50;
+                       sd-uhs-sdr104;
                        status = "disabled";
                };
 
                                        <&mc TEGRA194_MEMORY_CLIENT_SDMMCW &emc>;
                        interconnect-names = "dma-mem", "write";
                        iommus = <&smmu TEGRA194_SID_SDMMC3>;
+                       pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
+                       pinctrl-0 = <&sdmmc3_3v3>;
+                       pinctrl-1 = <&sdmmc3_1v8>;
                        nvidia,pad-autocal-pull-up-offset-1v8 = <0x00>;
                        nvidia,pad-autocal-pull-down-offset-1v8 = <0x7a>;
                        nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
                        nvidia,pad-autocal-pull-down-offset-sdr104 = <0x00>;
                        nvidia,default-tap = <0x9>;
                        nvidia,default-trim = <0x5>;
+                       sd-uhs-sdr25;
+                       sd-uhs-sdr50;
+                       sd-uhs-ddr50;
+                       sd-uhs-sdr104;
                        status = "disabled";
                };
 
                        nvidia,default-tap = <0x8>;
                        nvidia,default-trim = <0x14>;
                        nvidia,dqs-trim = <40>;
+                       cap-mmc-highspeed;
+                       mmc-ddr-1_8v;
+                       mmc-hs200-1_8v;
+                       mmc-hs400-1_8v;
+                       mmc-hs400-enhanced-strobe;
                        supports-cqe;
                        status = "disabled";
                };
                };
 
                hsp_top0: hsp@3c00000 {
-                       compatible = "nvidia,tegra194-hsp", "nvidia,tegra186-hsp";
+                       compatible = "nvidia,tegra194-hsp";
                        reg = <0x03c00000 0xa0000>;
                        interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
                };
 
                hsp_aon: hsp@c150000 {
-                       compatible = "nvidia,tegra194-hsp", "nvidia,tegra186-hsp";
+                       compatible = "nvidia,tegra194-hsp";
                        reg = <0x0c150000 0x90000>;
                        interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
 
                        #interrupt-cells = <2>;
                        interrupt-controller;
+                       sdmmc1_3v3: sdmmc1-3v3 {
+                               pins = "sdmmc1-hv";
+                               power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
+                       };
+
+                       sdmmc1_1v8: sdmmc1-1v8 {
+                               pins = "sdmmc1-hv";
+                               power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
+                       };
+                       sdmmc3_3v3: sdmmc3-3v3 {
+                               pins = "sdmmc3-hv";
+                               power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
+                       };
+
+                       sdmmc3_1v8: sdmmc3-1v8 {
+                               pins = "sdmmc3-hv";
+                               power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
+                       };
+
+               };
+
+               iommu@10000000 {
+                       compatible = "nvidia,tegra194-smmu", "nvidia,smmu-500";
+                       reg = <0x10000000 0x800000>;
+                       interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
+                       stream-match-mask = <0x7f80>;
+                       #global-interrupts = <1>;
+                       #iommu-cells = <1>;
+
+                       nvidia,memory-controller = <&mc>;
+                       status = "okay";
                };
 
                smmu: iommu@12000000 {
                                                <&mc TEGRA194_MEMORY_CLIENT_VICSWR &emc>;
                                interconnect-names = "dma-mem", "write";
                                iommus = <&smmu TEGRA194_SID_VIC>;
+                               dma-coherent;
+                       };
+
+                       nvjpg@15380000 {
+                               compatible = "nvidia,tegra194-nvjpg";
+                               reg = <0x15380000 0x40000>;
+                               clocks = <&bpmp TEGRA194_CLK_NVJPG>;
+                               clock-names = "nvjpg";
+                               resets = <&bpmp TEGRA194_RESET_NVJPG>;
+                               reset-names = "nvjpg";
+
+                               power-domains = <&bpmp TEGRA194_POWER_DOMAIN_NVJPG>;
+                               interconnects = <&mc TEGRA194_MEMORY_CLIENT_NVJPGSRD &emc>,
+                                               <&mc TEGRA194_MEMORY_CLIENT_NVJPGSWR &emc>;
+                               interconnect-names = "dma-mem", "write";
+                               iommus = <&smmu TEGRA194_SID_NVJPG>;
+                               dma-coherent;
                        };
 
                        nvdec@15480000 {
                                nvidia,host1x-class = <0xf0>;
                        };
 
+                       nvenc@154c0000 {
+                               compatible = "nvidia,tegra194-nvenc";
+                               reg = <0x154c0000 0x40000>;
+                               clocks = <&bpmp TEGRA194_CLK_NVENC>;
+                               clock-names = "nvenc";
+                               resets = <&bpmp TEGRA194_RESET_NVENC>;
+                               reset-names = "nvenc";
+
+                               power-domains = <&bpmp TEGRA194_POWER_DOMAIN_NVENCA>;
+                               interconnects = <&mc TEGRA194_MEMORY_CLIENT_NVENCSRD &emc>,
+                                               <&mc TEGRA194_MEMORY_CLIENT_NVENCSRD1 &emc>,
+                                               <&mc TEGRA194_MEMORY_CLIENT_NVENCSWR &emc>;
+                               interconnect-names = "dma-mem", "read-1", "write";
+                               iommus = <&smmu TEGRA194_SID_NVENC>;
+                               dma-coherent;
+
+                               nvidia,host1x-class = <0x21>;
+                       };
+
                        dpaux0: dpaux@155c0000 {
                                compatible = "nvidia,tegra194-dpaux";
                                reg = <0x155c0000 0x10000>;
                                };
                        };
 
+                       nvenc@15a80000 {
+                               compatible = "nvidia,tegra194-nvenc";
+                               reg = <0x15a80000 0x00040000>;
+                               clocks = <&bpmp TEGRA194_CLK_NVENC1>;
+                               clock-names = "nvenc";
+                               resets = <&bpmp TEGRA194_RESET_NVENC1>;
+                               reset-names = "nvenc";
+
+                               power-domains = <&bpmp TEGRA194_POWER_DOMAIN_NVENCB>;
+                               interconnects = <&mc TEGRA194_MEMORY_CLIENT_NVENC1SRD &emc>,
+                                               <&mc TEGRA194_MEMORY_CLIENT_NVENC1SRD1 &emc>,
+                                               <&mc TEGRA194_MEMORY_CLIENT_NVENC1SWR &emc>;
+                               interconnect-names = "dma-mem", "read-1", "write";
+                               iommus = <&smmu TEGRA194_SID_NVENC1>;
+                               dma-coherent;
+
+                               nvidia,host1x-class = <0x22>;
+                       };
+
                        sor0: sor@15b00000 {
                                compatible = "nvidia,tegra194-sor";
                                reg = <0x15b00000 0x40000>;
                #size-cells = <2>;
                device_type = "pci";
                num-lanes = <1>;
-               num-viewport = <8>;
                linux,pci-domain = <1>;
 
                clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_1>;
                interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE1R &emc>,
                                <&mc TEGRA194_MEMORY_CLIENT_PCIE1W &emc>;
                interconnect-names = "dma-mem", "write";
-               iommus = <&smmu TEGRA194_SID_PCIE1>;
                iommu-map = <0x0 &smmu TEGRA194_SID_PCIE1 0x1000>;
                iommu-map-mask = <0x0>;
                dma-coherent;
                #size-cells = <2>;
                device_type = "pci";
                num-lanes = <1>;
-               num-viewport = <8>;
                linux,pci-domain = <2>;
 
                clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_2>;
                interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE2AR &emc>,
                                <&mc TEGRA194_MEMORY_CLIENT_PCIE2AW &emc>;
                interconnect-names = "dma-mem", "write";
-               iommus = <&smmu TEGRA194_SID_PCIE2>;
                iommu-map = <0x0 &smmu TEGRA194_SID_PCIE2 0x1000>;
                iommu-map-mask = <0x0>;
                dma-coherent;
                #size-cells = <2>;
                device_type = "pci";
                num-lanes = <1>;
-               num-viewport = <8>;
                linux,pci-domain = <3>;
 
                clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_3>;
                interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE3R &emc>,
                                <&mc TEGRA194_MEMORY_CLIENT_PCIE3W &emc>;
                interconnect-names = "dma-mem", "write";
-               iommus = <&smmu TEGRA194_SID_PCIE3>;
                iommu-map = <0x0 &smmu TEGRA194_SID_PCIE3 0x1000>;
                iommu-map-mask = <0x0>;
                dma-coherent;
                #size-cells = <2>;
                device_type = "pci";
                num-lanes = <4>;
-               num-viewport = <8>;
                linux,pci-domain = <4>;
 
                clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_4>;
                interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE4R &emc>,
                                <&mc TEGRA194_MEMORY_CLIENT_PCIE4W &emc>;
                interconnect-names = "dma-mem", "write";
-               iommus = <&smmu TEGRA194_SID_PCIE4>;
                iommu-map = <0x0 &smmu TEGRA194_SID_PCIE4 0x1000>;
                iommu-map-mask = <0x0>;
                dma-coherent;
                #size-cells = <2>;
                device_type = "pci";
                num-lanes = <8>;
-               num-viewport = <8>;
                linux,pci-domain = <0>;
 
                clocks = <&bpmp TEGRA194_CLK_PEX0_CORE_0>;
                interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE0R &emc>,
                                <&mc TEGRA194_MEMORY_CLIENT_PCIE0W &emc>;
                interconnect-names = "dma-mem", "write";
-               iommus = <&smmu TEGRA194_SID_PCIE0>;
                iommu-map = <0x0 &smmu TEGRA194_SID_PCIE0 0x1000>;
                iommu-map-mask = <0x0>;
                dma-coherent;
                #size-cells = <2>;
                device_type = "pci";
                num-lanes = <8>;
-               num-viewport = <8>;
                linux,pci-domain = <5>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&pex_rst_c5_out_state>, <&clkreq_c5_bi_dir_state>;
 
-               clocks = <&bpmp TEGRA194_CLK_PEX1_CORE_5>,
-                        <&bpmp TEGRA194_CLK_PEX1_CORE_5M>;
-               clock-names = "core", "core_m";
+               clocks = <&bpmp TEGRA194_CLK_PEX1_CORE_5>;
+               clock-names = "core";
 
                resets = <&bpmp TEGRA194_RESET_PEX1_CORE_5_APB>,
                         <&bpmp TEGRA194_RESET_PEX1_CORE_5>;
                interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE5R &emc>,
                                <&mc TEGRA194_MEMORY_CLIENT_PCIE5W &emc>;
                interconnect-names = "dma-mem", "write";
-               iommus = <&smmu TEGRA194_SID_PCIE5>;
                iommu-map = <0x0 &smmu TEGRA194_SID_PCIE5 0x1000>;
                iommu-map-mask = <0x0>;
                dma-coherent;
                interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE4R &emc>,
                                <&mc TEGRA194_MEMORY_CLIENT_PCIE4W &emc>;
                interconnect-names = "dma-mem", "write";
-               iommus = <&smmu TEGRA194_SID_PCIE4>;
                iommu-map = <0x0 &smmu TEGRA194_SID_PCIE4 0x1000>;
                iommu-map-mask = <0x0>;
                dma-coherent;
                interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE0R &emc>,
                                <&mc TEGRA194_MEMORY_CLIENT_PCIE0W &emc>;
                interconnect-names = "dma-mem", "write";
-               iommus = <&smmu TEGRA194_SID_PCIE0>;
                iommu-map = <0x0 &smmu TEGRA194_SID_PCIE0 0x1000>;
                iommu-map-mask = <0x0>;
                dma-coherent;
                interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE5R &emc>,
                                <&mc TEGRA194_MEMORY_CLIENT_PCIE5W &emc>;
                interconnect-names = "dma-mem", "write";
-               iommus = <&smmu TEGRA194_SID_PCIE5>;
                iommu-map = <0x0 &smmu TEGRA194_SID_PCIE5 0x1000>;
                iommu-map-mask = <0x0>;
                dma-coherent;
                compatible = "nvidia,tegra186-bpmp";
                mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB
                                    TEGRA_HSP_DB_MASTER_BPMP>;
-               shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
+               shmem = <&cpu_bpmp_tx>, <&cpu_bpmp_rx>;
                #clock-cells = <1>;
                #reset-cells = <1>;
                #power-domain-cells = <1>;
                iommus = <&smmu TEGRA194_SID_APE>;
        };
 
-       tcu: tcu {
+       tcu: serial {
                compatible = "nvidia,tegra194-tcu";
                mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_SM TEGRA_HSP_SM_RX(0)>,
                         <&hsp_aon TEGRA_HSP_MBOX_TYPE_SM TEGRA_HSP_SM_TX(1)>;
        };
 
        thermal-zones {
-               cpu {
-                       thermal-sensors = <&{/bpmp/thermal}
-                                          TEGRA194_BPMP_THERMAL_ZONE_CPU>;
+               cpu-thermal {
+                       thermal-sensors = <&{/bpmp/thermal} TEGRA194_BPMP_THERMAL_ZONE_CPU>;
                        status = "disabled";
                };
 
-               gpu {
-                       thermal-sensors = <&{/bpmp/thermal}
-                                          TEGRA194_BPMP_THERMAL_ZONE_GPU>;
+               gpu-thermal {
+                       thermal-sensors = <&{/bpmp/thermal} TEGRA194_BPMP_THERMAL_ZONE_GPU>;
                        status = "disabled";
                };
 
-               aux {
-                       thermal-sensors = <&{/bpmp/thermal}
-                                          TEGRA194_BPMP_THERMAL_ZONE_AUX>;
+               aux-thermal {
+                       thermal-sensors = <&{/bpmp/thermal} TEGRA194_BPMP_THERMAL_ZONE_AUX>;
                        status = "disabled";
                };
 
-               pllx {
-                       thermal-sensors = <&{/bpmp/thermal}
-                                          TEGRA194_BPMP_THERMAL_ZONE_PLLX>;
+               pllx-thermal {
+                       thermal-sensors = <&{/bpmp/thermal} TEGRA194_BPMP_THERMAL_ZONE_PLLX>;
                        status = "disabled";
                };
 
-               ao {
-                       thermal-sensors = <&{/bpmp/thermal}
-                                          TEGRA194_BPMP_THERMAL_ZONE_AO>;
+               ao-thermal {
+                       thermal-sensors = <&{/bpmp/thermal} TEGRA194_BPMP_THERMAL_ZONE_AO>;
                        status = "disabled";
                };
 
-               tj {
-                       thermal-sensors = <&{/bpmp/thermal}
-                                          TEGRA194_BPMP_THERMAL_ZONE_TJ_MAX>;
+               tj-thermal {
+                       thermal-sensors = <&{/bpmp/thermal} TEGRA194_BPMP_THERMAL_ZONE_TJ_MAX>;
                        status = "disabled";
                };
        };
index 6077d57..75eb743 100644 (file)
                vqmmc-supply = <&vdd_1v8>;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                method = "smc";
        };
 
-       vdd_gpu: regulator@100 {
+       vdd_gpu: regulator-vdd-gpu {
                compatible = "pwm-regulator";
                pwms = <&pwm 1 8000>;
                regulator-name = "VDD_GPU";
index 2e17df6..328fbfe 100644 (file)
        pcie@1003000 {
                status = "okay";
 
-               avdd-pll-uerefe-supply = <&avdd_1v05_pll>;
                hvddio-pex-supply = <&vdd_1v8>;
                dvddio-pex-supply = <&vdd_pex_1v05>;
-               dvdd-pex-pll-supply = <&vdd_pex_1v05>;
-               hvdd-pex-pll-e-supply = <&vdd_1v8>;
                vddio-pex-ctl-supply = <&vdd_1v8>;
 
                pci@1,0 {
index 58aa051..0a70dae 100644 (file)
@@ -40,7 +40,7 @@
                non-removable;
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
index d8409c1..4b43b89 100644 (file)
                dvddio-pex-supply = <&vdd_pex_1v05>;
                hvddio-pex-supply = <&vdd_1v8>;
                avdd-usb-supply = <&vdd_3v3_sys>;
-               /* XXX what are these? */
-               avdd-pll-utmip-supply = <&vdd_1v8>;
-               avdd-pll-uerefe-supply = <&vdd_pex_1v05>;
-               dvdd-usb-ss-pll-supply = <&vdd_pex_1v05>;
-               hvdd-usb-ss-pll-e-supply = <&vdd_1v8>;
 
                status = "okay";
 
                };
        };
 
-       vdd_sys_mux: regulator@0 {
+       vdd_sys_mux: regulator-vdd-sys-mux {
                compatible = "regulator-fixed";
                regulator-name = "VDD_SYS_MUX";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       vdd_5v0_sys: regulator@1 {
+       vdd_5v0_sys: regulator-vdd-5v0-sys {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V0_SYS";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_sys_mux>;
        };
 
-       vdd_3v3_sys: regulator@2 {
+       vdd_3v3_sys: regulator-vdd-3v3-sys {
                compatible = "regulator-fixed";
                regulator-name = "VDD_3V3_SYS";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_sys_mux>;
 
                regulator-enable-ramp-delay = <160>;
-               regulator-disable-ramp-delay = <10000>;
        };
 
-       vdd_5v0_io: regulator@3 {
+       vdd_5v0_io: regulator-vdd-5v0-io {
                compatible = "regulator-fixed";
                regulator-name = "VDD_5V0_IO_SYS";
                regulator-min-microvolt = <5000000>;
                regulator-boot-on;
        };
 
-       vdd_3v3_sd: regulator@4 {
+       vdd_3v3_sd: regulator-vdd-3v3-sd {
                compatible = "regulator-fixed";
                regulator-name = "VDD_3V3_SD";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
 
                regulator-enable-ramp-delay = <472>;
-               regulator-disable-ramp-delay = <4880>;
        };
 
-       vdd_dsi_csi: regulator@5 {
+       vdd_dsi_csi: regulator-vdd-dsi-csi {
                compatible = "regulator-fixed";
                regulator-name = "AVDD_DSI_CSI_1V2";
                regulator-min-microvolt = <1200000>;
                vin-supply = <&vdd_sys_1v2>;
        };
 
-       vdd_3v3_dis: regulator@6 {
+       vdd_3v3_dis: regulator-vdd-3v3-dis {
                compatible = "regulator-fixed";
                regulator-name = "VDD_DIS_3V3_LCD";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_1v8_dis: regulator@7 {
+       vdd_1v8_dis: regulator-vdd-1v8-dis {
                compatible = "regulator-fixed";
                regulator-name = "VDD_LCD_1V8_DIS";
                regulator-min-microvolt = <1800000>;
                vin-supply = <&vdd_1v8>;
        };
 
-       vdd_5v0_rtl: regulator@8 {
+       vdd_5v0_rtl: regulator-vdd-5v0-rtl {
                compatible = "regulator-fixed";
                regulator-name = "RTL_5V";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_usb_vbus: regulator@9 {
+       vdd_usb_vbus: regulator-vdd-usb-vbus {
                compatible = "regulator-fixed";
                regulator-name = "USB_VBUS_EN1";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_hdmi: regulator@10 {
+       vdd_hdmi: regulator-vdd-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "VDD_HDMI_5V0";
                regulator-min-microvolt = <5000000>;
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_cam_1v2: regulator@11 {
+       vdd_cam_1v2: regulator-vdd-cam-1v8 {
                compatible = "regulator-fixed";
                regulator-name = "vdd-cam-1v2";
                regulator-min-microvolt = <1200000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_cam_2v8: regulator@12 {
+       vdd_cam_2v8: regulator-vdd-cam-2v8 {
                compatible = "regulator-fixed";
                regulator-name = "vdd-cam-2v8";
                regulator-min-microvolt = <2800000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_cam_1v8: regulator@13 {
+       vdd_cam_1v8: regulator-vdd-cam-1v8 {
                compatible = "regulator-fixed";
                regulator-name = "vdd-cam-1v8";
                regulator-min-microvolt = <1800000>;
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_usb_vbus_otg: regulator@14 {
+       vdd_usb_vbus_otg: regulator-vdd-usb-vbus-otg {
                compatible = "regulator-fixed";
                regulator-name = "USB_VBUS_EN0";
                regulator-min-microvolt = <5000000>;
index 41beab6..10347b6 100644 (file)
                                };
                        };
 
-                       gpio@0 {
+                       hog-0 {
                                gpio-hog;
                                output-high;
                                gpios = <2 GPIO_ACTIVE_HIGH>,
                status = "okay";
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                method = "smc";
        };
 
-       battery_reg: regulator@0 {
+       battery_reg: regulator-vdd-ac-bat {
                compatible = "regulator-fixed";
                regulator-name = "vdd-ac-bat";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       vdd_3v3: regulator@1 {
+       vdd_3v3: regulator-vdd-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "vdd-3v3";
                regulator-enable-ramp-delay = <160>;
                enable-active-high;
        };
 
-       max77620_gpio7: regulator@2 {
+       max77620_gpio7: regulator-max77620-gpio7 {
                compatible = "regulator-fixed";
                regulator-name = "max77620-gpio7";
                regulator-enable-ramp-delay = <240>;
                enable-active-high;
        };
 
-       lcd_bl_en: regulator@3 {
+       lcd_bl_en: regulator-lcd-bl-en {
                compatible = "regulator-fixed";
                regulator-name = "lcd-bl-en";
                regulator-min-microvolt = <1800000>;
                enable-active-high;
        };
 
-       en_vdd_sd: regulator@4 {
+       en_vdd_sd: regulator-vdd-sd {
                compatible = "regulator-fixed";
                regulator-name = "en-vdd-sd";
                regulator-enable-ramp-delay = <472>;
                enable-active-high;
        };
 
-       en_vdd_cam: regulator@5 {
+       en_vdd_cam: regulator-vdd-cam {
                compatible = "regulator-fixed";
                regulator-name = "en-vdd-cam";
                regulator-min-microvolt = <1800000>;
                enable-active-high;
        };
 
-       vdd_sys_boost: regulator@6 {
+       vdd_sys_boost: regulator-vdd-sys-boost {
                compatible = "regulator-fixed";
                regulator-name = "vdd-sys-boost";
                regulator-enable-ramp-delay = <3090>;
                enable-active-high;
        };
 
-       vdd_hdmi: regulator@7 {
+       vdd_hdmi: regulator-vdd-hdmi {
                compatible = "regulator-fixed";
                regulator-name = "vdd-hdmi";
                regulator-enable-ramp-delay = <468>;
                enable-active-high;
        };
 
-       en_vdd_cpu_fixed: regulator@8 {
+       en_vdd_cpu_fixed: regulator-vdd-cpu-fixed {
                compatible = "regulator-fixed";
                regulator-name = "vdd-cpu-fixed";
                regulator-min-microvolt = <1000000>;
                regulator-max-microvolt = <1000000>;
        };
 
-       vdd_aux_3v3: regulator@9 {
+       vdd_aux_3v3: regulator-vdd-aux-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "aux-3v3";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
        };
 
-       vdd_snsr_pm: regulator@10 {
+       vdd_snsr_pm: regulator-vdd-snsr-pm {
                compatible = "regulator-fixed";
                regulator-name = "snsr_pm";
                regulator-min-microvolt = <3300000>;
                enable-active-high;
        };
 
-       vdd_usb_5v0: regulator@11 {
+       vdd_usb_5v0: regulator-vdd-usb-5v0 {
                compatible = "regulator-fixed";
                status = "disabled";
                regulator-name = "vdd-usb-5v0";
                enable-active-high;
        };
 
-       vdd_cdc_1v2_aud: regulator@101 {
+       vdd_cdc_1v2_aud: regulator-vdd-cdc-1v2-aud {
                compatible = "regulator-fixed";
                status = "disabled";
                regulator-name = "vdd_cdc_1v2_aud";
                enable-active-high;
        };
 
-       vdd_disp_3v0: regulator@12 {
+       vdd_disp_3v0: regulator-vdd-disp-3v0 {
                compatible = "regulator-fixed";
                regulator-name = "vdd-disp-3v0";
                regulator-enable-ramp-delay = <232>;
                enable-active-high;
        };
 
-       vdd_fan: regulator@13 {
+       vdd_fan: regulator-vdd-fan {
                compatible = "regulator-fixed";
                regulator-name = "vdd-fan";
                regulator-enable-ramp-delay = <284>;
                enable-active-high;
        };
 
-       usb_vbus1: regulator@14 {
+       usb_vbus1: regulator-usb-vbus1 {
                compatible = "regulator-fixed";
                regulator-name = "usb-vbus1";
                regulator-min-microvolt = <5000000>;
                gpio-open-drain;
        };
 
-       usb_vbus2: regulator@15 {
+       usb_vbus2: regulator-usb-vbus2 {
                compatible = "regulator-fixed";
                regulator-name = "usb-vbus2";
                regulator-min-microvolt = <5000000>;
                gpio-open-drain;
        };
 
-       vdd_3v3_eth: regulator@16 {
+       vdd_3v3_eth: regulator-vdd-3v3-eth {
                compatible = "regulator-fixed";
                regulator-name = "vdd-3v3-eth-a02";
                regulator-min-microvolt = <3300000>;
index 030f264..72c2dc3 100644 (file)
        pcie@1003000 {
                status = "okay";
 
-               avdd-pll-uerefe-supply = <&vdd_pex_1v05>;
                hvddio-pex-supply = <&vdd_1v8>;
                dvddio-pex-supply = <&vdd_pex_1v05>;
-               dvdd-pex-pll-supply = <&vdd_pex_1v05>;
-               hvdd-pex-pll-e-supply = <&vdd_1v8>;
                vddio-pex-ctl-supply = <&vdd_1v8>;
 
                pci@1,0 {
                                        regulator-min-microvolt = <1000000>;
                                        regulator-max-microvolt = <1170000>;
                                        regulator-enable-ramp-delay = <146>;
-                                       regulator-disable-ramp-delay = <4080>;
                                        regulator-ramp-delay = <27500>;
                                        regulator-ramp-delay-scale = <300>;
                                        regulator-always-on;
                                        regulator-min-microvolt = <1150000>;
                                        regulator-max-microvolt = <1150000>;
                                        regulator-enable-ramp-delay = <176>;
-                                       regulator-disable-ramp-delay = <145800>;
                                        regulator-ramp-delay = <27500>;
                                        regulator-ramp-delay-scale = <300>;
                                        regulator-always-on;
                                        regulator-min-microvolt = <1350000>;
                                        regulator-max-microvolt = <1350000>;
                                        regulator-enable-ramp-delay = <176>;
-                                       regulator-disable-ramp-delay = <32000>;
                                        regulator-ramp-delay = <27500>;
                                        regulator-ramp-delay-scale = <350>;
                                        regulator-always-on;
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <1800000>;
                                        regulator-enable-ramp-delay = <242>;
-                                       regulator-disable-ramp-delay = <118000>;
                                        regulator-ramp-delay = <27500>;
                                        regulator-ramp-delay-scale = <360>;
                                        regulator-always-on;
                                        regulator-min-microvolt = <1200000>;
                                        regulator-max-microvolt = <1200000>;
                                        regulator-enable-ramp-delay = <26>;
-                                       regulator-disable-ramp-delay = <626>;
                                        regulator-ramp-delay = <100000>;
                                        regulator-ramp-delay-scale = <200>;
                                        regulator-always-on;
                                        regulator-min-microvolt = <1050000>;
                                        regulator-max-microvolt = <1050000>;
                                        regulator-enable-ramp-delay = <22>;
-                                       regulator-disable-ramp-delay = <650>;
                                        regulator-ramp-delay = <100000>;
                                        regulator-ramp-delay-scale = <200>;
 
                                        regulator-min-microvolt = <1800000>;
                                        regulator-max-microvolt = <3300000>;
                                        regulator-enable-ramp-delay = <62>;
-                                       regulator-disable-ramp-delay = <650>;
                                        regulator-ramp-delay = <100000>;
                                        regulator-ramp-delay-scale = <200>;
 
                                        regulator-min-microvolt = <850000>;
                                        regulator-max-microvolt = <1100000>;
                                        regulator-enable-ramp-delay = <22>;
-                                       regulator-disable-ramp-delay = <610>;
                                        regulator-ramp-delay = <100000>;
                                        regulator-ramp-delay-scale = <200>;
                                        regulator-disable-active-discharge;
                                        regulator-min-microvolt = <1050000>;
                                        regulator-max-microvolt = <1050000>;
                                        regulator-enable-ramp-delay = <24>;
-                                       regulator-disable-ramp-delay = <2768>;
                                        regulator-ramp-delay = <100000>;
                                        regulator-ramp-delay-scale = <200>;
 
                                        regulator-min-microvolt = <1050000>;
                                        regulator-max-microvolt = <1050000>;
                                        regulator-enable-ramp-delay = <22>;
-                                       regulator-disable-ramp-delay = <1160>;
                                        regulator-ramp-delay = <100000>;
                                        regulator-ramp-delay-scale = <200>;
 
                avdd-usb-supply = <&vdd_3v3_sys>;
                dvddio-pex-supply = <&vdd_pex_1v05>;
                hvddio-pex-supply = <&vdd_1v8>;
-               /* these really belong to the XUSB pad controller */
-               avdd-pll-utmip-supply = <&vdd_1v8>;
-               avdd-pll-uerefe-supply = <&vdd_pex_1v05>;
-               dvdd-usb-ss-pll-supply = <&vdd_pex_1v05>;
-               hvdd-usb-ss-pll-e-supply = <&vdd_1v8>;
 
                status = "okay";
        };
                                        i2s4_port: port@1 {
                                                reg = <1>;
 
-                                               i2s4_dap_ep: endpoint@0 {
+                                               i2s4_dap_ep: endpoint {
                                                        dai-format = "i2s";
                                                        /* Placeholder for external Codec */
                                                };
                                        port@0 {
                                                reg = <0>;
 
-                                               dmic1_cif_ep: endpoint@0 {
+                                               dmic1_cif_ep: endpoint {
                                                        remote-endpoint = <&xbar_dmic1_ep>;
                                                };
                                        };
                                        dmic1_port: port@1 {
                                                reg = <1>;
 
-                                               dmic1_dap_ep: endpoint@0 {
+                                               dmic1_dap_ep: endpoint {
                                                        /* Placeholder for external Codec */
                                                };
                                        };
                                        port@0 {
                                                reg = <0>;
 
-                                               dmic2_cif_ep: endpoint@0 {
+                                               dmic2_cif_ep: endpoint {
                                                        remote-endpoint = <&xbar_dmic2_ep>;
                                                };
                                        };
                                        dmic2_port: port@1 {
                                                reg = <1>;
 
-                                               dmic2_dap_ep: endpoint@0 {
+                                               dmic2_dap_ep: endpoint {
                                                        /* Placeholder for external Codec */
                                                };
                                        };
                status = "okay";
 
                flash@0 {
-                       compatible = "spi-nor";
+                       compatible = "jedec,spi-nor";
                        reg = <0>;
                        spi-max-frequency = <104000000>;
                        spi-tx-bus-width = <2>;
                };
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        trips {
                                cpu_trip_critical: critical {
                                        temperature = <96500>;
                method = "smc";
        };
 
-       vdd_5v0_sys: regulator@0 {
+       vdd_5v0_sys: regulator-vdd-5v0-sys {
                compatible = "regulator-fixed";
 
                regulator-name = "VDD_5V0_SYS";
                regulator-boot-on;
        };
 
-       vdd_3v3_sys: regulator@1 {
+       vdd_3v3_sys: regulator-vdd-3v3-sys {
                compatible = "regulator-fixed";
 
                regulator-name = "VDD_3V3_SYS";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                regulator-enable-ramp-delay = <240>;
-               regulator-disable-ramp-delay = <11340>;
                regulator-always-on;
                regulator-boot-on;
 
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_3v3_sd: regulator@2 {
+       vdd_3v3_sd: regulator-vdd-3v3-sd {
                compatible = "regulator-fixed";
 
                regulator-name = "VDD_3V3_SD";
                vin-supply = <&vdd_3v3_sys>;
        };
 
-       vdd_hdmi: regulator@3 {
+       vdd_hdmi: regulator-vdd-hdmi-5v0 {
                compatible = "regulator-fixed";
 
                regulator-name = "VDD_HDMI_5V0";
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_hub_3v3: regulator@4 {
+       vdd_hub_3v3: regulator-vdd-hub-3v3 {
                compatible = "regulator-fixed";
 
                regulator-name = "VDD_HUB_3V3";
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_cpu: regulator@5 {
+       vdd_cpu: regulator-vdd-cpu {
                compatible = "regulator-fixed";
 
                regulator-name = "VDD_CPU";
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       vdd_gpu: regulator@6 {
+       vdd_gpu: regulator-vdd-gpu {
                compatible = "pwm-regulator";
                pwms = <&pwm 1 8000>;
 
                vin-supply = <&vdd_5v0_sys>;
        };
 
-       avdd_io_edp_1v05: regulator@7 {
+       avdd_io_edp_1v05: regulator-avdd-io-epd-1v05 {
                compatible = "regulator-fixed";
 
                regulator-name = "AVDD_IO_EDP_1V05";
                vin-supply = <&avdd_1v05_pll>;
        };
 
-       vdd_5v0_usb: regulator@8 {
+       vdd_5v0_usb: regulator-vdd-5v-usb {
                compatible = "regulator-fixed";
 
                regulator-name = "VDD_5V_USB";
index 131c064..a263d51 100644 (file)
                dvddio-pex-supply = <&avddio_1v05>;
                hvddio-pex-supply = <&pp1800>;
                avdd-usb-supply = <&pp3300>;
-               avdd-pll-utmip-supply = <&pp1800>;
-               avdd-pll-uerefe-supply = <&pp1050_avdd>;
-               dvdd-pex-pll-supply = <&avddio_1v05>;
-               hvdd-pex-pll-e-supply = <&pp1800>;
 
                status = "okay";
        };
                };
        };
 
-       clk32k_in: clock@0 {
+       clk32k_in: clock-32k {
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                #clock-cells = <0>;
                method = "smc";
        };
 
-       ppvar_sys: regulator@0 {
+       ppvar_sys: regulator-ppvar-sys {
                compatible = "regulator-fixed";
                regulator-name = "PPVAR_SYS";
                regulator-min-microvolt = <4400000>;
                regulator-always-on;
        };
 
-       pplcd_vdd: regulator@1 {
+       pplcd_vdd: regulator-pplcd-vdd {
                compatible = "regulator-fixed";
                regulator-name = "PPLCD_VDD";
                regulator-min-microvolt = <4400000>;
                regulator-boot-on;
        };
 
-       pp3000_always: regulator@2 {
+       pp3000_always: regulator-pp3000-always {
                compatible = "regulator-fixed";
                regulator-name = "PP3000_ALWAYS";
                regulator-min-microvolt = <3000000>;
                regulator-always-on;
        };
 
-       pp3300: regulator@3 {
+       pp3300: regulator-pp3000 {
                compatible = "regulator-fixed";
                regulator-name = "PP3300";
                regulator-min-microvolt = <3300000>;
                enable-active-high;
        };
 
-       pp5000: regulator@4 {
+       pp5000: regulator-pp5000 {
                compatible = "regulator-fixed";
                regulator-name = "PP5000";
                regulator-min-microvolt = <5000000>;
                regulator-always-on;
        };
 
-       pp1800_lcdio: regulator@5 {
+       pp1800_lcdio: regulator-pp1800-lcdio {
                compatible = "regulator-fixed";
                regulator-name = "PP1800_LCDIO";
                regulator-min-microvolt = <1800000>;
                regulator-boot-on;
        };
 
-       pp1800_cam: regulator@6 {
+       pp1800_cam: regulator-pp1800-cam {
                compatible = "regulator-fixed";
                regulator-name = "PP1800_CAM";
                regulator-min-microvolt = <1800000>;
                enable-active-high;
        };
 
-       usbc_vbus: regulator@7 {
+       usbc_vbus: regulator-usbc-vbus {
                compatible = "regulator-fixed";
                regulator-name = "USBC_VBUS";
                regulator-min-microvolt = <5000000>;
index ccdc0de..218a2b3 100644 (file)
@@ -93,8 +93,8 @@
                interrupt-names = "syncpt", "host1x";
                clocks = <&tegra_car TEGRA210_CLK_HOST1X>;
                clock-names = "host1x";
-               resets = <&tegra_car 28>;
-               reset-names = "host1x";
+               resets = <&tegra_car 28>, <&mc TEGRA210_MC_RESET_HC>;
+               reset-names = "host1x", "mc";
 
                #address-cells = <2>;
                #size-cells = <2>;
                tsec@54100000 {
                        compatible = "nvidia,tegra210-tsec";
                        reg = <0x0 0x54100000 0x0 0x00040000>;
+                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA210_CLK_TSEC>;
+                       clock-names = "tsec";
+                       resets = <&tegra_car 83>;
+                       reset-names = "tsec";
+                       status = "disabled";
                };
 
                dc@54200000 {
                tsec@54500000 {
                        compatible = "nvidia,tegra210-tsec";
                        reg = <0x0 0x54500000 0x0 0x00040000>;
+                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&tegra_car TEGRA210_CLK_TSECB>;
+                       clock-names = "tsec";
+                       resets = <&tegra_car 206>;
+                       reset-names = "tsec";
                        status = "disabled";
                };
 
                         <&tegra_car TEGRA210_CLK_XUSB_HOST_SRC>,
                         <&tegra_car TEGRA210_CLK_XUSB_FALCON_SRC>,
                         <&tegra_car TEGRA210_CLK_XUSB_SS>,
-                        <&tegra_car TEGRA210_CLK_XUSB_SS_SRC>,
                         <&tegra_car TEGRA210_CLK_XUSB_SS_DIV2>,
+                        <&tegra_car TEGRA210_CLK_XUSB_SS_SRC>,
                         <&tegra_car TEGRA210_CLK_XUSB_HS_SRC>,
                         <&tegra_car TEGRA210_CLK_XUSB_FS_SRC>,
                         <&tegra_car TEGRA210_CLK_PLL_U_480M>,
                         <&tegra_car TEGRA210_CLK_PLL_E>;
                clock-names = "xusb_host", "xusb_host_src",
                              "xusb_falcon_src", "xusb_ss",
-                             "xusb_ss_src", "xusb_ss_div2",
+                             "xusb_ss_div2", "xusb_ss_src",
                              "xusb_hs_src", "xusb_fs_src",
                              "pll_u_480m", "clk_m", "pll_e";
                resets = <&tegra_car 89>, <&tegra_car 156>,
        };
 
        thermal-zones {
-               cpu {
+               cpu-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <0>;
 
                        };
                };
 
-               mem {
+               mem-thermal {
                        polling-delay-passive = <0>;
                        polling-delay = <0>;
 
                        };
                };
 
-               gpu {
+               gpu-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <0>;
 
                        };
                };
 
-               pllx {
+               pllx-thermal {
                        polling-delay-passive = <0>;
                        polling-delay = <0>;
 
diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi b/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi
new file mode 100644 (file)
index 0000000..d95a542
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include "tegra234.dtsi"
+
+/ {
+       model = "NVIDIA Jetson AGX Orin";
+       compatible = "nvidia,p3701-0000", "nvidia,tegra234";
+
+       bus@0 {
+               mmc@3460000 {
+                       status = "okay";
+                       bus-width = <8>;
+                       non-removable;
+               };
+
+               rtc@c2a0000 {
+                       status = "okay";
+               };
+
+               pmc@c360000 {
+                       nvidia,invert-interrupt;
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts
new file mode 100644 (file)
index 0000000..efbbb87
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "tegra234-p3701-0000.dtsi"
+#include "tegra234-p3737-0000.dtsi"
+
+/ {
+       model = "NVIDIA Jetson AGX Orin Developer Kit";
+       compatible = "nvidia,p3737-0000+p3701-0000", "nvidia,p3701-0000", "nvidia,tegra234";
+
+       aliases {
+               mmc3 = "/bus@0/mmc@3460000";
+               serial0 = &tcu;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+               stdout-path = "serial0:115200n8";
+       };
+
+       serial {
+               status = "okay";
+       };
+};
diff --git a/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000.dtsi b/arch/arm64/boot/dts/nvidia/tegra234-p3737-0000.dtsi
new file mode 100644 (file)
index 0000000..a85993c
--- /dev/null
@@ -0,0 +1,5 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/ {
+       compatible = "nvidia,p3737-0000";
+};
index b5d9a55..5804acf 100644 (file)
@@ -26,7 +26,6 @@
                        status = "okay";
                        bus-width = <8>;
                        non-removable;
-                       only-1-8-v;
                };
 
                rtc@c2a0000 {
index f0efb3a..6b6f158 100644 (file)
@@ -3,6 +3,7 @@
 #include <dt-bindings/clock/tegra234-clock.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/mailbox/tegra186-hsp.h>
+#include <dt-bindings/memory/tegra234-mc.h>
 #include <dt-bindings/reset/tegra234-reset.h>
 
 / {
                        status = "okay";
                };
 
+               gpio: gpio@2200000 {
+                       compatible = "nvidia,tegra234-gpio";
+                       reg-names = "security", "gpio";
+                       reg = <0x02200000 0x10000>,
+                             <0x02210000 0x10000>;
+                       interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 291 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+               };
+
+               mc: memory-controller@2c00000 {
+                       compatible = "nvidia,tegra234-mc";
+                       reg = <0x02c00000 0x100000>,
+                             <0x02b80000 0x040000>,
+                             <0x01700000 0x100000>;
+                       interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
+                       #interconnect-cells = <1>;
+                       status = "okay";
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01700000 0x0 0x01700000 0x0 0x100000>,
+                                <0x02b80000 0x0 0x02b80000 0x0 0x040000>,
+                                <0x02c00000 0x0 0x02c00000 0x0 0x100000>;
+
+                       /*
+                        * Bit 39 of addresses passing through the memory
+                        * controller selects the XBAR format used when memory
+                        * is accessed. This is used to transparently access
+                        * memory in the XBAR format used by the discrete GPU
+                        * (bit 39 set) or Tegra (bit 39 clear).
+                        *
+                        * As a consequence, the operating system must ensure
+                        * that bit 39 is never used implicitly, for example
+                        * via an I/O virtual address mapping of an IOMMU. If
+                        * devices require access to the XBAR switch, their
+                        * drivers must set this bit explicitly.
+                        *
+                        * Limit the DMA range for memory clients to [38:0].
+                        */
+                       dma-ranges = <0x0 0x0 0x0 0x80 0x0>;
+
+                       emc: external-memory-controller@2c60000 {
+                               compatible = "nvidia,tegra234-emc";
+                               reg = <0x0 0x02c60000 0x0 0x90000>,
+                                     <0x0 0x01780000 0x0 0x80000>;
+                               interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&bpmp TEGRA234_CLK_EMC>;
+                               clock-names = "emc";
+                               status = "okay";
+
+                               #interconnect-cells = <0>;
+
+                               nvidia,bpmp = <&bpmp>;
+                       };
+               };
+
                uarta: serial@3100000 {
                        compatible = "nvidia,tegra234-uart", "nvidia,tegra20-uart";
                        reg = <0x03100000 0x10000>;
                        compatible = "nvidia,tegra234-sdhci", "nvidia,tegra186-sdhci";
                        reg = <0x03460000 0x20000>;
                        interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&bpmp TEGRA234_CLK_SDMMC4>;
-                       clock-names = "sdhci";
+                       clocks = <&bpmp TEGRA234_CLK_SDMMC4>,
+                                <&bpmp TEGRA234_CLK_SDMMC_LEGACY_TM>;
+                       clock-names = "sdhci", "tmclk";
+                       assigned-clocks = <&bpmp TEGRA234_CLK_SDMMC4>,
+                                         <&bpmp TEGRA234_CLK_PLLC4>;
+                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLC4>;
                        resets = <&bpmp TEGRA234_RESET_SDMMC4>;
                        reset-names = "sdhci";
-                       dma-coherent;
+                       interconnects = <&mc TEGRA234_MEMORY_CLIENT_SDMMCRAB &emc>,
+                                       <&mc TEGRA234_MEMORY_CLIENT_SDMMCWAB &emc>;
+                       interconnect-names = "dma-mem", "write";
+                       nvidia,pad-autocal-pull-up-offset-hs400 = <0x00>;
+                       nvidia,pad-autocal-pull-down-offset-hs400 = <0x00>;
+                       nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x0a>;
+                       nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x0a>;
+                       nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x0a>;
+                       nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x0a>;
+                       nvidia,default-tap = <0x8>;
+                       nvidia,default-trim = <0x14>;
+                       nvidia,dqs-trim = <40>;
+                       supports-cqe;
                        status = "disabled";
                };
 
                        reg = <0x0c2a0000 0x10000>;
                        interrupt-parent = <&pmc>;
                        interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&bpmp TEGRA234_CLK_CLK_32K>;
+                       clock-names = "rtc";
                        status = "disabled";
                };
 
+               gpio_aon: gpio@c2f0000 {
+                       compatible = "nvidia,tegra234-gpio-aon";
+                       reg-names = "security", "gpio";
+                       reg = <0x0c2f0000 0x1000>,
+                             <0x0c2f1000 0x1000>;
+                       interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+               };
+
                pmc: pmc@c360000 {
                        compatible = "nvidia,tegra234-pmc";
                        reg = <0x0c360000 0x10000>,
                };
        };
 
-       sysram@40000000 {
+       sram@40000000 {
                compatible = "nvidia,tegra234-sysram", "mmio-sram";
-               reg = <0x0 0x40000000 0x0 0x50000>;
+               reg = <0x0 0x40000000 0x0 0x80000>;
                #address-cells = <1>;
                #size-cells = <1>;
-               ranges = <0x0 0x0 0x40000000 0x50000>;
+               ranges = <0x0 0x0 0x40000000 0x80000>;
 
-               cpu_bpmp_tx: shmem@4e000 {
-                       reg = <0x4e000 0x1000>;
+               cpu_bpmp_tx: sram@70000 {
+                       reg = <0x70000 0x1000>;
                        label = "cpu-bpmp-tx";
                        pool;
                };
 
-               cpu_bpmp_rx: shmem@4f000 {
-                       reg = <0x4f000 0x1000>;
+               cpu_bpmp_rx: sram@71000 {
+                       reg = <0x71000 0x1000>;
                        label = "cpu-bpmp-rx";
                        pool;
                };
                compatible = "nvidia,tegra234-bpmp", "nvidia,tegra186-bpmp";
                mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB
                                    TEGRA_HSP_DB_MASTER_BPMP>;
-               shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
+               shmem = <&cpu_bpmp_tx>, <&cpu_bpmp_rx>;
                #clock-cells = <1>;
                #reset-cells = <1>;
                #power-domain-cells = <1>;
+               interconnects = <&mc TEGRA234_MEMORY_CLIENT_BPMPR &emc>,
+                               <&mc TEGRA234_MEMORY_CLIENT_BPMPW &emc>,
+                               <&mc TEGRA234_MEMORY_CLIENT_BPMPDMAR &emc>,
+                               <&mc TEGRA234_MEMORY_CLIENT_BPMPDMAW &emc>;
+               interconnect-names = "read", "write", "dma-mem", "dma-write";
 
                bpmp_i2c: i2c {
                        compatible = "nvidia,tegra186-bpmp-i2c";
                #address-cells = <1>;
                #size-cells = <0>;
 
-               cpu@0 {
+               cpu0_0: cpu@0 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x00000>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c0_0>;
+               };
+
+               cpu0_1: cpu@100 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x00100>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c0_1>;
+               };
+
+               cpu0_2: cpu@200 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x00200>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c0_2>;
+               };
+
+               cpu0_3: cpu@300 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x00300>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c0_3>;
+               };
+
+               cpu1_0: cpu@10000 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x10000>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c1_0>;
+               };
+
+               cpu1_1: cpu@10100 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x10100>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c1_1>;
+               };
+
+               cpu1_2: cpu@10200 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x10200>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c1_2>;
+               };
+
+               cpu1_3: cpu@10300 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x10300>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c1_3>;
+               };
+
+               cpu2_0: cpu@20000 {
+                       compatible = "arm,cortex-a78";
                        device_type = "cpu";
-                       reg = <0x000>;
+                       reg = <0x20000>;
 
                        enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c2_0>;
+               };
+
+               cpu2_1: cpu@20100 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x20100>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c2_1>;
+               };
+
+               cpu2_2: cpu@20200 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x20200>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c2_2>;
+               };
+
+               cpu2_3: cpu@20300 {
+                       compatible = "arm,cortex-a78";
+                       device_type = "cpu";
+                       reg = <0x20300>;
+
+                       enable-method = "psci";
+
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2c2_3>;
+               };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu0_0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu0_1>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu0_2>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu0_3>;
+                               };
+                       };
+
+                       cluster1 {
+                               core0 {
+                                       cpu = <&cpu1_0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu1_1>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu1_2>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu1_3>;
+                               };
+                       };
+
+                       cluster2 {
+                               core0 {
+                                       cpu = <&cpu2_0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu2_1>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu2_2>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu2_3>;
+                               };
+                       };
+               };
+
+               l2c0_0: l2-cache00 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c0>;
                };
+
+               l2c0_1: l2-cache01 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c0>;
+               };
+
+               l2c0_2: l2-cache02 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c0>;
+               };
+
+               l2c0_3: l2-cache03 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c0>;
+               };
+
+               l2c1_0: l2-cache10 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c1>;
+               };
+
+               l2c1_1: l2-cache11 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c1>;
+               };
+
+               l2c1_2: l2-cache12 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c1>;
+               };
+
+               l2c1_3: l2-cache13 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c1>;
+               };
+
+               l2c2_0: l2-cache20 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c2>;
+               };
+
+               l2c2_1: l2-cache21 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c2>;
+               };
+
+               l2c2_2: l2-cache22 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c2>;
+               };
+
+               l2c2_3: l2-cache23 {
+                       cache-size = <262144>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-unified;
+                       next-level-cache = <&l3c2>;
+               };
+
+               l3c0: l3-cache0 {
+                       cache-size = <2097152>;
+                       cache-line-size = <64>;
+                       cache-sets = <2048>;
+               };
+
+               l3c1: l3-cache1 {
+                       cache-size = <2097152>;
+                       cache-line-size = <64>;
+                       cache-sets = <2048>;
+               };
+
+               l3c2: l3-cache2 {
+                       cache-size = <2097152>;
+                       cache-line-size = <64>;
+                       cache-sets = <2048>;
+               };
+       };
+
+       pmu {
+               compatible = "arm,cortex-a78-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+               status = "okay";
        };
 
        psci {
                method = "smc";
        };
 
+       tcu: serial {
+               compatible = "nvidia,tegra234-tcu", "nvidia,tegra194-tcu";
+               mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_SM TEGRA_HSP_SM_RX(0)>,
+                        <&hsp_aon TEGRA_HSP_MBOX_TYPE_SM TEGRA_HSP_SM_TX(1)>;
+               mbox-names = "rx", "tx";
+               status = "disabled";
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
index 6b816eb..f723205 100644 (file)
@@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_QCOM)       += msm8916-longcheer-l8910.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-samsung-a3u-eur.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-samsung-a5u-eur.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += msm8916-samsung-j5.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-samsung-serranove.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-wingtech-wt88047.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8992-bullhead-rev-101.dtb
@@ -57,6 +58,7 @@ dtb-$(CONFIG_ARCH_QCOM)       += sc7180-trogdor-coachz-r3.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-coachz-r3-lte.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-homestar-r2.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-homestar-r3.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-homestar-r4.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-r0.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-r1.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-r1-kb.dtb
@@ -64,9 +66,14 @@ dtb-$(CONFIG_ARCH_QCOM)      += sc7180-trogdor-lazor-r1-lte.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-r3.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-r3-kb.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-r3-lte.dtb
-dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-limozeen.dtb
-dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-limozeen-nots.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-r9.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-r9-kb.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-r9-lte.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-limozeen-r4.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-limozeen-r9.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-limozeen-nots-r4.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-limozeen-nots-r5.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-lazor-limozeen-nots-r9.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-pompom-r1.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-pompom-r1-lte.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-pompom-r2.dtb
@@ -78,6 +85,7 @@ dtb-$(CONFIG_ARCH_QCOM)       += sc7180-trogdor-r1-lte.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7280-herobrine.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7280-idp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7280-idp2.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7280-crd.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm630-sony-xperia-ganges-kirin.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm630-sony-xperia-nile-discovery.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm630-sony-xperia-nile-pioneer.dtb
@@ -91,6 +99,9 @@ dtb-$(CONFIG_ARCH_QCOM)       += sdm845-db845c.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm845-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm845-oneplus-enchilada.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm845-oneplus-fajita.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sdm845-sony-xperia-tama-akari.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sdm845-sony-xperia-tama-akatsuki.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sdm845-sony-xperia-tama-apollo.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm845-xiaomi-beryllium.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm850-lenovo-yoga-c630.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm6125-sony-xperia-seine-pdx201.dtb
@@ -106,4 +117,8 @@ dtb-$(CONFIG_ARCH_QCOM)     += sm8250-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8250-sony-xperia-edo-pdx203.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8250-sony-xperia-edo-pdx206.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8350-hdk.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sm8350-microsoft-surface-duo2.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8350-mtp.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sm8350-sony-xperia-sagami-pdx214.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sm8350-sony-xperia-sagami-pdx215.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sm8450-qrd.dtb
index d01a512..f623db8 100644 (file)
 
 &adsp_pil {
        status = "okay";
+       firmware-name = "qcom/apq8096/adsp.mbn";
 };
 
 &blsp2_i2c1 {
 &hsusb_phy1 {
        status = "okay";
 
+       vdd-supply = <&vreg_l28a_0p925>;
        vdda-pll-supply = <&vreg_l12a_1p8>;
        vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
 };
 &hsusb_phy2 {
        status = "okay";
 
+       vdd-supply = <&vreg_l28a_0p925>;
        vdda-pll-supply = <&vreg_l12a_1p8>;
        vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
 };
 
 &pm8994_spmi_regulators {
        qcom,saw-reg = <&saw3>;
+       vdd_s11-supply = <&vph_pwr>;
+
        s9 {
                qcom,saw-slave;
        };
        };
        s11 {
                qcom,saw-leader;
+               regulator-name = "VDD_APCC";
                regulator-always-on;
                regulator-min-microvolt = <980000>;
                regulator-max-microvolt = <980000>;
 };
 
 &pmi8994_spmi_regulators {
+       vdd_s2-supply = <&vph_pwr>;
+
        vdd_gfx: s2@1700 {
                reg = <0x1700 0x100>;
                regulator-name = "VDD_GFX";
                vdd_l17_l29-supply = <&vph_pwr_bbyp>;
                vdd_l20_l21-supply = <&vph_pwr_bbyp>;
                vdd_l25-supply = <&vreg_s3a_1p3>;
-               vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>;
+               vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
 
                vreg_s3a_1p3: s3 {
                        regulator-name = "vreg_s3a_1p3";
index 933b561..66ec561 100644 (file)
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        #gpio-cells = <2>;
-                       gpio-ranges = <&tlmm 0 80>;
+                       gpio-ranges = <&tlmm 0 80>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
 
index 6c6a0f8..e6cc261 100644 (file)
                        };
                };
 
+               mdio: mdio@90000 {
+                       compatible = "qcom,ipq4019-mdio";
+                       reg = <0x00090000 0x64>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       clocks = <&gcc GCC_MDIO_AHB_CLK>;
+                       clock-names = "gcc_mdio_ahb_clk";
+
+                       status = "disabled";
+               };
+
                prng: rng@e3000 {
                        compatible = "qcom,prng-ee";
                        reg = <0x000e3000 0x1000>;
diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts b/arch/arm64/boot/dts/qcom/msm8916-samsung-j5.dts
new file mode 100644 (file)
index 0000000..687bea4
--- /dev/null
@@ -0,0 +1,209 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-pm8916.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "Samsung Galaxy J5 (2015)";
+       compatible = "samsung,j5", "qcom,msm8916";
+       chassis-type = "handset";
+
+       aliases {
+               serial0 = &blsp1_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       reserved-memory {
+               /* Additional memory used by Samsung firmware modifications */
+               tz-apps@85500000 {
+                       reg = <0x0 0x85500000 0x0 0xb00000>;
+                       no-map;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_default>;
+
+               label = "GPIO Buttons";
+
+               volume-up {
+                       label = "Volume Up";
+                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               home-key {
+                       lable = "Home Key";
+                       gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_HOMEPAGE>;
+               };
+       };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
+
+&pm8916_resin {
+       status = "okay";
+       linux,code = <KEY_VOLUMEDOWN>;
+};
+
+/* FIXME: Replace with SM5703 MUIC when driver is available */
+&pm8916_usbin {
+       status = "okay";
+};
+
+&pronto {
+       status = "okay";
+};
+
+&sdhc_1 {
+       status = "okay";
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
+       pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
+};
+
+&sdhc_2 {
+       status = "okay";
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
+       pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
+
+       cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
+};
+
+&usb {
+       status = "okay";
+       dr_mode = "peripheral";
+       extcon = <&pm8916_usbin>;
+};
+
+&usb_hs_phy {
+       extcon = <&pm8916_usbin>;
+       qcom,init-seq = /bits/ 8 <0x1 0x19 0x2 0x0b>;
+};
+
+&smd_rpm_regulators {
+       vdd_l1_l2_l3-supply = <&pm8916_s3>;
+       vdd_l4_l5_l6-supply = <&pm8916_s4>;
+       vdd_l7-supply = <&pm8916_s4>;
+
+       s3 {
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1300000>;
+       };
+
+       s4 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <2100000>;
+       };
+
+       l1 {
+               regulator-min-microvolt = <1225000>;
+               regulator-max-microvolt = <1225000>;
+       };
+
+       l2 {
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
+
+       l4 {
+               regulator-min-microvolt = <2050000>;
+               regulator-max-microvolt = <2050000>;
+       };
+
+       l5 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       l6 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       l7 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       l8 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2900000>;
+       };
+
+       l9 {
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       l10 {
+               regulator-min-microvolt = <2700000>;
+               regulator-max-microvolt = <2800000>;
+       };
+
+       l11 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <2950000>;
+               regulator-allow-set-load;
+               regulator-system-load = <200000>;
+       };
+
+       l12 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <2950000>;
+       };
+
+       l13 {
+               regulator-min-microvolt = <3075000>;
+               regulator-max-microvolt = <3075000>;
+       };
+
+       l14 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       l15 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       l16 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       l17 {
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+       };
+
+       l18 {
+               regulator-min-microvolt = <2700000>;
+               regulator-max-microvolt = <2700000>;
+       };
+};
+
+&msmgpio {
+       gpio_keys_default: gpio-keys-default {
+               pins = "gpio107", "gpio109";
+               function = "gpio";
+
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+};
index a78f87a..58dfbff 100644 (file)
@@ -23,6 +23,7 @@
 / {
        model = "Samsung Galaxy S4 Mini Value Edition";
        compatible = "samsung,serranove", "qcom,msm8916";
+       chassis-type = "handset";
 
        aliases {
                serial0 = &blsp1_uart2;
index c1c42f2..41897eb 100644 (file)
@@ -19,8 +19,8 @@
        #size-cells = <2>;
 
        aliases {
-               sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
-               sdhc2 = &sdhc_2; /* SDC2 SD card slot */
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_2; /* SDC2 SD card slot */
        };
 
        chosen { };
                        reg = <0x00060000 0x8000>;
                };
 
+               sram@290000 {
+                       compatible = "qcom,msm8916-rpm-stats";
+                       reg = <0x00290000 0x10000>;
+               };
+
                bimc: interconnect@400000 {
                        compatible = "qcom,msm8916-bimc";
                        reg = <0x00400000 0x62000>;
index 69fcb6b..84558ab 100644 (file)
@@ -42,7 +42,6 @@
 
        gpio_keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
                autorepeat;
index 3a3790a..cc038f9 100644 (file)
@@ -62,7 +62,6 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
                autorepeat;
 
                volupkey {
index 48de66b..dde7ed1 100644 (file)
@@ -29,7 +29,6 @@
 
        gpio_keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
                autorepeat;
                vdd_l17_l29-supply = <&pmi8994_bby>;
                vdd_l20_l21-supply = <&pmi8994_bby>;
                vdd_l25-supply = <&pm8994_s3>;
-               vdd_lvs1_lvs2-supply = <&pm8994_s4>;
+               vdd_lvs1_2-supply = <&pm8994_s4>;
 
                /* S1, S2, S6 and S12 are managed by RPMPD */
 
index ff7f39d..3bb50ce 100644 (file)
 &hsusb_phy1 {
        status = "okay";
 
+       vdd-supply = <&pm8994_l28>;
        vdda-pll-supply = <&pm8994_l12>;
        vdda-phy-dpdm-supply = <&pm8994_l24>;
 };
        };
 };
 
-&pmi8994_spmi_regulators {
+&pm8994_spmi_regulators {
        qcom,saw-reg = <&saw3>;
 
-       vdd_gfx:
-       pmi8994_s2: s2 {
-               /* Pinned to a high value for now to avoid random crashes. */
-               regulator-min-microvolt = <1015000>;
-               regulator-max-microvolt = <1015000>;
-               regulator-name = "vdd_gfx";
-               regulator-always-on;
-       };
-
-       pmi8994_s9: s9 {
+       pm8994_s9: s9 {
                qcom,saw-slave;
        };
 
-       pmi8994_s10: s10 {
+       pm8994_s10: s10 {
                qcom,saw-slave;
        };
 
-       pmi8994_s11: s11 {
+       pm8994_s11: s11 {
                qcom,saw-leader;
+               regulator-name = "vdd_apcc";
                regulator-always-on;
                regulator-min-microvolt = <470000>;
                regulator-max-microvolt = <1140000>;
        };
 };
 
+&pmi8994_spmi_regulators {
+       vdd_gfx:
+       pmi8994_s2: s2 {
+               /* Pinned to a high value for now to avoid random crashes. */
+               regulator-min-microvolt = <1015000>;
+               regulator-max-microvolt = <1015000>;
+               regulator-name = "vdd_gfx";
+               regulator-always-on;
+       };
+};
+
 &pmi8994_wled {
        status = "okay";
        default-brightness = <512>;
index 01e573f..7a9fcbe 100644 (file)
        status = "okay";
        label = "TYPEC_I2C";
 
-       typec: tusb320@47 {
-               compatible = "ti,tusb320";
+       typec: tusb320l@47 {
+               compatible = "ti,tusb320l";
                reg = <0x47>;
                interrupt-parent = <&tlmm>;
                interrupts = <63 IRQ_TYPE_EDGE_RISING>;
index e5b8402..27a45dd 100644 (file)
 };
 
 &blsp2_i2c6 {
+       touchkey: touchkey@28 {
+               compatible = "cypress,sf3155";
+               reg = <0x28>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <77 IRQ_TYPE_EDGE_FALLING>;
+               avdd-supply = <&vreg_l6a_1p8>;
+               vdd-supply = <&vdd_3v2_tp>;
+               linux,keycodes = <KEY_BACK KEY_MENU>;
+
+               pinctrl-names = "default", "sleep";
+               pinctrl-0 = <&touchkey_default>;
+               pinctrl-1 = <&touchkey_sleep>;
+       };
+
        touchscreen: atmel-mxt-ts@4a {
                compatible = "atmel,maxtouch";
                reg = <0x4a>;
                "RFFE1_DATA",           /* GPIO_148 */
                "RFFE1_CLK";            /* GPIO_149 */
 
+       touchkey_default: touchkey_default {
+               pins = "gpio77";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-pull-up;
+       };
+
+       touchkey_sleep: touchkey_sleep {
+               pins = "gpio77";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        touchscreen_default: touchscreen_default {
                pins = "gpio75", "gpio125";
                function = "gpio";
index bccc2d0..91bc974 100644 (file)
 
                gpu: gpu@b00000 {
                        compatible = "qcom,adreno-530.2", "qcom,adreno";
-                       #stream-id-cells = <16>;
 
                        reg = <0x00b00000 0x3f000>;
                        reg-names = "kgsl_3d0_reg_memory";
                        nvmem-cells = <&speedbin_efuse>;
                        nvmem-cell-names = "speed_bin";
 
-                       qcom,gpu-quirk-two-pass-use-wfi;
-                       qcom,gpu-quirk-fault-detect-mask;
-
                        operating-points-v2 = <&gpu_opp_table>;
 
                        status = "disabled";
index 3f60575..b3b3525 100644 (file)
 &qusb2phy {
        status = "okay";
 
+       vdd-supply = <&vreg_l1a_0p875>;
        vdda-pll-supply = <&vreg_l12a_1p8>;
        vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
 };
index 3d495ce..dc5b9b2 100644 (file)
@@ -29,7 +29,6 @@
 
        gpio-hall-sensors {
                compatible = "gpio-keys";
-               input-name = "hall-sensors";
                label = "Hall sensors";
                pinctrl-names = "default";
                pinctrl-0 = <&hall_sensor1_default>;
@@ -46,7 +45,6 @@
 
        gpio-kb-extra-keys {
                compatible = "gpio-keys";
-               input-name = "extra-kb-keys";
                label = "Keyboard extra keys";
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_kb_pins_extra>;
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "side-buttons";
                label = "Side buttons";
                #address-cells = <1>;
                #size-cells = <0>;
index 6541880..9823d48 100644 (file)
 &qusb2phy {
        status = "okay";
 
+       vdd-supply = <&vreg_l1a_0p875>;
        vdda-pll-supply = <&vreg_l12a_1p8>;
        vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
 };
index 91e3912..47488a1 100644 (file)
@@ -93,7 +93,6 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
                label = "Side buttons";
                pinctrl-names = "default";
                pinctrl-0 = <&vol_down_pin_a>, <&cam_focus_pin_a>,
 
        gpio-hall-sensor {
                compatible = "gpio-keys";
-               input-name = "hall-sensors";
                label = "Hall sensors";
                pinctrl-names = "default";
                pinctrl-0 = <&hall_sensor0_default>;
index 408f265..f273bc1 100644 (file)
                        iommus = <&adreno_smmu 0>;
                        operating-points-v2 = <&gpu_opp_table>;
                        power-domains = <&rpmpd MSM8998_VDDMX>;
-                       #stream-id-cells = <16>;
                        status = "disabled";
 
                        gpu_opp_table: opp-table {
index d0ef8a1..c482663 100644 (file)
                        mode-bootloader = <0x2>;
                        mode-recovery = <0x1>;
 
-                       pwrkey {
+                       pon_pwrkey: pwrkey {
                                compatible = "qcom,pm8941-pwrkey";
                                interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
                                debounce = <15625>;
                                bias-pull-up;
                                linux,code = <KEY_POWER>;
+
+                               status = "disabled";
                        };
 
+                       pon_resin: resin {
+                               compatible = "qcom,pm8941-resin";
+                               interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
+                               debounce = <15625>;
+                               bias-pull-up;
+
+                               status = "disabled";
+                       };
                };
 
                pm660_temp: temp-alarm@2400 {
index 6f5bb6b..d09f295 100644 (file)
                        };
                };
 
+               pm8998_adc_tm: adc-tm@3400 {
+                       compatible = "qcom,spmi-adc-tm-hc";
+                       reg = <0x3400>;
+                       interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
+                       #thermal-sensor-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                rtc@6000 {
                        compatible = "qcom,pm8941-rtc";
                        reg = <0x6000>, <0x6100>;
index 769f972..0f94c46 100644 (file)
                        compatible = "qcom,pm8998-pon";
                        reg = <0x1300>;
 
-                       pwrkey {
+                       pon_pwrkey: pwrkey {
                                compatible = "qcom,pmk8350-pwrkey";
                                interrupts = <0x0 0x13 0x7 IRQ_TYPE_EDGE_BOTH>;
                                linux,code = <KEY_POWER>;
+                               status = "disabled";
                        };
 
-                       resin {
+                       pon_resin: resin {
                                compatible = "qcom,pmk8350-resin";
                                interrupts = <0x0 0x13 0x6 IRQ_TYPE_EDGE_BOTH>;
-                               linux,code = <KEY_VOLUMEDOWN>;
+                               status = "disabled";
                        };
                };
 
index db6c2da..7003298 100644 (file)
@@ -7,6 +7,8 @@
 
 /dts-v1/;
 
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-homestar.dtsi"
 
 / {
index 3fd8aa5..e92e2e9 100644 (file)
@@ -7,9 +7,11 @@
 
 /dts-v1/;
 
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-homestar.dtsi"
 
 / {
-       model = "Google Homestar (rev3+)";
-       compatible = "google,homestar", "qcom,sc7180";
+       model = "Google Homestar (rev3)";
+       compatible = "google,homestar-rev3", "qcom,sc7180";
 };
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r4.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r4.dts
new file mode 100644 (file)
index 0000000..0de0c97
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Homestar board device tree source
+ *
+ * Copyright 2021 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-parade-ps8640.dtsi"
+#include "sc7180-trogdor-homestar.dtsi"
+
+/ {
+       model = "Google Homestar (rev4+)";
+       compatible = "google,homestar", "qcom,sc7180";
+};
+
+&pp3300_brij_ps8640 {
+       regulator-enable-ramp-delay = <4000>;
+};
index 4ab890b..f32369a 100644 (file)
@@ -5,13 +5,10 @@
  * Copyright 2021 Google LLC.
  */
 
-#include "sc7180.dtsi"
-
 ap_ec_spi: &spi6 {};
 ap_h1_spi: &spi0 {};
 
 #include "sc7180-trogdor.dtsi"
-#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 
 / {
        /* BOARD-SPECIFIC TOP LEVEL NODES */
index 6ebde08..850776c 100644 (file)
@@ -5,7 +5,7 @@
  * Copyright 2020 Google LLC.
  */
 
-#include "sc7180-trogdor-lazor-limozeen-nots.dts"
+#include "sc7180-trogdor-lazor-limozeen-nots-r5.dts"
 
 / {
        model = "Google Lazor Limozeen without Touchscreen (rev4)";
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dts
new file mode 100644 (file)
index 0000000..f360ff2
--- /dev/null
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Lazor Limozeen board device tree source
+ *
+ * Copyright 2021 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
+#include "sc7180-trogdor-lazor.dtsi"
+#include "sc7180-trogdor-lte-sku.dtsi"
+
+/ {
+       model = "Google Lazor Limozeen without Touchscreen (rev5 - rev8)";
+       /* No sku5 post-rev5 */
+       compatible = "google,lazor-rev5-sku5", "google,lazor-rev5-sku6",
+               "google,lazor-rev6-sku6", "google,lazor-rev7-sku6",
+               "google,lazor-rev8-sku6", "qcom,sc7180";
+};
+
+/delete-node/&ap_ts;
+
+&panel {
+       compatible = "innolux,n116bca-ea1", "innolux,n116bge";
+};
+
+&sdhc_2 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dts
new file mode 100644 (file)
index 0000000..4e35aec
--- /dev/null
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Lazor Limozeen board device tree source
+ *
+ * Copyright 2021 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-parade-ps8640.dtsi"
+#include "sc7180-trogdor-lazor.dtsi"
+#include "sc7180-trogdor-lte-sku.dtsi"
+
+/ {
+       model = "Google Lazor Limozeen without Touchscreen (rev9+)";
+       compatible = "google,lazor-sku6", "qcom,sc7180";
+};
+
+/delete-node/&ap_ts;
+
+&panel {
+       compatible = "innolux,n116bca-ea1", "innolux,n116bge";
+};
+
+&sdhc_2 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots.dts
deleted file mode 100644 (file)
index 0456c7e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Google Lazor Limozeen board device tree source
- *
- * Copyright 2020 Google LLC.
- */
-
-/dts-v1/;
-
-#include "sc7180-trogdor-lazor.dtsi"
-#include "sc7180-trogdor-lte-sku.dtsi"
-
-/ {
-       model = "Google Lazor Limozeen without Touchscreen";
-       compatible = "google,lazor-sku6", "google,lazor-sku5", "qcom,sc7180";
-};
-
-/delete-node/&ap_ts;
-
-&panel {
-       compatible = "innolux,n116bca-ea1", "innolux,n116bge";
-};
-
-&sdhc_2 {
-       status = "okay";
-};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r4.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r4.dts
new file mode 100644 (file)
index 0000000..42b4bbc
--- /dev/null
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Lazor Limozeen board device tree source
+ *
+ * Copyright 2021 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
+#include "sc7180-trogdor-lazor.dtsi"
+#include "sc7180-trogdor-lte-sku.dtsi"
+
+/ {
+       model = "Google Lazor Limozeen (rev4 - rev8)";
+       compatible = "google,lazor-rev4-sku4", "google,lazor-rev5-sku4",
+               "google,lazor-rev6-sku4", "google,lazor-rev7-sku4",
+               "google,lazor-rev8-sku4", "qcom,sc7180";
+};
+
+/delete-node/&ap_ts;
+
+&ap_ts_pen_1v8 {
+       ap_ts: touchscreen@10 {
+               compatible = "elan,ekth3500";
+               reg = <0x10>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_int_l>, <&ts_reset_l>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
+
+               vcc33-supply = <&pp3300_ts>;
+
+               reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&panel {
+       compatible = "auo,b116xa01";
+};
+
+&sdhc_2 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r9.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r9.dts
new file mode 100644 (file)
index 0000000..dc47842
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Lazor Limozeen board device tree source
+ *
+ * Copyright 2021 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-parade-ps8640.dtsi"
+#include "sc7180-trogdor-lazor.dtsi"
+#include "sc7180-trogdor-lte-sku.dtsi"
+
+/ {
+       model = "Google Lazor Limozeen (rev9+)";
+       compatible = "google,lazor-sku4", "qcom,sc7180";
+};
+
+/delete-node/&ap_ts;
+
+&ap_ts_pen_1v8 {
+       ap_ts: touchscreen@10 {
+               compatible = "elan,ekth3500";
+               reg = <0x10>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_int_l>, <&ts_reset_l>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
+
+               vcc33-supply = <&pp3300_ts>;
+
+               reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&panel {
+       compatible = "auo,b116xa01";
+};
+
+&sdhc_2 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen.dts
deleted file mode 100644 (file)
index e6ad6da..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Google Lazor Limozeen board device tree source
- *
- * Copyright 2020 Google LLC.
- */
-
-/dts-v1/;
-
-#include "sc7180-trogdor-lazor.dtsi"
-#include "sc7180-trogdor-lte-sku.dtsi"
-
-/ {
-       model = "Google Lazor Limozeen";
-       compatible = "google,lazor-sku4", "qcom,sc7180";
-};
-
-/delete-node/&ap_ts;
-
-&ap_ts_pen_1v8 {
-       ap_ts: touchscreen@10 {
-               compatible = "elan,ekth3500";
-               reg = <0x10>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&ts_int_l>, <&ts_reset_l>;
-
-               interrupt-parent = <&tlmm>;
-               interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
-
-               vcc33-supply = <&pp3300_ts>;
-
-               reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
-       };
-};
-
-&panel {
-       compatible = "auo,b116xa01";
-};
-
-&sdhc_2 {
-       status = "okay";
-};
index 30e3e76..b142006 100644 (file)
@@ -7,6 +7,8 @@
 
 /dts-v1/;
 
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 
 / {
index c2ef063..5974079 100644 (file)
@@ -7,6 +7,8 @@
 
 /dts-v1/;
 
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 
 / {
index dcb41af..18ef9da 100644 (file)
@@ -7,12 +7,17 @@
 
 /dts-v1/;
 
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-lite.dtsi"
 
 / {
-       model = "Google Lazor (rev3+) with KB Backlight";
-       compatible = "google,lazor-sku2", "qcom,sc7180";
+       model = "Google Lazor (rev3 - 8) with KB Backlight";
+       compatible = "google,lazor-rev3-sku2", "google,lazor-rev4-sku2",
+               "google,lazor-rev5-sku2", "google,lazor-rev6-sku2",
+               "google,lazor-rev7-sku2", "google,lazor-rev8-sku2",
+               "qcom,sc7180";
 };
 
 &keyboard_backlight {
index be44900..c5c9fef 100644 (file)
@@ -7,12 +7,17 @@
 
 /dts-v1/;
 
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-trogdor-lte-sku.dtsi"
 
 / {
-       model = "Google Lazor (rev3+) with LTE";
-       compatible = "google,lazor-sku0", "qcom,sc7180";
+       model = "Google Lazor (rev3 - 8) with LTE";
+       compatible = "google,lazor-rev3-sku0", "google,lazor-rev4-sku0",
+               "google,lazor-rev5-sku0", "google,lazor-rev6-sku0",
+               "google,lazor-rev7-sku0", "google,lazor-rev8-sku0",
+               "qcom,sc7180";
 };
 
 &ap_sar_sensor {
index b474df4..7adcedb 100644 (file)
@@ -7,10 +7,14 @@
 
 /dts-v1/;
 
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-lite.dtsi"
 
 / {
-       model = "Google Lazor (rev3+)";
-       compatible = "google,lazor", "qcom,sc7180";
+       model = "Google Lazor (rev3 - 8)";
+       compatible = "google,lazor-rev3", "google,lazor-rev4",
+               "google,lazor-rev5", "google,lazor-rev6", "google,lazor-rev7",
+               "google,lazor-rev8", "qcom,sc7180";
 };
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-kb.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-kb.dts
new file mode 100644 (file)
index 0000000..7f5c015
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Lazor board device tree source
+ *
+ * Copyright 2020 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-parade-ps8640.dtsi"
+#include "sc7180-trogdor-lazor.dtsi"
+#include "sc7180-lite.dtsi"
+
+/ {
+       model = "Google Lazor (rev9+) with KB Backlight";
+       compatible = "google,lazor-sku2", "qcom,sc7180";
+};
+
+&keyboard_backlight {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dts
new file mode 100644 (file)
index 0000000..344b57c
--- /dev/null
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Lazor board device tree source
+ *
+ * Copyright 2021 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-parade-ps8640.dtsi"
+#include "sc7180-trogdor-lazor.dtsi"
+#include "sc7180-trogdor-lte-sku.dtsi"
+
+/ {
+       model = "Google Lazor (rev9+) with LTE";
+       compatible = "google,lazor-sku0", "qcom,sc7180";
+};
+
+&ap_sar_sensor {
+       status = "okay";
+};
+
+&ap_sar_sensor_i2c {
+       status = "okay";
+};
+
+&keyboard_backlight {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9.dts b/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9.dts
new file mode 100644 (file)
index 0000000..83f6a4e
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Lazor board device tree source
+ *
+ * Copyright 2021 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7180.dtsi"
+#include "sc7180-trogdor-parade-ps8640.dtsi"
+#include "sc7180-trogdor-lazor.dtsi"
+#include "sc7180-lite.dtsi"
+
+/ {
+       model = "Google Lazor (rev9+)";
+       compatible = "google,lazor", "qcom,sc7180";
+};
index 8b79fbb..69666f9 100644 (file)
@@ -5,13 +5,10 @@
  * Copyright 2020 Google LLC.
  */
 
-#include "sc7180.dtsi"
-
 ap_ec_spi: &spi6 {};
 ap_h1_spi: &spi0 {};
 
 #include "sc7180-trogdor.dtsi"
-#include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 
 &ap_sar_sensor {
        semtech,cs0-ground;
index a3d6954..6a84fba 100644 (file)
@@ -5,6 +5,8 @@
  * Copyright 2021 Google LLC.
  */
 
+#include <dt-bindings/gpio/gpio.h>
+
 / {
        pp3300_brij_ps8640: pp3300-brij-ps8640 {
                compatible = "regulator-fixed";
index 97d5e45..f869e6a 100644 (file)
@@ -5,9 +5,10 @@
  * Copyright 2021 Google LLC.
  */
 
+#include <dt-bindings/gpio/gpio.h>
+
 &dsi0_out {
        remote-endpoint = <&sn65dsi86_in>;
-       data-lanes = <0 1 2 3>;
 };
 
 edp_brij_i2c: &i2c2 {
index d4f4441..bd5909f 100644 (file)
        vdda-supply = <&vdda_mipi_dsi0_1p2>;
 };
 
+&dsi0_out {
+       data-lanes = <0 1 2 3>;
+};
+
 &dsi_phy {
        status = "okay";
        vdds-supply = <&vdda_mipi_dsi0_pll>;
index faf8b80..2151cd8 100644 (file)
 
                gpu: gpu@5000000 {
                        compatible = "qcom,adreno-618.0", "qcom,adreno";
-                       #stream-id-cells = <16>;
                        reg = <0 0x05000000 0 0x40000>, <0 0x0509e000 0 0x1000>,
                                <0 0x05061000 0 0x800>;
                        reg-names = "kgsl_3d0_reg_memory", "cx_mem", "cx_dbgc";
diff --git a/arch/arm64/boot/dts/qcom/sc7280-crd.dts b/arch/arm64/boot/dts/qcom/sc7280-crd.dts
new file mode 100644 (file)
index 0000000..cd2755c
--- /dev/null
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * sc7280 CRD board device tree source
+ *
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "sc7280-idp.dtsi"
+#include "sc7280-idp-ec-h1.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. sc7280 CRD platform";
+       compatible = "qcom,sc7280-crd", "google,hoglin", "qcom,sc7280";
+
+       aliases {
+               serial0 = &uart5;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+ap_tp_i2c: &i2c0 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       trackpad: trackpad@15 {
+               compatible = "hid-over-i2c";
+               reg = <0x15>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&tp_int_odl>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
+
+               post-power-on-delay-ms = <20>;
+               hid-descr-addr = <0x0001>;
+               vdd-supply = <&vreg_l18b_1p8>;
+
+               wakeup-source;
+       };
+};
+
+ap_ts_pen_1v8: &i2c13 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       ap_ts: touchscreen@5c {
+               compatible = "hid-over-i2c";
+               reg = <0x5c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_int_l>, <&ts_reset_l>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <55 IRQ_TYPE_LEVEL_LOW>;
+
+               post-power-on-delay-ms = <500>;
+               hid-descr-addr = <0x0000>;
+
+               vdd-supply = <&vreg_l19b_1p8>;
+       };
+};
+
+&nvme_3v3_regulator {
+       gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>;
+};
+
+&nvme_pwren {
+       pins = "gpio51";
+};
+
+&tlmm {
+       tp_int_odl: tp-int-odl {
+               pins = "gpio7";
+               function = "gpio";
+               bias-disable;
+       };
+
+       ts_int_l: ts-int-l {
+               pins = "gpio55";
+               function = "gpio";
+               bias-pull-up;
+       };
+
+       ts_reset_l: ts-reset-l {
+               pins = "gpio54";
+               function = "gpio";
+               bias-disable;
+       };
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7280-idp-ec-h1.dtsi b/arch/arm64/boot/dts/qcom/sc7280-idp-ec-h1.dtsi
new file mode 100644 (file)
index 0000000..0896a61
--- /dev/null
@@ -0,0 +1,105 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * sc7280 EC/H1 over SPI (common between IDP2 and CRD)
+ *
+ * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+ap_ec_spi: &spi10 {
+       status = "okay";
+
+       pinctrl-0 = <&qup_spi10_data_clk>, <&qup_spi10_cs_gpio_init_high>, <&qup_spi10_cs_gpio>;
+       cs-gpios = <&tlmm 43 GPIO_ACTIVE_LOW>;
+
+       cros_ec: ec@0 {
+               compatible = "google,cros-ec-spi";
+               reg = <0>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ap_ec_int_l>;
+               spi-max-frequency = <3000000>;
+
+               cros_ec_pwm: ec-pwm {
+                       compatible = "google,cros-ec-pwm";
+                       #pwm-cells = <1>;
+               };
+
+               i2c_tunnel: i2c-tunnel {
+                       compatible = "google,cros-ec-i2c-tunnel";
+                       google,remote-bus = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               typec {
+                       compatible = "google,cros-ec-typec";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       usb_c0: connector@0 {
+                               compatible = "usb-c-connector";
+                               reg = <0>;
+                               label = "left";
+                               power-role = "dual";
+                               data-role = "host";
+                               try-power-role = "source";
+                       };
+
+                       usb_c1: connector@1 {
+                               compatible = "usb-c-connector";
+                               reg = <1>;
+                               label = "right";
+                               power-role = "dual";
+                               data-role = "host";
+                               try-power-role = "source";
+                       };
+               };
+       };
+};
+
+#include <arm/cros-ec-keyboard.dtsi>
+#include <arm/cros-ec-sbs.dtsi>
+
+ap_h1_spi: &spi14 {
+       status = "okay";
+
+       pinctrl-0 = <&qup_spi14_data_clk>, <&qup_spi14_cs_gpio_init_high>, <&qup_spi14_cs_gpio>;
+       cs-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>;
+
+       cr50: tpm@0 {
+               compatible = "google,cr50";
+               reg = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&h1_ap_int_odl>;
+               spi-max-frequency = <800000>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <104 IRQ_TYPE_EDGE_RISING>;
+       };
+};
+
+&tlmm {
+       ap_ec_int_l: ap-ec-int-l {
+               pins = "gpio18";
+               function = "gpio";
+               input-enable;
+               bias-pull-up;
+       };
+
+       h1_ap_int_odl: h1-ap-int-odl {
+               pins = "gpio104";
+               function = "gpio";
+               input-enable;
+               bias-pull-up;
+       };
+
+       qup_spi10_cs_gpio_init_high: qup-spi10-cs-gpio-init-high {
+               pins = "gpio43";
+               output-high;
+       };
+
+       qup_spi14_cs_gpio_init_high: qup-spi14-cs-gpio-init-high {
+               pins = "gpio59";
+               output-high;
+       };
+};
index 3ae9969..0382c77 100644 (file)
@@ -8,6 +8,7 @@
 /dts-v1/;
 
 #include "sc7280-idp.dtsi"
+#include "sc7280-idp-ec-h1.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. sc7280 IDP SKU2 platform";
index 365a2e0..937c2e0 100644 (file)
                        no-map;
                };
 
+               video_mem: memory@8b200000 {
+                       reg = <0x0 0x8b200000 0x0 0x500000>;
+                       no-map;
+               };
+
                ipa_fw_mem: memory@8b700000 {
                        reg = <0 0x8b700000 0 0x10000>;
                        no-map;
                        reg = <0 0x00100000 0 0x1f0000>;
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
                                 <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>,
-                                <0>, <0>, <0>, <0>, <0>, <0>;
+                                <0>, <&pcie1_lane 0>,
+                                <0>, <0>, <0>, <0>;
                        clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk",
-                                     "pcie_0_pipe_clk", "pcie_1_pipe-clk",
+                                     "pcie_0_pipe_clk", "pcie_1_pipe_clk",
                                      "ufs_phy_rx_symbol_0_clk", "ufs_phy_rx_symbol_1_clk",
                                      "ufs_phy_tx_symbol_0_clk",
                                      "usb3_phy_wrapper_gcc_usb30_pipe_clk";
                        interrupt-names = "msi";
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 0x7>;
-                       interrupt-map = <0 0 0 1 &intc 0 434 IRQ_TYPE_LEVEL_HIGH>,
-                                       <0 0 0 2 &intc 0 435 IRQ_TYPE_LEVEL_HIGH>,
-                                       <0 0 0 3 &intc 0 438 IRQ_TYPE_LEVEL_HIGH>,
-                                       <0 0 0 4 &intc 0 439 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-map = <0 0 0 1 &intc 0 0 0 434 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &intc 0 0 0 435 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &intc 0 0 0 438 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &intc 0 0 0 439 IRQ_TYPE_LEVEL_HIGH>;
 
                        clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
                                 <&gcc GCC_PCIE_1_PIPE_CLK_SRC>,
 
                gpu: gpu@3d00000 {
                        compatible = "qcom,adreno-635.0", "qcom,adreno";
-                       #stream-id-cells = <16>;
                        reg = <0 0x03d00000 0 0x40000>,
                              <0 0x03d9e000 0 0x1000>,
                              <0 0x03d61000 0 0x800>;
                        };
                };
 
+               venus: video-codec@aa00000 {
+                       compatible = "qcom,sc7280-venus";
+                       reg = <0 0x0aa00000 0 0xd0600>;
+                       interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>,
+                                <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>,
+                                <&videocc VIDEO_CC_VENUS_AHB_CLK>,
+                                <&videocc VIDEO_CC_MVS0_CORE_CLK>,
+                                <&videocc VIDEO_CC_MVS0_AXI_CLK>;
+                       clock-names = "core", "bus", "iface",
+                                     "vcodec_core", "vcodec_bus";
+
+                       power-domains = <&videocc MVSC_GDSC>,
+                                       <&videocc MVS0_GDSC>,
+                                       <&rpmhpd SC7280_CX>;
+                       power-domain-names = "venus", "vcodec0", "cx";
+                       operating-points-v2 = <&venus_opp_table>;
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>,
+                                       <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>;
+                       interconnect-names = "cpu-cfg", "video-mem";
+
+                       iommus = <&apps_smmu 0x2180 0x20>,
+                                <&apps_smmu 0x2184 0x20>;
+                       memory-region = <&video_mem>;
+
+                       video-decoder {
+                               compatible = "venus-decoder";
+                       };
+
+                       video-encoder {
+                               compatible = "venus-encoder";
+                       };
+
+                       video-firmware {
+                               iommus = <&apps_smmu 0x21a2 0x0>;
+                       };
+
+                       venus_opp_table: venus-opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-133330000 {
+                                       opp-hz = /bits/ 64 <133330000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-240000000 {
+                                       opp-hz = /bits/ 64 <240000000>;
+                                       required-opps = <&rpmhpd_opp_svs>;
+                               };
+
+                               opp-335000000 {
+                                       opp-hz = /bits/ 64 <335000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                               };
+
+                               opp-424000000 {
+                                       opp-hz = /bits/ 64 <424000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                               };
+
+                               opp-460000048 {
+                                       opp-hz = /bits/ 64 <460000048>;
+                                       required-opps = <&rpmhpd_opp_turbo>;
+                               };
+                       };
+
+               };
+
                videocc: clock-controller@aaf0000 {
                        compatible = "qcom,sc7280-videocc";
                        reg = <0 0xaaf0000 0 0x10000>;
index 11d0a8c..42af1fa 100644 (file)
@@ -90,7 +90,6 @@
        gpio_keys {
                status = "okay";
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
 
        /* HCI Bluetooth */
 };
 
-&pon {
-       volup {
-               compatible = "qcom,pm8941-resin";
-               interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
-               debounce = <15625>;
-               bias-pull-up;
-               linux,code = <KEY_VOLUMEUP>;
-       };
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       status = "okay";
+
+       linux,code = <KEY_VOLUMEUP>;
 };
 
 &qusb2phy {
index 3e0165b..9217c3a 100644 (file)
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               mmc1 = &sdhc_1;
+               mmc2 = &sdhc_2;
+       };
+
        chosen { };
 
        clocks {
 
                adreno_gpu: gpu@5000000 {
                        compatible = "qcom,adreno-508.0", "qcom,adreno";
-                       #stream-id-cells = <16>;
 
                        reg = <0x05000000 0x40000>;
                        reg-names = "kgsl_3d0_reg_memory";
index bba1c2b..b96da53 100644 (file)
@@ -11,6 +11,7 @@
 / {
        model = "Sony Xperia 10 Plus";
        compatible = "sony,mermaid-row", "qcom,sdm636";
+       chassis-type = "handset";
 
        /* SDM636 v1 */
        qcom,msm-id = <345 0>;
index 1edc53f..dcbaacf 100644 (file)
@@ -1,11 +1,16 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
  * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com>
+ * Copyright (c) 2021, Dang Huynh <danct12@riseup.net>
  */
 
 /dts-v1/;
 
 #include "sdm660.dtsi"
+#include "pm660.dtsi"
+#include "pm660l.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/input/gpio-keys.h>
 
 / {
        model = "Xiaomi Redmi Note 7";
        };
 
        chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
                stdout-path = "serial0:115200n8";
+
+               framebuffer0: framebuffer@9d400000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0 0x9d400000 0 (1080 * 2340 * 4)>;
+                       width = <1080>;
+                       height = <2340>;
+                       stride = <(1080 * 4)>;
+                       format = "a8r8g8b8";
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               volup {
+                       label = "Volume Up";
+                       gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
        };
 
        reserved-memory {
                        ftrace-size = <0x0>;
                        pmsg-size = <0x20000>;
                };
+
+               framebuffer_mem: memory@9d400000 {
+                       reg = <0x0 0x9d400000 0x0 0x23ff000>;
+                       no-map;
+               };
+       };
+
+       /*
+        * Until we hook up type-c detection, we
+        * have to stick with this. But it works.
+        */
+       extcon_usb: extcon-usb {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpio = <&tlmm 58 GPIO_ACTIVE_HIGH>;
        };
 };
 
        status = "okay";
 };
 
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       status = "okay";
+
+       linux,code = <KEY_VOLUMEDOWN>;
+};
+
+&qusb2phy {
+       status = "okay";
+
+       vdd-supply = <&vreg_l1b_0p925>;
+       vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
+};
+
+&rpm_requests {
+       pm660l-regulators {
+               compatible = "qcom,rpm-pm660l-regulators";
+
+               vdd_s1-supply = <&vph_pwr>;
+               vdd_s2-supply = <&vph_pwr>;
+               vdd_s3_s4-supply = <&vph_pwr>;
+               vdd_s5-supply = <&vph_pwr>;
+               vdd_s6-supply = <&vph_pwr>;
+
+               vdd_l1_l9_l10-supply = <&vreg_s2b_1p05>;
+               vdd_l2-supply = <&vreg_bob>;
+               vdd_l3_l5_l7_l8-supply = <&vreg_bob>;
+               vdd_l4_l6-supply = <&vreg_bob>;
+               vdd_bob-supply = <&vph_pwr>;
+
+               vreg_s1b_1p125: s1 {
+                       regulator-min-microvolt = <1125000>;
+                       regulator-max-microvolt = <1125000>;
+                       regulator-enable-ramp-delay = <200>;
+               };
+
+               vreg_s2b_1p05: s2 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-enable-ramp-delay = <200>;
+               };
+
+               /* LDOs */
+               vreg_l1b_0p925: l1 {
+                       regulator-min-microvolt = <800000>;
+                       regulator-max-microvolt = <925000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-allow-set-load;
+               };
+
+               /* SDHCI 3.3V signal doesn't seem to be supported. */
+               vreg_l2b_2p95: l2 {
+                       regulator-min-microvolt = <1648000>;
+                       regulator-max-microvolt = <2696000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-allow-set-load;
+               };
+
+               vreg_l3b_3p3: l3 {
+                       regulator-min-microvolt = <1700000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-allow-set-load;
+               };
+
+               vreg_l4b_2p95: l4 {
+                       regulator-min-microvolt = <2944000>;
+                       regulator-max-microvolt = <2952000>;
+                       regulator-enable-ramp-delay = <250>;
+
+                       regulator-min-microamp = <200>;
+                       regulator-max-microamp = <600000>;
+                       regulator-system-load = <570000>;
+                       regulator-allow-set-load;
+               };
+
+               /*
+                * Downstream specifies a range of 1721-3600mV,
+                * but the only assigned consumers are SDHCI2 VMMC
+                * and Coresight QPDI that both request pinned 2.95V.
+                * Tighten the range to 1.8-3.328 (closest to 3.3) to
+                * make the mmc driver happy.
+                */
+               vreg_l5b_2p95: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3328000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-allow-set-load;
+                       regulator-system-load = <800000>;
+               };
+
+               vreg_l7b_3p125: l7 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3125000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l8b_3p3: l8 {
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3400000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_bob: bob {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3600000>;
+                       regulator-enable-ramp-delay = <500>;
+               };
+       };
+
+       pm660-regulators {
+               compatible = "qcom,rpm-pm660-regulators";
+
+               vdd_s1-supply = <&vph_pwr>;
+               vdd_s2-supply = <&vph_pwr>;
+               vdd_s3-supply = <&vph_pwr>;
+               vdd_s4-supply = <&vph_pwr>;
+               vdd_s5-supply = <&vph_pwr>;
+               vdd_s6-supply = <&vph_pwr>;
+
+               vdd_l1_l6_l7-supply = <&vreg_s5a_1p35>;
+               vdd_l2_l3-supply = <&vreg_s2b_1p05>;
+               vdd_l5-supply = <&vreg_s2b_1p05>;
+               vdd_l8_l9_l10_l11_l12_l13_l14-supply = <&vreg_s4a_2p04>;
+               vdd_l15_l16_l17_l18_l19-supply = <&vreg_bob>;
+
+               /*
+                * S1A (FTAPC0), S2A (FTAPC1), S3A (HFAPC1) are managed
+                * by the Core Power Reduction hardened (CPRh) and the
+                * Operating State Manager (OSM) HW automatically.
+                */
+
+               vreg_s4a_2p04: s4 {
+                       regulator-min-microvolt = <1805000>;
+                       regulator-max-microvolt = <2040000>;
+                       regulator-enable-ramp-delay = <200>;
+                       regulator-always-on;
+               };
+
+               vreg_s5a_1p35: s5 {
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1350000>;
+                       regulator-enable-ramp-delay = <200>;
+               };
+
+               vreg_s6a_0p87: s6 {
+                       regulator-min-microvolt = <504000>;
+                       regulator-max-microvolt = <992000>;
+                       regulator-enable-ramp-delay = <150>;
+               };
+
+               /* LDOs */
+               vreg_l1a_1p225: l1 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1250000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-allow-set-load;
+               };
+
+               vreg_l2a_1p0: l2 {
+                       regulator-min-microvolt = <950000>;
+                       regulator-max-microvolt = <1010000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l3a_1p0: l3 {
+                       regulator-min-microvolt = <950000>;
+                       regulator-max-microvolt = <1010000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l5a_0p848: l5 {
+                       regulator-min-microvolt = <525000>;
+                       regulator-max-microvolt = <950000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l6a_1p3: l6 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1370000>;
+                       regulator-allow-set-load;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l7a_1p2: l7 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l8a_1p8: l8 {
+                       regulator-min-microvolt = <1750000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-system-load = <325000>;
+                       regulator-allow-set-load;
+               };
+
+               vreg_l9a_1p8: l9 {
+                       regulator-min-microvolt = <1750000>;
+                       regulator-max-microvolt = <1900000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-allow-set-load;
+               };
+
+               vreg_l10a_1p8: l10 {
+                       regulator-min-microvolt = <1780000>;
+                       regulator-max-microvolt = <1950000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-allow-set-load;
+               };
+
+               vreg_l11a_1p8: l11 {
+                       regulator-min-microvolt = <1780000>;
+                       regulator-max-microvolt = <1950000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l12a_1p8: l12 {
+                       regulator-min-microvolt = <1780000>;
+                       regulator-max-microvolt = <1950000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               /* This gives power to the LPDDR4: never turn it off! */
+               vreg_l13a_1p8: l13 {
+                       regulator-min-microvolt = <1780000>;
+                       regulator-max-microvolt = <1950000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vreg_l14a_1p8: l14 {
+                       regulator-min-microvolt = <1710000>;
+                       regulator-max-microvolt = <1900000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l15a_1p8: l15 {
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l16a_2p7: l16 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-always-on;
+               };
+
+               vreg_l17a_1p8: l17 {
+                       regulator-min-microvolt = <1648000>;
+                       regulator-max-microvolt = <2952000>;
+                       regulator-enable-ramp-delay = <250>;
+               };
+
+               vreg_l19a_3p3: l19 {
+                       regulator-min-microvolt = <3312000>;
+                       regulator-max-microvolt = <3400000>;
+                       regulator-enable-ramp-delay = <250>;
+                       regulator-allow-set-load;
+               };
+       };
+};
+
+&sdhc_1 {
+       status = "okay";
+       supports-cqe;
+
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+
+       vmmc-supply = <&vreg_l4b_2p95>;
+       vqmmc-supply = <&vreg_l8a_1p8>;
+};
+
+&sdhc_2 {
+       status = "okay";
+
+       vmmc-supply = <&vreg_l5b_2p95>;
+       vqmmc-supply = <&vreg_l2b_2p95>;
+};
+
 &tlmm {
        gpio-reserved-ranges = <8 4>;
 };
+
+&usb3 {
+       status = "okay";
+};
+
+&usb3_dwc3 {
+       dr_mode = "peripheral";
+       extcon = <&extcon_usb>;
+};
index 5e6e8f4..7713e80 100644 (file)
@@ -9,6 +9,8 @@
 
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "sdm845.dtsi"
+#include "pm8998.dtsi"
+#include "pmi8998.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. SDM845 MTP";
 
                vin-supply = <&vph_pwr>;
        };
+
+       thermal-zones {
+               xo_thermal: xo-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pm8998_adc_tm 1>;
+
+                       trips {
+                               trip-point {
+                                       temperature = <125000>;
+                                       hysteresis = <10000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               msm_thermal: msm-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pm8998_adc_tm 2>;
+
+                       trips {
+                               trip-point {
+                                       temperature = <125000>;
+                                       hysteresis = <10000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               pa_thermal: pa-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pm8998_adc_tm 3>;
+
+                       trips {
+                               trip-point {
+                                       temperature = <125000>;
+                                       hysteresis = <10000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               quiet_thermal: quiet-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pm8998_adc_tm 4>;
+
+                       trips {
+                               trip-point {
+                                       temperature = <125000>;
+                                       hysteresis = <10000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+       };
 };
 
 &adsp_pas {
        firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mbn";
 };
 
+&pm8998_adc {
+       adc-chan@4c {
+               reg = <ADC5_XO_THERM_100K_PU>;
+               label = "xo_therm";
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       adc-chan@4d {
+               reg = <ADC5_AMUX_THM1_100K_PU>;
+               label = "msm_therm";
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       adc-chan@4f {
+               reg = <ADC5_AMUX_THM3_100K_PU>;
+               label = "pa_therm1";
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       adc-chan@51 {
+               reg = <ADC5_AMUX_THM5_100K_PU>;
+               label = "quiet_therm";
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       adc-chan@83 {
+               reg = <ADC5_VPH_PWR>;
+               label = "vph_pwr";
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       adc-chan@85 {
+               reg = <ADC5_VCOIN>;
+               label = "vcoin";
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+};
+
+&pm8998_adc_tm {
+       status = "okay";
+
+       xo-thermistor@1 {
+               reg = <1>;
+               io-channels = <&pm8998_adc ADC5_XO_THERM_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       msm-thermistor@2 {
+               reg = <2>;
+               io-channels = <&pm8998_adc ADC5_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       pa-thermistor@3 {
+               reg = <3>;
+               io-channels = <&pm8998_adc ADC5_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       quiet-thermistor@4 {
+               reg = <4>;
+               io-channels = <&pm8998_adc ADC5_AMUX_THM5_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+};
+
 &qupv3_id_1 {
        status = "okay";
 };
index 3e04aeb..7f42e53 100644 (file)
 
 &venus {
        status = "okay";
+       firmware-name = "qcom/sdm845/oneplus6/venus.mbn";
 };
 
 &wifi {
index 7349307..5936b47 100644 (file)
@@ -11,6 +11,8 @@
        model = "OnePlus 6";
        compatible = "oneplus,enchilada", "qcom,sdm845";
        chassis-type = "handset";
+       qcom,msm-id = <0x141 0x20001>;
+       qcom,board-id = <8 0 17819 22>;
 };
 
 &display_panel {
index b63ebc4..78a0b99 100644 (file)
@@ -11,6 +11,8 @@
        model = "OnePlus 6T";
        compatible = "oneplus,fajita", "qcom,sdm845";
        chassis-type = "handset";
+       qcom,msm-id = <0x141 0x20001>;
+       qcom,board-id = <8 0 18801 41>;
 };
 
 &display_panel {
diff --git a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akari.dts b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akari.dts
new file mode 100644 (file)
index 0000000..34f84f1
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
+ */
+
+/dts-v1/;
+
+#include "sdm845-sony-xperia-tama.dtsi"
+
+/ {
+       model = "Sony Xperia XZ2";
+       compatible = "sony,akari-row", "qcom,sdm845";
+};
diff --git a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts
new file mode 100644 (file)
index 0000000..8a0d94e
--- /dev/null
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
+ */
+
+/dts-v1/;
+
+#include "sdm845-sony-xperia-tama.dtsi"
+
+/ {
+       model = "Sony Xperia XZ3";
+       compatible = "sony,akatsuki-row", "qcom,sdm845";
+};
+
+/* For the future: WLED + LAB/IBB/OLEDB are not used on Akatsuki */
+&vreg_l14a_1p8 {
+       regulator-min-microvolt = <1840000>;
+       regulator-max-microvolt = <1840000>;
+};
+
+&vreg_l22a_2p8 {
+       regulator-min-microvolt = <2700000>;
+       regulator-max-microvolt = <2700000>;
+};
+
+&vreg_l28a_2p8 {
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+};
diff --git a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-apollo.dts b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-apollo.dts
new file mode 100644 (file)
index 0000000..c9e62c7
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
+ */
+
+/dts-v1/;
+
+#include "sdm845-sony-xperia-tama.dtsi"
+
+/ {
+       model = "Sony Xperia XZ2 Compact";
+       compatible = "sony,apollo-row", "qcom,sdm845";
+};
diff --git a/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi b/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama.dtsi
new file mode 100644 (file)
index 0000000..281fe6d
--- /dev/null
@@ -0,0 +1,438 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
+ */
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sdm845.dtsi"
+#include "pm8005.dtsi"
+#include "pm8998.dtsi"
+#include "pmi8998.dtsi"
+
+/ {
+       qcom,msm-id = <321 0x20001>; /* SDM845 v2.1 */
+       qcom,board-id = <8 0>;
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               /* Neither Camera Focus, nor Camera Shutter seem to work... */
+
+               vol-down {
+                       label = "volume_down";
+                       gpios = <&pm8998_gpio 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+       };
+
+       vreg_s4a_1p8: pm8998-smps4 {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_s4a_1p8";
+
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+
+               vin-supply = <&vph_pwr>;
+       };
+
+       reserved-memory {
+               /* SONY was cool and didn't diverge from MTP this time, yay! */
+               cont_splash_mem: memory@9d400000 {
+                       reg = <0x0 0x9d400000 0x0 0x2400000>;
+                       no-map;
+               };
+
+               ramoops@ffc00000 {
+                       compatible = "ramoops";
+                       reg = <0x0 0xffc00000 0x0 0x100000>;
+                       record-size = <0x10000>;
+                       console-size = <0x60000>;
+                       ftrace-size = <0x10000>;
+                       pmsg-size = <0x20000>;
+                       ecc-size = <16>;
+                       no-map;
+               };
+       };
+};
+
+&apps_rsc {
+       pm8998-rpmh-regulators {
+               compatible = "qcom,pm8998-rpmh-regulators";
+               qcom,pmic-id = "a";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-s9-supply = <&vph_pwr>;
+               vdd-s10-supply = <&vph_pwr>;
+               vdd-s11-supply = <&vph_pwr>;
+               vdd-s12-supply = <&vph_pwr>;
+               vdd-s13-supply = <&vph_pwr>;
+               vdd-l1-l27-supply = <&vreg_s7a_0p9>;
+               vdd-l2-l8-l17-supply = <&vreg_s3a_1p3>;
+               vdd-l3-l11-supply = <&vreg_s7a_0p9>;
+               vdd-l4-l5-supply = <&vreg_s7a_0p9>;
+               vdd-l6-supply = <&vph_pwr>;
+               vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
+               vdd-l9-supply = <&vreg_s5a_1p9>;
+               vdd-l10-l23-l25-supply = <&src_vreg_bob>;
+               vdd-l13-l19-l21-supply = <&src_vreg_bob>;
+               vdd-l16-l28-supply = <&src_vreg_bob>;
+               vdd-l18-l22-supply = <&src_vreg_bob>;
+               vdd-l20-l24-supply = <&src_vreg_bob>;
+               vdd-l26-supply = <&vreg_s3a_1p3>;
+               vin-lvs-1-2-supply = <&vreg_s4a_1p8>;
+
+               vreg_s2a_1p1: smps2 {
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1100000>;
+               };
+
+               vreg_s3a_1p3: smps3 {
+                       regulator-min-microvolt = <1352000>;
+                       regulator-max-microvolt = <1352000>;
+               };
+
+               vreg_s5a_1p9: smps5 {
+                       regulator-min-microvolt = <1904000>;
+                       regulator-max-microvolt = <2040000>;
+               };
+
+               vreg_s7a_0p9: smps7 {
+                       regulator-min-microvolt = <900000>;
+                       regulator-max-microvolt = <1028000>;
+               };
+
+               vreg_l1a_0p9: ldo1 {
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2a_1p2: ldo2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-always-on;
+               };
+
+               vreg_l3a_1p0: ldo3 {
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5a_0p8: ldo5 {
+                       regulator-min-microvolt = <800000>;
+                       regulator-max-microvolt = <800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6a_1p8: ldo6 {
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <1856000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7a_1p8: ldo7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8a_1p2: ldo8 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1248000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9a_1p7: ldo9 {
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <2928000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10a_1p7: ldo10 {
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <2928000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11a_1p0: ldo11 {
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1048000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12a_1p8: ldo12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13a_1p8: ldo13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14a_1p8: ldo14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15a_1p8: ldo15 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16a_2p7: ldo16 {
+                       regulator-min-microvolt = <2704000>;
+                       regulator-max-microvolt = <2704000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17a_1p3: ldo17 {
+                       regulator-min-microvolt = <1304000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l18a_2p7: ldo18 {
+                       regulator-min-microvolt = <2704000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l19a_2p7: ldo19 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+
+                       /*
+                        * The driver *really* doesn't want this regualtor to exist,
+                        * saying that it could not get the current voltage (-ENOTRECOVERABLE)
+                        * even though it surely is used on these devices (as a voltage
+                        * source for camera autofocus)
+                        */
+                       status = "disabled";
+               };
+
+               vreg_l20a_2p7: ldo20 {
+                       regulator-min-microvolt = <2704000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l21a_2p7: ldo21 {
+                       regulator-min-microvolt = <2704000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l22a_2p8: ldo22 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l23a_3p0: ldo23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l24a_3p1: ldo24 {
+                       regulator-min-microvolt = <3088000>;
+                       regulator-max-microvolt = <3088000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l25a_3p0: ldo25 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l26a_1p2: ldo26 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l28a_2p8: ldo28 {
+                       regulator-min-microvolt = <2856000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_lvs1a_1p8: lvs1 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_lvs2a_1p8: lvs2 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       pmi8998-rpmh-regulators {
+               compatible = "qcom,pmi8998-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               src_vreg_bob: bob {
+                       regulator-min-microvolt = <3312000>;
+                       regulator-max-microvolt = <3600000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       pm8005-rpmh-regulators {
+               compatible = "qcom,pm8005-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+
+               vreg_s3c_0p6: smps3 {
+                       regulator-min-microvolt = <600000>;
+                       regulator-max-microvolt = <600000>;
+               };
+       };
+};
+
+&gcc {
+       protected-clocks = <GCC_QSPI_CORE_CLK>,
+                       <GCC_QSPI_CORE_CLK_SRC>,
+                       <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+                       <GCC_LPASS_Q6_AXI_CLK>,
+                       <GCC_LPASS_SWAY_CLK>;
+};
+
+&i2c5 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       /* Synaptics touchscreen @ 2c, 3c */
+};
+
+&i2c10 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       /* Qcom SMB1355 @ 8, c */
+       /* NXP PN547 NFC @ 28 */
+       /* Renesas IDTP9221 Qi charger @ 61 */
+};
+
+&i2c14 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       /* SONY ToF sensor @ 52 */
+       /* AMS TCS3490 RGB+IR color sensor @ 72 */
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&sdhc_2 {
+       status = "okay";
+
+       vmmc-supply = <&vreg_l21a_2p7>;
+       vqmmc-supply = <&vreg_l13a_1p8>;
+       cd-gpios = <&tlmm 126 GPIO_ACTIVE_HIGH>;
+       pinctrl-0 = <&sdc2_default_state>;
+       pinctrl-names = "default";
+       bus-width = <4>;
+       no-sdio;
+       no-emmc;
+};
+
+&tlmm {
+       gpio-reserved-ranges = <0 4>, <81 4>;
+
+       sdc2_default_state: sdc2-default-state {
+               clk {
+                       pins = "sdc2_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               cmd {
+                       pins = "sdc2_cmd";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+
+               data {
+                       pins = "sdc2_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+};
+
+&uart6 {
+       status = "okay";
+};
+
+&uart9 {
+       status = "okay";
+};
+
+/* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
+&ufs_mem_hc { status = "disabled"; };
+&ufs_mem_phy { status = "disabled"; };
+
+&usb_1 {
+       status = "okay";
+
+       qcom,select-utmi-as-pipe-clk;
+};
+
+&usb_1_dwc3 {
+       dr_mode = "peripheral";
+
+       maximum-speed = "high-speed";
+       phys = <&usb_1_hsphy>;
+       phy-names = "usb2-phy";
+};
+
+&usb_1_hsphy {
+       status = "okay";
+
+       vdd-supply = <&vreg_l1a_0p9>;
+       vdda-pll-supply = <&vreg_l12a_1p8>;
+       vdda-phy-dpdm-supply = <&vreg_l24a_3p1>;
+};
index 580d4cc..3673895 100644 (file)
 
 &venus {
        status = "okay";
+       firmware-name = "qcom/sdm845/beryllium/venus.mbn";
 };
 
 &wcd9340{
index 5260875..cfdeaa8 100644 (file)
                };
 
                qfprom@784000 {
-                       compatible = "qcom,qfprom";
+                       compatible = "qcom,sdm845-qfprom", "qcom,qfprom";
                        reg = <0 0x00784000 0 0x8ff>;
                        #address-cells = <1>;
                        #size-cells = <1>;
 
                gpu: gpu@5000000 {
                        compatible = "qcom,adreno-630.2", "qcom,adreno";
-                       #stream-id-cells = <16>;
 
                        reg = <0 0x5000000 0 0x40000>, <0 0x509e000 0 0x10>;
                        reg-names = "kgsl_3d0_reg_memory", "cx_mem";
index d6b2ba4..58845a1 100644 (file)
        dai@1 {
                reg = <1>;
        };
+
+       dai@2 {
+               reg = <2>;
+       };
 };
 
 &sound {
                "SpkrLeft IN", "SPK1 OUT",
                "SpkrRight IN", "SPK2 OUT",
                "MM_DL1",  "MultiMedia1 Playback",
+               "MM_DL3",  "MultiMedia3 Playback",
                "MultiMedia2 Capture", "MM_UL2";
 
        mm1-dai-link {
                };
        };
 
+       mm3-dai-link {
+               link-name = "MultiMedia3";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
+               };
+       };
+
        slim-dai-link {
                link-name = "SLIM Playback";
                cpu {
                        sound-dai = <&wcd9340 1>;
                };
        };
+
+       slim-wcd-dai-link {
+               link-name = "SLIM WCD Playback";
+               cpu {
+                       sound-dai = <&q6afedai SLIMBUS_1_RX>;
+               };
+
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+
+               codec {
+                       sound-dai =  <&wcd9340 2>;
+               };
+       };
 };
 
 &tlmm {
        vdd-tx-supply = <&vreg_s4a_1p8>;
        vdd-rx-supply = <&vreg_s4a_1p8>;
        vdd-io-supply = <&vreg_s4a_1p8>;
+       qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
+       qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+       qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
 
        swm: swm@c85 {
                left_spkr: wsa8810-left{
index 45eab02..871ccbb 100644 (file)
@@ -42,7 +42,6 @@
        gpio-keys {
                status = "okay";
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
                autorepeat;
index 51286dd..49e6bca 100644 (file)
                                compatible = "qcom,rpmcc-sm6125", "qcom,rpmcc";
                                #clock-cells = <1>;
                        };
+
+                       rpmpd: power-controller {
+                               compatible = "qcom,sm6125-rpmpd";
+                               #power-domain-cells = <1>;
+                               operating-points-v2 = <&rpmpd_opp_table>;
+
+                               rpmpd_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       rpmpd_opp_ret: opp1 {
+                                               opp-level = <RPM_SMD_LEVEL_RETENTION>;
+                                       };
+
+                                       rpmpd_opp_ret_plus: opp2 {
+                                               opp-level = <RPM_SMD_LEVEL_RETENTION_PLUS>;
+                                       };
+
+                                       rpmpd_opp_min_svs: opp3 {
+                                               opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
+                                       };
+
+                                       rpmpd_opp_low_svs: opp4 {
+                                               opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
+                                       };
+
+                                       rpmpd_opp_svs: opp5 {
+                                               opp-level = <RPM_SMD_LEVEL_SVS>;
+                                       };
+
+                                       rpmpd_opp_svs_plus: opp6 {
+                                               opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
+                                       };
+
+                                       rpmpd_opp_nom: opp7 {
+                                               opp-level = <RPM_SMD_LEVEL_NOM>;
+                                       };
+
+                                       rpmpd_opp_nom_plus: opp8 {
+                                               opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
+                                       };
+
+                                       rpmpd_opp_turbo: opp9 {
+                                               opp-level = <RPM_SMD_LEVEL_TURBO>;
+                                       };
+
+                                       rpmpd_opp_turbo_no_cpr: opp10 {
+                                               opp-level = <RPM_SMD_LEVEL_TURBO_NO_CPR>;
+                                       };
+                               };
+                       };
                };
        };
 
                                 <&gcc GCC_SDCC1_APPS_CLK>,
                                 <&xo_board>;
                        clock-names = "iface", "core", "xo";
+
+                       power-domains = <&rpmpd 0>;
+
                        bus-width = <8>;
                        non-removable;
                        status = "disabled";
                        pinctrl-1 = <&sdc2_state_off>;
                        pinctrl-names = "default", "sleep";
 
+                       power-domains = <&rpmpd 0>;
+
                        bus-width = <4>;
                        status = "disabled";
                };
index 973e18f..d7c9edf 100644 (file)
                hwlocks = <&tcsr_mutex 3>;
        };
 
+       smp2p-adsp {
+               compatible = "qcom,smp2p";
+               qcom,smem = <443>, <429>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_LPASS
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <2>;
+
+               smp2p_adsp_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_adsp_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-cdsp {
+               compatible = "qcom,smp2p";
+               qcom,smem = <94>, <432>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <5>;
+
+               smp2p_cdsp_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_cdsp_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-mpss {
+               compatible = "qcom,smp2p";
+               qcom,smem = <435>, <428>;
+
+               interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_MPSS
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <1>;
+
+               modem_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               modem_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
        soc: soc@0 {
                #address-cells = <2>;
                #size-cells = <2>;
                        #hwlock-cells = <1>;
                };
 
+               adsp: remoteproc@3000000 {
+                       compatible = "qcom,sm6350-adsp-pas";
+                       reg = <0 0x03000000 0 0x100>;
+
+                       interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SM6350_LCX>,
+                                       <&rpmhpd SM6350_LMX>;
+                       power-domain-names = "lcx", "lmx";
+
+                       memory-region = <&pil_adsp_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_adsp_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_LPASS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "lpass";
+                               qcom,remote-pid = <2>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "adsp";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x1003 0x0>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x1004 0x0>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x1005 0x0>;
+                                               qcom,nsessions = <5>;
+                                       };
+                               };
+                       };
+               };
+
+               mpss: remoteproc@4080000 {
+                       compatible = "qcom,sm6350-mpss-pas";
+                       reg = <0x0 0x04080000 0x0 0x4040>;
+
+                       interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover",
+                                         "stop-ack", "shutdown-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SM6350_CX>,
+                                       <&rpmhpd SM6350_MSS>;
+                       power-domain-names = "cx", "mss";
+
+                       memory-region = <&pil_modem_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&modem_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_MPSS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+                               label = "modem";
+                               qcom,remote-pid = <1>;
+                       };
+               };
+
+               cdsp: remoteproc@8300000 {
+                       compatible = "qcom,sm6350-cdsp-pas";
+                       reg = <0 0x08300000 0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SM6350_CX>,
+                                       <&rpmhpd SM6350_MX>;
+                       power-domain-names = "cx", "mx";
+
+                       memory-region = <&pil_cdsp_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_cdsp_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "cdsp";
+                               qcom,remote-pid = <5>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "cdsp";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                               iommus = <&apps_smmu 0x1401 0x20>;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+                                               iommus = <&apps_smmu 0x1402 0x20>;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x1403 0x20>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x1404 0x20>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x1405 0x20>;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x1406 0x20>;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x1407 0x20>;
+                                       };
+
+                                       compute-cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+                                               iommus = <&apps_smmu 0x1408 0x20>;
+                                       };
+
+                                       /* note: secure cb9 in downstream */
+                               };
+                       };
+               };
+
                sdhc_2: sdhci@8804000 {
                        compatible = "qcom,sm6350-sdhci", "qcom,sdhci-msm-v5";
                        reg = <0 0x08804000 0 0x1000>;
                        ranges;
 
                        clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
+                                <&xo_board>,
                                 <&rpmhcc RPMH_QLINK_CLK>,
-                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
-                                <&xo_board>;
-                       clock-names = "aux", "ref", "com_aux", "cfg_ahb";
+                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "com_aux";
 
                        resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
                                 <&gcc GCC_USB3_PHY_PRIM_BCR>;
                                      "sleep";
 
                        interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
                                              <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
-                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "hs_phy_irq", "dp_hs_phy_irq",
-                                         "dm_hs_phy_irq", "ss_phy_irq";
+                                             <&pdc 14 IRQ_TYPE_EDGE_BOTH>;
+
+                       interrupt-names = "hs_phy_irq", "ss_phy_irq",
+                                         "dm_hs_phy_irq", "dp_hs_phy_irq";
 
                        power-domains = <&gcc USB30_PRIM_GDSC>;
 
                        reg = <0 0x0c263000 0 0x1ff>, /* TM */
                              <0 0x0c222000 0 0x8>; /* SROT */
                        #qcom,sensors = <16>;
-                       interrupts = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
                                     <&pdc 28 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "uplow", "critical";
                        #thermal-sensor-cells = <1>;
                        reg = <0 0x0c265000 0 0x1ff>, /* TM */
                              <0 0x0c223000 0 0x8>; /* SROT */
                        #qcom,sensors = <16>;
-                       interrupts = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
                                     <&pdc 29 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "uplow", "critical";
                        #thermal-sensor-cells = <1>;
                        mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
 
                        #clock-cells = <0>;
-                       #power-domain-cells = <1>;
                };
 
                spmi_bus: spmi@c440000 {
index 8d6fd22..d4af9e0 100644 (file)
@@ -15,6 +15,7 @@
 / {
        model = "Fairphone 4";
        compatible = "fairphone,fp4", "qcom,sm7225";
+       chassis-type = "handset";
 
        /* required for bootloader to select correct board */
        qcom,msm-id = <434 0x10000>, <459 0x10000>;
                        gpios = <&pm6350_gpios 2 GPIO_ACTIVE_LOW>;
                };
        };
+
+       reserved-memory {
+               /*
+                * The rmtfs memory region in downstream is 'dynamically allocated'
+                * but given the same address every time. Hard code it as this address is
+                * where the modem firmware expects it to be.
+                */
+               memory@efe01000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0 0xefe01000 0 0x600000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <15>;
+               };
+       };
+};
+
+&adsp {
+       status = "okay";
+       firmware-name = "qcom/sm7225/fairphone4/adsp.mdt";
 };
 
 &apps_rsc {
        };
 };
 
+&cdsp {
+       status = "okay";
+       firmware-name = "qcom/sm7225/fairphone4/cdsp.mdt";
+};
+
+&mpss {
+       status = "okay";
+       firmware-name = "qcom/sm7225/fairphone4/modem.mdt";
+};
+
 &pm6350_gpios {
        gpio_keys_pin: gpio-keys-pin {
                pins = "gpio2";
index 81b4ff2..6012322 100644 (file)
                        compatible = "qcom,adreno-640.1",
                                     "qcom,adreno",
                                     "amd,imageon";
-                       #stream-id-cells = <16>;
 
                        reg = <0 0x02c00000 0 0x40000>;
                        reg-names = "kgsl_3d0_reg_memory";
index 5ffbcdd..fb99cc2 100644 (file)
@@ -6,6 +6,9 @@
 /dts-v1/;
 
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
+#include <dt-bindings/sound/qcom,q6asm.h>
+#include <dt-bindings/gpio/gpio.h>
 #include "sm8250.dtsi"
 #include "pm8150.dtsi"
 #include "pm8150b.dtsi"
        firmware-name = "qcom/sm8250/slpi.mbn";
 };
 
+&soc {
+       wcd938x: codec {
+               compatible = "qcom,wcd9380-codec";
+               #sound-dai-cells = <1>;
+               reset-gpios = <&tlmm 32 0>;
+               vdd-buck-supply = <&vreg_s4a_1p8>;
+               vdd-rxtx-supply = <&vreg_s4a_1p8>;
+               vdd-io-supply = <&vreg_s4a_1p8>;
+               vdd-mic-bias-supply = <&vreg_bob>;
+               qcom,micbias1-microvolt = <1800000>;
+               qcom,micbias2-microvolt = <1800000>;
+               qcom,micbias3-microvolt = <1800000>;
+               qcom,micbias4-microvolt = <1800000>;
+               qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
+               qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+               qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
+               qcom,rx-device = <&wcd_rx>;
+               qcom,tx-device = <&wcd_tx>;
+       };
+};
+
+&sound {
+       compatible = "qcom,sm8250-sndcard";
+       model = "SM8250-MTP-WCD9380-WSA8810-VA-DMIC";
+       audio-routing =
+               "SpkrLeft IN", "WSA_SPK1 OUT",
+               "SpkrRight IN", "WSA_SPK2 OUT",
+               "IN1_HPHL", "HPHL_OUT",
+               "IN2_HPHR", "HPHR_OUT",
+               "AMIC1", "MIC BIAS1",
+               "AMIC2", "MIC BIAS2",
+               "AMIC3", "MIC BIAS3",
+               "AMIC4", "MIC BIAS3",
+               "AMIC5", "MIC BIAS4",
+               "TX SWR_ADC0", "ADC1_OUTPUT",
+               "TX SWR_ADC1", "ADC2_OUTPUT",
+               "TX SWR_ADC2", "ADC3_OUTPUT",
+               "TX SWR_ADC3", "ADC4_OUTPUT",
+               "TX SWR_DMIC0", "DMIC1_OUTPUT",
+               "TX SWR_DMIC1", "DMIC2_OUTPUT",
+               "TX SWR_DMIC2", "DMIC3_OUTPUT",
+               "TX SWR_DMIC3", "DMIC4_OUTPUT",
+               "TX SWR_DMIC4", "DMIC5_OUTPUT",
+               "TX SWR_DMIC5", "DMIC6_OUTPUT",
+               "TX SWR_DMIC6", "DMIC7_OUTPUT",
+               "TX SWR_DMIC7", "DMIC8_OUTPUT";
+
+       mm1-dai-link {
+               link-name = "MultiMedia1";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
+               };
+       };
+
+       mm2-dai-link {
+               link-name = "MultiMedia2";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
+               };
+       };
+
+       mm3-dai-link {
+               link-name = "MultiMedia3";
+               cpu {
+                       sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
+               };
+       };
+
+       wcd-playback-dai-link {
+               link-name = "WCD Playback";
+               cpu {
+                       sound-dai = <&q6afedai RX_CODEC_DMA_RX_0>;
+               };
+               codec {
+                       sound-dai = <&wcd938x 0>, <&swr1 0>, <&rxmacro 0>;
+               };
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+       };
+
+       wcd-capture-dai-link {
+               link-name = "WCD Capture";
+               cpu {
+                       sound-dai = <&q6afedai TX_CODEC_DMA_TX_3>;
+               };
+
+               codec {
+                       sound-dai = <&wcd938x 1>, <&swr2 0>, <&txmacro 0>;
+               };
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+       };
+
+       wsa-dai-link {
+               link-name = "WSA Playback";
+               cpu {
+                       sound-dai = <&q6afedai WSA_CODEC_DMA_RX_0>;
+               };
+
+               codec {
+                       sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro 0>;
+               };
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+       };
+
+       va-dai-link {
+               link-name = "VA Capture";
+               cpu {
+                       sound-dai = <&q6afedai VA_CODEC_DMA_TX_0>;
+               };
+
+               platform {
+                       sound-dai = <&q6routing>;
+               };
+
+               codec {
+                       sound-dai = <&vamacro 0>;
+               };
+       };
+};
+
+&swr0 {
+       left_spkr: wsa8810-right@0,3{
+               compatible = "sdw10217211000";
+               reg = <0 3>;
+               powerdown-gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>;
+               #thermal-sensor-cells = <0>;
+               sound-name-prefix = "SpkrLeft";
+               #sound-dai-cells = <0>;
+       };
+
+       right_spkr: wsa8810-left@0,4{
+               compatible = "sdw10217211000";
+               reg = <0 4>;
+               powerdown-gpios = <&tlmm 127 GPIO_ACTIVE_HIGH>;
+               #thermal-sensor-cells = <0>;
+               sound-name-prefix = "SpkrRight";
+               #sound-dai-cells = <0>;
+       };
+};
+
+&swr1 {
+       wcd_rx: wcd9380-rx@0,4 {
+               compatible = "sdw20217010d00";
+               reg = <0 4>;
+               qcom,rx-port-mapping = <1 2 3 4 5>;
+       };
+};
+
+&swr2 {
+       wcd_tx: wcd9380-tx@0,3 {
+               compatible = "sdw20217010d00";
+               reg = <0 3>;
+               qcom,tx-port-mapping = <2 3 4 5>;
+       };
+};
+
 &tlmm {
        gpio-reserved-ranges = <28 4>, <40 4>;
+
+       wcd938x_reset_default: wcd938x_reset_default {
+               mux {
+                       pins = "gpio32";
+                       function = "gpio";
+               };
+
+               config {
+                       pins = "gpio32";
+                       drive-strength = <16>;
+                       output-high;
+               };
+       };
+
+       wcd938x_reset_sleep: wcd938x_reset_sleep {
+               mux {
+                       pins = "gpio32";
+                       function = "gpio";
+               };
+
+               config {
+                       pins = "gpio32";
+                       drive-strength = <16>;
+                       bias-disable;
+                       output-low;
+               };
+       };
 };
 
 &uart12 {
index 6f6129b..5617a46 100644 (file)
@@ -99,6 +99,9 @@
                        dynamic-power-coefficient = <205>;
                        next-level-cache = <&L2_0>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 &mc_virt SLAVE_EBI_CH0>,
+                                       <&epss_l3 MASTER_OSM_L3_APPS &epss_l3 SLAVE_OSM_L3>;
                        #cooling-cells = <2>;
                        L2_0: l2-cache {
                                compatible = "cache";
                        dynamic-power-coefficient = <205>;
                        next-level-cache = <&L2_100>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 &mc_virt SLAVE_EBI_CH0>,
+                                       <&epss_l3 MASTER_OSM_L3_APPS &epss_l3 SLAVE_OSM_L3>;
                        #cooling-cells = <2>;
                        L2_100: l2-cache {
                                compatible = "cache";
                        dynamic-power-coefficient = <205>;
                        next-level-cache = <&L2_200>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 &mc_virt SLAVE_EBI_CH0>,
+                                       <&epss_l3 MASTER_OSM_L3_APPS &epss_l3 SLAVE_OSM_L3>;
                        #cooling-cells = <2>;
                        L2_200: l2-cache {
                                compatible = "cache";
                        dynamic-power-coefficient = <205>;
                        next-level-cache = <&L2_300>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 &mc_virt SLAVE_EBI_CH0>,
+                                       <&epss_l3 MASTER_OSM_L3_APPS &epss_l3 SLAVE_OSM_L3>;
                        #cooling-cells = <2>;
                        L2_300: l2-cache {
                                compatible = "cache";
                        dynamic-power-coefficient = <379>;
                        next-level-cache = <&L2_400>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       operating-points-v2 = <&cpu4_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 &mc_virt SLAVE_EBI_CH0>,
+                                       <&epss_l3 MASTER_OSM_L3_APPS &epss_l3 SLAVE_OSM_L3>;
                        #cooling-cells = <2>;
                        L2_400: l2-cache {
                                compatible = "cache";
                        dynamic-power-coefficient = <379>;
                        next-level-cache = <&L2_500>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       operating-points-v2 = <&cpu4_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 &mc_virt SLAVE_EBI_CH0>,
+                                       <&epss_l3 MASTER_OSM_L3_APPS &epss_l3 SLAVE_OSM_L3>;
                        #cooling-cells = <2>;
                        L2_500: l2-cache {
                                compatible = "cache";
                        dynamic-power-coefficient = <379>;
                        next-level-cache = <&L2_600>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       operating-points-v2 = <&cpu4_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 &mc_virt SLAVE_EBI_CH0>,
+                                       <&epss_l3 MASTER_OSM_L3_APPS &epss_l3 SLAVE_OSM_L3>;
                        #cooling-cells = <2>;
                        L2_600: l2-cache {
                                compatible = "cache";
                        dynamic-power-coefficient = <444>;
                        next-level-cache = <&L2_700>;
                        qcom,freq-domain = <&cpufreq_hw 2>;
+                       operating-points-v2 = <&cpu7_opp_table>;
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 &mc_virt SLAVE_EBI_CH0>,
+                                       <&epss_l3 MASTER_OSM_L3_APPS &epss_l3 SLAVE_OSM_L3>;
                        #cooling-cells = <2>;
                        L2_700: l2-cache {
                                compatible = "cache";
                };
        };
 
+       cpu0_opp_table: cpu0_opp_table {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               cpu0_opp1: opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-peak-kBps = <800000 9600000>;
+               };
+
+               cpu0_opp2: opp-403200000 {
+                       opp-hz = /bits/ 64 <403200000>;
+                       opp-peak-kBps = <800000 9600000>;
+               };
+
+               cpu0_opp3: opp-518400000 {
+                       opp-hz = /bits/ 64 <518400000>;
+                       opp-peak-kBps = <800000 16588800>;
+               };
+
+               cpu0_opp4: opp-614400000 {
+                       opp-hz = /bits/ 64 <614400000>;
+                       opp-peak-kBps = <800000 16588800>;
+               };
+
+               cpu0_opp5: opp-691200000 {
+                       opp-hz = /bits/ 64 <691200000>;
+                       opp-peak-kBps = <800000 19660800>;
+               };
+
+               cpu0_opp6: opp-787200000 {
+                       opp-hz = /bits/ 64 <787200000>;
+                       opp-peak-kBps = <1804000 19660800>;
+               };
+
+               cpu0_opp7: opp-883200000 {
+                       opp-hz = /bits/ 64 <883200000>;
+                       opp-peak-kBps = <1804000 23347200>;
+               };
+
+               cpu0_opp8: opp-979200000 {
+                       opp-hz = /bits/ 64 <979200000>;
+                       opp-peak-kBps = <1804000 26419200>;
+               };
+
+               cpu0_opp9: opp-1075200000 {
+                       opp-hz = /bits/ 64 <1075200000>;
+                       opp-peak-kBps = <1804000 29491200>;
+               };
+
+               cpu0_opp10: opp-1171200000 {
+                       opp-hz = /bits/ 64 <1171200000>;
+                       opp-peak-kBps = <1804000 32563200>;
+               };
+
+               cpu0_opp11: opp-1248000000 {
+                       opp-hz = /bits/ 64 <1248000000>;
+                       opp-peak-kBps = <1804000 36249600>;
+               };
+
+               cpu0_opp12: opp-1344000000 {
+                       opp-hz = /bits/ 64 <1344000000>;
+                       opp-peak-kBps = <2188000 36249600>;
+               };
+
+               cpu0_opp13: opp-1420800000 {
+                       opp-hz = /bits/ 64 <1420800000>;
+                       opp-peak-kBps = <2188000 39321600>;
+               };
+
+               cpu0_opp14: opp-1516800000 {
+                       opp-hz = /bits/ 64 <1516800000>;
+                       opp-peak-kBps = <3072000 42393600>;
+               };
+
+               cpu0_opp15: opp-1612800000 {
+                       opp-hz = /bits/ 64 <1612800000>;
+                       opp-peak-kBps = <3072000 42393600>;
+               };
+
+               cpu0_opp16: opp-1708800000 {
+                       opp-hz = /bits/ 64 <1708800000>;
+                       opp-peak-kBps = <4068000 42393600>;
+               };
+
+               cpu0_opp17: opp-1804800000 {
+                       opp-hz = /bits/ 64 <1804800000>;
+                       opp-peak-kBps = <4068000 42393600>;
+               };
+       };
+
+       cpu4_opp_table: cpu4_opp_table {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               cpu4_opp1: opp-710400000 {
+                       opp-hz = /bits/ 64 <710400000>;
+                       opp-peak-kBps = <1804000 19660800>;
+               };
+
+               cpu4_opp2: opp-825600000 {
+                       opp-hz = /bits/ 64 <825600000>;
+                       opp-peak-kBps = <2188000 23347200>;
+               };
+
+               cpu4_opp3: opp-940800000 {
+                       opp-hz = /bits/ 64 <940800000>;
+                       opp-peak-kBps = <2188000 26419200>;
+               };
+
+               cpu4_opp4: opp-1056000000 {
+                       opp-hz = /bits/ 64 <1056000000>;
+                       opp-peak-kBps = <3072000 26419200>;
+               };
+
+               cpu4_opp5: opp-1171200000 {
+                       opp-hz = /bits/ 64 <1171200000>;
+                       opp-peak-kBps = <3072000 29491200>;
+               };
+
+               cpu4_opp6: opp-1286400000 {
+                       opp-hz = /bits/ 64 <1286400000>;
+                       opp-peak-kBps = <4068000 29491200>;
+               };
+
+               cpu4_opp7: opp-1382400000 {
+                       opp-hz = /bits/ 64 <1382400000>;
+                       opp-peak-kBps = <4068000 32563200>;
+               };
+
+               cpu4_opp8: opp-1478400000 {
+                       opp-hz = /bits/ 64 <1478400000>;
+                       opp-peak-kBps = <4068000 32563200>;
+               };
+
+               cpu4_opp9: opp-1574400000 {
+                       opp-hz = /bits/ 64 <1574400000>;
+                       opp-peak-kBps = <5412000 39321600>;
+               };
+
+               cpu4_opp10: opp-1670400000 {
+                       opp-hz = /bits/ 64 <1670400000>;
+                       opp-peak-kBps = <5412000 42393600>;
+               };
+
+               cpu4_opp11: opp-1766400000 {
+                       opp-hz = /bits/ 64 <1766400000>;
+                       opp-peak-kBps = <5412000 45465600>;
+               };
+
+               cpu4_opp12: opp-1862400000 {
+                       opp-hz = /bits/ 64 <1862400000>;
+                       opp-peak-kBps = <6220000 45465600>;
+               };
+
+               cpu4_opp13: opp-1958400000 {
+                       opp-hz = /bits/ 64 <1958400000>;
+                       opp-peak-kBps = <6220000 48537600>;
+               };
+
+               cpu4_opp14: opp-2054400000 {
+                       opp-hz = /bits/ 64 <2054400000>;
+                       opp-peak-kBps = <7216000 48537600>;
+               };
+
+               cpu4_opp15: opp-2150400000 {
+                       opp-hz = /bits/ 64 <2150400000>;
+                       opp-peak-kBps = <7216000 51609600>;
+               };
+
+               cpu4_opp16: opp-2246400000 {
+                       opp-hz = /bits/ 64 <2246400000>;
+                       opp-peak-kBps = <7216000 51609600>;
+               };
+
+               cpu4_opp17: opp-2342400000 {
+                       opp-hz = /bits/ 64 <2342400000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               cpu4_opp18: opp-2419200000 {
+                       opp-hz = /bits/ 64 <2419200000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+       };
+
+       cpu7_opp_table: cpu7_opp_table {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               cpu7_opp1: opp-844800000 {
+                       opp-hz = /bits/ 64 <844800000>;
+                       opp-peak-kBps = <2188000 19660800>;
+               };
+
+               cpu7_opp2: opp-960000000 {
+                       opp-hz = /bits/ 64 <960000000>;
+                       opp-peak-kBps = <2188000 26419200>;
+               };
+
+               cpu7_opp3: opp-1075200000 {
+                       opp-hz = /bits/ 64 <1075200000>;
+                       opp-peak-kBps = <3072000 26419200>;
+               };
+
+               cpu7_opp4: opp-1190400000 {
+                       opp-hz = /bits/ 64 <1190400000>;
+                       opp-peak-kBps = <3072000 29491200>;
+               };
+
+               cpu7_opp5: opp-1305600000 {
+                       opp-hz = /bits/ 64 <1305600000>;
+                       opp-peak-kBps = <4068000 32563200>;
+               };
+
+               cpu7_opp6: opp-1401600000 {
+                       opp-hz = /bits/ 64 <1401600000>;
+                       opp-peak-kBps = <4068000 32563200>;
+               };
+
+               cpu7_opp7: opp-1516800000 {
+                       opp-hz = /bits/ 64 <1516800000>;
+                       opp-peak-kBps = <4068000 36249600>;
+               };
+
+               cpu7_opp8: opp-1632000000 {
+                       opp-hz = /bits/ 64 <1632000000>;
+                       opp-peak-kBps = <5412000 39321600>;
+               };
+
+               cpu7_opp9: opp-1747200000 {
+                       opp-hz = /bits/ 64 <1708800000>;
+                       opp-peak-kBps = <5412000 42393600>;
+               };
+
+               cpu7_opp10: opp-1862400000 {
+                       opp-hz = /bits/ 64 <1862400000>;
+                       opp-peak-kBps = <6220000 45465600>;
+               };
+
+               cpu7_opp11: opp-1977600000 {
+                       opp-hz = /bits/ 64 <1977600000>;
+                       opp-peak-kBps = <6220000 48537600>;
+               };
+
+               cpu7_opp12: opp-2073600000 {
+                       opp-hz = /bits/ 64 <2073600000>;
+                       opp-peak-kBps = <7216000 48537600>;
+               };
+
+               cpu7_opp13: opp-2169600000 {
+                       opp-hz = /bits/ 64 <2169600000>;
+                       opp-peak-kBps = <7216000 51609600>;
+               };
+
+               cpu7_opp14: opp-2265600000 {
+                       opp-hz = /bits/ 64 <2265600000>;
+                       opp-peak-kBps = <7216000 51609600>;
+               };
+
+               cpu7_opp15: opp-2361600000 {
+                       opp-hz = /bits/ 64 <2361600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               cpu7_opp16: opp-2457600000 {
+                       opp-hz = /bits/ 64 <2457600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               cpu7_opp17: opp-2553600000 {
+                       opp-hz = /bits/ 64 <2553600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               cpu7_opp18: opp-2649600000 {
+                       opp-hz = /bits/ 64 <2649600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               cpu7_opp19: opp-2745600000 {
+                       opp-hz = /bits/ 64 <2745600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+
+               cpu7_opp20: opp-2841600000 {
+                       opp-hz = /bits/ 64 <2841600000>;
+                       opp-peak-kBps = <8368000 51609600>;
+               };
+       };
+
        firmware {
                scm: scm {
                        compatible = "qcom,scm";
                        #sound-dai-cells = <1>;
                };
 
+               rxmacro: rxmacro@3200000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&rx_swr_active>;
+                       compatible = "qcom,sm8250-lpass-rx-macro";
+                       reg = <0 0x3200000 0 0x1000>;
+
+                       clocks = <&q6afecc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                               <&q6afecc LPASS_CLK_ID_TX_CORE_NPL_MCLK  LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                               <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                               <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                               <&vamacro>;
+
+                       clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
+
+                       #clock-cells = <0>;
+                       clock-frequency = <9600000>;
+                       clock-output-names = "mclk";
+                       #sound-dai-cells = <1>;
+               };
+
+               swr1: soundwire-controller@3210000 {
+                       reg = <0 0x3210000 0 0x2000>;
+                       compatible = "qcom,soundwire-v1.5.1";
+                       interrupts = <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rxmacro>;
+                       clock-names = "iface";
+                       label = "RX";
+                       qcom,din-ports = <0>;
+                       qcom,dout-ports = <5>;
+
+                       qcom,ports-sinterval-low =      /bits/ 8 <0x03 0x1F 0x1F 0x07 0x00>;
+                       qcom,ports-offset1 =            /bits/ 8 <0x00 0x00 0x0B 0x01 0x00>;
+                       qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x0B 0x00 0x00>;
+                       qcom,ports-hstart =             /bits/ 8 <0xFF 0x03 0xFF 0xFF 0xFF>;
+                       qcom,ports-hstop =              /bits/ 8 <0xFF 0x06 0xFF 0xFF 0xFF>;
+                       qcom,ports-word-length =        /bits/ 8 <0x01 0x07 0x04 0xFF 0xFF>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0xFF 0x00 0x01 0xFF 0xFF>;
+                       qcom,ports-lane-control =       /bits/ 8 <0x01 0x00 0x00 0x00 0x00>;
+                       qcom,ports-block-group-count =  /bits/ 8 <0xFF 0xFF 0xFF 0xFF 0x00>;
+
+                       #sound-dai-cells = <1>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+               };
+
+               txmacro: txmacro@3220000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&tx_swr_active>;
+                       compatible = "qcom,sm8250-lpass-tx-macro";
+                       reg = <0 0x3220000 0 0x1000>;
+
+                       clocks = <&q6afecc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6afecc LPASS_CLK_ID_TX_CORE_NPL_MCLK  LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&vamacro>;
+
+                       clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
+
+                       #clock-cells = <0>;
+                       clock-frequency = <9600000>;
+                       clock-output-names = "mclk";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       #sound-dai-cells = <1>;
+               };
+
+               /* tx macro */
+               swr2: soundwire-controller@3230000 {
+                       reg = <0 0x3230000 0 0x2000>;
+                       compatible = "qcom,soundwire-v1.5.1";
+                       interrupts-extended = <&intc GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "core";
+
+                       clocks = <&txmacro>;
+                       clock-names = "iface";
+                       label = "TX";
+
+                       qcom,din-ports = <5>;
+                       qcom,dout-ports = <0>;
+                       qcom,ports-sinterval-low =      /bits/ 8 <0xFF 0x01 0x01 0x03 0x03>;
+                       qcom,ports-offset1 =            /bits/ 8 <0xFF 0x01 0x00 0x02 0x00>;
+                       qcom,ports-offset2 =            /bits/ 8 <0xFF 0x00 0x00 0x00 0x00>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0xFF 0xFF 0xFF 0xFF 0xFF>;
+                       qcom,ports-hstart =             /bits/ 8 <0xFF 0xFF 0xFF 0xFF 0xFF>;
+                       qcom,ports-hstop =              /bits/ 8 <0xFF 0xFF 0xFF 0xFF 0xFF>;
+                       qcom,ports-word-length =        /bits/ 8 <0xFF 0xFF 0xFF 0xFF 0xFF>;
+                       qcom,ports-block-group-count =  /bits/ 8 <0xFF 0xFF 0xFF 0xFF 0xFF>;
+                       qcom,ports-lane-control =       /bits/ 8 <0xFF 0x00 0x01 0x00 0x01>;
+                       qcom,port-offset = <1>;
+                       #sound-dai-cells = <1>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+               };
+
                aoncc: clock-controller@3380000 {
                        compatible = "qcom,sm8250-lpass-aoncc";
                        reg = <0 0x03380000 0 0x40000>;
                                        input-enable;
                                };
                        };
+
+                       rx_swr_active: rx_swr-active-pins {
+                               clk {
+                                       pins = "gpio3";
+                                       function = "swr_rx_clk";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-disable;
+                               };
+
+                               data {
+                                       pins = "gpio4", "gpio5";
+                                       function = "swr_rx_data";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-bus-hold;
+                               };
+                       };
+
+                       tx_swr_active: tx_swr-active-pins {
+                               clk {
+                                       pins = "gpio0";
+                                       function = "swr_tx_clk";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-disable;
+                               };
+
+                               data {
+                                       pins = "gpio1", "gpio2";
+                                       function = "swr_tx_data";
+                                       drive-strength = <2>;
+                                       slew-rate = <1>;
+                                       bias-bus-hold;
+                               };
+                       };
+
+                       tx_swr_sleep: tx_swr-sleep-pins {
+                               clk {
+                                       pins = "gpio0";
+                                       function = "swr_tx_clk";
+                                       drive-strength = <2>;
+                                       input-enable;
+                                       bias-pull-down;
+                               };
+
+                               data1 {
+                                       pins = "gpio1";
+                                       function = "swr_tx_data";
+                                       drive-strength = <2>;
+                                       input-enable;
+                                       bias-bus-hold;
+                               };
+
+                               data2 {
+                                       pins = "gpio2";
+                                       function = "swr_tx_data";
+                                       drive-strength = <2>;
+                                       input-enable;
+                                       bias-pull-down;
+                               };
+                       };
                };
 
                gpu: gpu@3d00000 {
                        compatible = "qcom,adreno-650.2",
                                     "qcom,adreno";
-                       #stream-id-cells = <16>;
 
                        reg = <0 0x03d00000 0 0x40000>;
                        reg-names = "kgsl_3d0_reg_memory";
index be06237..1e5e940 100644 (file)
@@ -5,7 +5,6 @@
 
 /dts-v1/;
 
-#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "sm8350.dtsi"
 
diff --git a/arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dts b/arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dts
new file mode 100644 (file)
index 0000000..9cb1d84
--- /dev/null
@@ -0,0 +1,369 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (C) 2021, Microsoft Corporation
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8350.dtsi"
+#include "pm8350.dtsi"
+#include "pm8350b.dtsi"
+#include "pm8350c.dtsi"
+#include "pmk8350.dtsi"
+#include "pmr735a.dtsi"
+#include "pmr735b.dtsi"
+
+/ {
+       model = "Microsoft Surface Duo 2";
+       compatible = "microsoft,surface-duo2", "qcom,sm8350";
+       chassis-type = "handset";
+
+       aliases {
+               serial0 = &uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&adsp {
+       status = "okay";
+       firmware-name = "qcom/sm8350/microsoft/adsp.mbn";
+};
+
+&apps_rsc {
+       pm8350-rpmh-regulators {
+               compatible = "qcom,pm8350-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-s9-supply = <&vph_pwr>;
+               vdd-s10-supply = <&vph_pwr>;
+               vdd-s11-supply = <&vph_pwr>;
+               vdd-s12-supply = <&vph_pwr>;
+
+               vdd-l1-l4-supply = <&vreg_s11b_0p95>;
+               vdd-l2-l7-supply = <&vreg_bob>;
+               vdd-l3-l5-supply = <&vreg_bob>;
+               vdd-l6-l9-l10-supply = <&vreg_s11b_0p95>;
+               vdd-l8-supply = <&vreg_s2c_0p8>;
+
+               vreg_s10b_1p8: smps10 {
+                       regulator-name = "vreg_s10b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               vreg_s11b_0p95: smps11 {
+                       regulator-name = "vreg_s11b_0p95";
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <1000000>;
+               };
+
+               vreg_s12b_1p25: smps12 {
+                       regulator-name = "vreg_s12b_1p25";
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1360000>;
+               };
+
+               vreg_l1b_0p88: ldo1 {
+                       regulator-name = "vreg_l1b_0p88";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p07: ldo2 {
+                       regulator-name = "vreg_l2b_3p07";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3b_0p9: ldo3 {
+                       regulator-name = "vreg_l3b_0p9";
+                       regulator-min-microvolt = <904000>;
+                       regulator-max-microvolt = <904000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_0p88: ldo5 {
+                       regulator-name = "vreg_l3b_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <888000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p2: ldo6 {
+                       regulator-name = "vreg_l6b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1208000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_2p96: ldo7 {
+                       regulator-name = "vreg_l7b_2p96";
+                       regulator-min-microvolt = <2400000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_1p2: ldo9 {
+                       regulator-name = "vreg_l9b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       pm8350c-rpmh-regulators {
+               compatible = "qcom,pm8350c-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-s9-supply = <&vph_pwr>;
+               vdd-s10-supply = <&vph_pwr>;
+
+               vdd-l1-l12-supply = <&vreg_s1c_1p86>;
+               vdd-l2-l8-supply = <&vreg_s1c_1p86>;
+               vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
+               vdd-l6-l9-l11-supply = <&vreg_bob>;
+               vdd-l10-supply = <&vreg_s12b_1p25>;
+
+               vdd-bob-supply = <&vph_pwr>;
+
+               vreg_s1c_1p86: smps1 {
+                       regulator-name = "vreg_s1c_1p86";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1952000>;
+               };
+
+               vreg_s2c_0p8: smps2 {
+                       regulator-name = "vreg_s2c_0p8";
+                       regulator-min-microvolt = <640000>;
+                       regulator-max-microvolt = <1000000>;
+               };
+
+               vreg_s10c_1p05: smps10 {
+                       regulator-name = "vreg_s10c_1p05";
+                       regulator-min-microvolt = <1048000>;
+                       regulator-max-microvolt = <1128000>;
+               };
+
+               vreg_bob: bob {
+                       regulator-name = "vreg_bob";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l1c_1p8: ldo1 {
+                       regulator-name = "vreg_l1c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_1p8: ldo2 {
+                       regulator-name = "vreg_l2c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_3p0: ldo3 {
+                       regulator-name = "vreg_l3c_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c_uim1: ldo4 {
+                       regulator-name = "vreg_l4c_uim1";
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5c_uim2: ldo5 {
+                       regulator-name = "vreg_l5c_uim2";
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6c_1p8: ldo6 {
+                       regulator-name = "vreg_l6c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c_3p0: ldo7 {
+                       regulator-name = "vreg_l7c_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8c_1p8: ldo8 {
+                       regulator-name = "vreg_l8c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c_2p96: ldo9 {
+                       regulator-name = "vreg_l9c_2p96";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c_1p2: ldo10 {
+                       regulator-name = "vreg_l10c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c_2p96: ldo11 {
+                       regulator-name = "vreg_l11c_2p96";
+                       regulator-min-microvolt = <2400000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12c_1p8: ldo12 {
+                       regulator-name = "vreg_l12c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13c_3p0: ldo13 {
+                       regulator-name = "vreg_l13c_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&cdsp {
+       status = "okay";
+       firmware-name = "qcom/sm8350/microsoft/cdsp.mbn";
+};
+
+&ipa {
+       status = "okay";
+
+       memory-region = <&pil_ipa_fw_mem>;
+};
+
+&mpss {
+       status = "okay";
+       firmware-name = "qcom/sm8350/microsoft/modem.mbn";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&slpi {
+       status = "okay";
+       firmware-name = "qcom/sm8350/microsoft/slpi.mbn";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <4 4>, <12 4>, <56 4>, <76 4>;
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       status = "okay";
+
+       reset-gpios = <&tlmm 203 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l7b_2p96>;
+       vcc-max-microamp = <800000>;
+       vccq-supply = <&vreg_l9b_1p2>;
+       vccq-max-microamp = <900000>;
+};
+
+&ufs_mem_phy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l5b_0p88>;
+       vdda-max-microamp = <91600>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+       vdda-pll-max-microamp = <19000>;
+};
+
+&usb_1 {
+       status = "okay";
+       dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+       status = "okay";
+
+       vdda-pll-supply = <&vreg_l5b_0p88>;
+       vdda18-supply = <&vreg_l1c_1p8>;
+       vdda33-supply = <&vreg_l2b_3p07>;
+};
+
+&usb_1_qmpphy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l6b_1p2>;
+       vdda-pll-supply = <&vreg_l1b_0p88>;
+};
+
+&usb_2 {
+       status = "okay";
+};
+
+&usb_2_hsphy {
+       status = "okay";
+
+       vdda-pll-supply = <&vreg_l5b_0p88>;
+       vdda18-supply = <&vreg_l1c_1p8>;
+       vdda33-supply = <&vreg_l2b_3p07>;
+};
+
+&usb_2_qmpphy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l6b_1p2>;
+       vdda-pll-supply = <&vreg_l5b_0p88>;
+};
index 06eedbe..52cf304 100644 (file)
@@ -5,7 +5,6 @@
 
 /dts-v1/;
 
-#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "sm8350.dtsi"
 #include "pm8350.dtsi"
        status = "okay";
 };
 
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       status = "okay";
+       linux,code = <KEY_VOLUMEDOWN>;
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
diff --git a/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami-pdx214.dts b/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami-pdx214.dts
new file mode 100644 (file)
index 0000000..cc65050
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
+ */
+
+/dts-v1/;
+
+#include "sm8350-sony-xperia-sagami.dtsi"
+
+/ {
+       model = "Sony Xperia 5 III";
+       compatible = "sony,pdx214-generic", "qcom,sm8350";
+};
+
+&framebuffer {
+       width = <1080>;
+       height = <2520>;
+       stride = <(1080 * 4)>;
+};
diff --git a/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami-pdx215.dts b/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami-pdx215.dts
new file mode 100644 (file)
index 0000000..d21bbeb
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
+ */
+
+/dts-v1/;
+
+#include "sm8350-sony-xperia-sagami.dtsi"
+
+/ {
+       model = "Sony Xperia 1 III";
+       compatible = "sony,pdx215-generic", "qcom,sm8350";
+};
diff --git a/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi b/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi
new file mode 100644 (file)
index 0000000..90b13cb
--- /dev/null
@@ -0,0 +1,259 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
+ */
+
+#include "sm8350.dtsi"
+#include "pm8350.dtsi"
+#include "pm8350b.dtsi"
+#include "pm8350c.dtsi"
+#include "pmk8350.dtsi"
+#include "pmr735a.dtsi"
+#include "pmr735b.dtsi"
+
+/ {
+       /*
+        * Yes, you are correct, there is NO MORE {msm,board,pmic}-id on SM8350!
+        * Adding it will cause the bootloader to go crazy and randomly crash
+        * shortly after closing UEFI boot services.. Perhaps that has something
+        * to do with the OS running inside a VM now..?
+        */
+
+       chassis-type = "handset";
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               framebuffer: framebuffer@e1000000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0 0xe1000000 0 0x2300000>;
+
+                       /* The display, even though it's 4K, initializes at 1080-ish p */
+                       width = <1096>;
+                       height = <2560>;
+                       stride = <(1096 * 4)>;
+                       format = "a8r8g8b8";
+                       /*
+                        * That's (going to be) a lot of clocks, but it's necessary due
+                        * to unused clk cleanup & no panel driver yet
+                        */
+                       clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
+                                <&gcc GCC_DISP_SF_AXI_CLK>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               /* For reasons still unknown, GAssist key and Camera Focus/Shutter don't work.. */
+
+               vol-down {
+                       label = "Volume Down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       gpios = <&pmk8350_gpios 3 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       gpio-key,wakeup;
+               };
+       };
+
+       reserved-memory {
+               cont_splash_mem: memory@e1000000 {
+                       reg = <0 0xe1000000 0 0x2300000>;
+                       no-map;
+               };
+
+               ramoops@ffc00000 {
+                       compatible = "ramoops";
+                       reg = <0 0xffc00000 0 0x100000>;
+                       console-size = <0x40000>;
+                       record-size = <0x1000>;
+                       no-map;
+               };
+       };
+};
+
+&adsp {
+       status = "okay";
+       firmware-name = "qcom/adsp.mbn";
+};
+
+&cdsp {
+       status = "okay";
+       firmware-name = "qcom/cdsp.mbn";
+};
+
+&i2c1 {
+       status = "okay";
+       clock-frequency = <1000000>;
+
+       /* Some subset of SONY IMX663 camera sensor @ 38 */
+};
+
+&i2c2 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       /* Richwave RTC6226 FM Radio Receiver @ 64 */
+};
+
+&i2c4 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       /* Samsung Touchscreen (needs I2C GPI DMA) @ 48 */
+};
+
+&i2c11 {
+       status = "okay";
+       clock-frequency = <1000000>;
+
+       cs35l41_l: cs35l41@40 {
+               compatible = "cirrus,cs35l41";
+               reg = <0x40>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <36 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
+               cirrus,boost-peak-milliamp = <4000>;
+               cirrus,boost-ind-nanohenry = <1000>;
+               cirrus,boost-cap-microfarad = <15>;
+               cirrus,asp-sdout-hiz = <3>;
+               cirrus,gpio2-src-select = <2>;
+               cirrus,gpio2-output-enable;
+               #sound-dai-cells = <1>;
+       };
+
+       cs35l41_r: cs35l41@41 {
+               compatible = "cirrus,cs35l41";
+               reg = <0x41>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <36 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
+               cirrus,boost-peak-milliamp = <4000>;
+               cirrus,boost-ind-nanohenry = <1000>;
+               cirrus,boost-cap-microfarad = <15>;
+               cirrus,asp-sdout-hiz = <3>;
+               cirrus,gpio2-src-select = <2>;
+               cirrus,gpio2-output-enable;
+               #sound-dai-cells = <1>;
+       };
+};
+
+&i2c12 {
+       status = "okay";
+       /* Clock frequency was not specified downstream, let's park it to 100 KHz */
+       clock-frequency = <100000>;
+
+       /* AMS TCS3490 RGB+IR color sensor @ 72 */
+};
+
+&i2c13 {
+       status = "okay";
+       /* Clock frequency was not specified downstream, let's park it to 100 KHz */
+       clock-frequency = <100000>;
+
+       /* Qualcomm PM8008i/PM8008j (?) @ 8, 9, c, d */
+       /* Dialog SLG51000 CMIC @ 75 */
+};
+
+&i2c15 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       /* NXP SN1X0 NFC @ 28 */
+};
+
+&i2c17 {
+       status = "okay";
+       clock-frequency = <1000000>;
+
+       /* Cirrus Logic CS40L25A boosted haptics driver @ 40 */
+};
+
+&ipa {
+       status = "okay";
+       memory-region = <&pil_ipa_fw_mem>;
+       firmware-name = "qcom/ipa_fws.mbn";
+};
+
+&mpss {
+       status = "okay";
+       firmware-name = "qcom/modem.mbn";
+};
+
+&pmk8350_rtc {
+       status = "okay";
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       status = "okay";
+       linux,code = <KEY_VOLUMEUP>;
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&qupv3_id_2 {
+       status = "okay";
+};
+
+&slpi {
+       status = "okay";
+       firmware-name = "qcom/slpi.mbn";
+};
+
+&spi14 {
+       status = "okay";
+
+       /* NXP SN1X0 NFC Secure Element @ 0 */
+};
+
+&tlmm {
+       gpio-reserved-ranges = <44 4>;
+
+       ts_int_default: ts-int-default {
+               pin = "gpio23";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               input-enable;
+       };
+};
+
+/* BIG WARNING! DO NOT TOUCH UFS, YOUR DEVICE WILL DIE! */
+&ufs_mem_hc { status = "disabled"; };
+&ufs_mem_phy { status = "disabled"; };
+
+/* TODO: Make USB3 work (perhaps needs regulators for higher-current operation?) */
+&usb_1 {
+       status = "okay";
+
+       qcom,select-utmi-as-pipe-clk;
+};
+
+&usb_1_dwc3 {
+       dr_mode = "peripheral";
+
+       maximum-speed = "high-speed";
+       phys = <&usb_1_hsphy>;
+       phy-names = "usb2-phy";
+};
+
+&usb_1_hsphy {
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       status = "okay";
+};
index d134280..53b39e7 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-sm8350.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,sm8350.h>
 #include <dt-bindings/mailbox/qcom-ipcc.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        #power-domain-cells = <1>;
-                       clock-names = "bi_tcxo", "sleep_clk";
-                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>;
+                       clock-names = "bi_tcxo",
+                                     "sleep_clk",
+                                     "pcie_0_pipe_clk",
+                                     "pcie_1_pipe_clk",
+                                     "ufs_card_rx_symbol_0_clk",
+                                     "ufs_card_rx_symbol_1_clk",
+                                     "ufs_card_tx_symbol_0_clk",
+                                     "ufs_phy_rx_symbol_0_clk",
+                                     "ufs_phy_rx_symbol_1_clk",
+                                     "ufs_phy_tx_symbol_0_clk",
+                                     "usb3_phy_wrapper_gcc_usb30_pipe_clk",
+                                     "usb3_uni_phy_sec_gcc_usb30_pipe_clk";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&sleep_clk>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>;
                };
 
                ipcc: mailbox@408000 {
                        #mbox-cells = <2>;
                };
 
+               qup_opp_table_100mhz: qup-100mhz-opp-table {
+                       compatible = "operating-points-v2";
+
+                       opp-50000000 {
+                               opp-hz = /bits/ 64 <50000000>;
+                               required-opps = <&rpmhpd_opp_min_svs>;
+                       };
+
+                       opp-75000000 {
+                               opp-hz = /bits/ 64 <75000000>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
+                       };
+
+                       opp-100000000 {
+                               opp-hz = /bits/ 64 <100000000>;
+                               required-opps = <&rpmhpd_opp_svs>;
+                       };
+               };
+
+               qup_opp_table_120mhz: qup-120mhz-opp-table {
+                       compatible = "operating-points-v2";
+
+                       opp-50000000 {
+                               opp-hz = /bits/ 64 <50000000>;
+                               required-opps = <&rpmhpd_opp_min_svs>;
+                       };
+
+                       opp-75000000 {
+                               opp-hz = /bits/ 64 <75000000>;
+                               required-opps = <&rpmhpd_opp_low_svs>;
+                       };
+
+                       opp-120000000 {
+                               opp-hz = /bits/ 64 <120000000>;
+                               required-opps = <&rpmhpd_opp_svs>;
+                       };
+               };
+
+               qupv3_id_2: geniqup@8c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x008c0000 0x0 0x6000>;
+                       clock-names = "m-ahb", "s-ahb";
+                       clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
+                       iommus = <&apps_smmu 0x5e3 0x0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       status = "disabled";
+
+                       i2c14: i2c@880000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00880000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c14_default>;
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi14: spi@880000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00880000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c15: i2c@884000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00884000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c15_default>;
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi15: spi@884000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00884000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c16: i2c@888000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00888000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c16_default>;
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi16: spi@888000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00888000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c17: i2c@88c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x0088c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c17_default>;
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi17: spi@88c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x0088c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       /* QUP no. 18 seems to be strictly SPI/UART-only */
+
+                       spi18: spi@890000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00890000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart18: serial@890000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00890000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_uart18_default>;
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               status = "disabled";
+                       };
+
+                       i2c19: i2c@894000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00894000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c19_default>;
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi19: spi@894000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00894000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+
                qupv3_id_0: geniqup@9c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0x0 0x009c0000 0x0 0x6000>;
                        clock-names = "m-ahb", "s-ahb";
                        clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
                                 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       iommus = <&apps_smmu 0x5a3 0>;
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
                        status = "disabled";
 
+                       i2c0: i2c@980000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00980000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c0_default>;
+                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi0: spi@980000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00980000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@984000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00984000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c1_default>;
+                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi1: spi@984000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00984000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@988000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00988000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c2_default>;
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi2: spi@988000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00988000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
                        uart2: serial@98c000 {
                                compatible = "qcom,geni-debug-uart";
                                reg = <0 0x0098c000 0 0x4000>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_uart3_default_state>;
                                interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       /* QUP no. 3 seems to be strictly SPI-only */
+
+                       spi3: spi@98c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x0098c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@990000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00990000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c4_default>;
+                               interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi4: spi@990000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00990000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@994000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00994000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c5_default>;
+                               interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi5: spi@994000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00994000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c6: i2c@998000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00998000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c6_default>;
+                               interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi6: spi@998000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00998000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart6: serial@998000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00998000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_uart6_default>;
+                               interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               status = "disabled";
+                       };
+
+                       i2c7: i2c@99c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x0099c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c7_default>;
+                               interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi7: spi@99c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x0099c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        clock-names = "m-ahb", "s-ahb";
                        clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
                                 <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+                       iommus = <&apps_smmu 0x43 0>;
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
                        status = "disabled";
 
+                       i2c8: i2c@a80000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a80000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c8_default>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi8: spi@a80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a80000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_120mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c9: i2c@a84000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a84000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c9_default>;
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi9: spi@a84000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a84000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c10: i2c@a88000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a88000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c10_default>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi10: spi@a88000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a88000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c11: i2c@a8c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a8c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c11_default>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi11: spi@a8c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a8c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c12: i2c@a90000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a90000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c12_default>;
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       spi12: spi@a90000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a90000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
                        i2c13: i2c@a94000 {
                                compatible = "qcom,geni-i2c";
                                reg = <0 0x00a94000 0 0x4000>;
                                clock-names = "se";
                                clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
                                pinctrl-names = "default";
-                               pinctrl-0 = <&qup_i2c13_default_state>;
+                               pinctrl-0 = <&qup_i2c13_default>;
                                interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        };
+
+                       spi13: spi@a94000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00a94000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               power-domains = <&rpmhpd SM8350_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
                apps_smmu: iommu@15000000 {
                        reg = <0 0x0c263000 0 0x1ff>, /* TM */
                              <0 0x0c222000 0 0x8>; /* SROT */
                        #qcom,sensors = <15>;
-                       interrupts = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
                                     <&pdc 28 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "uplow", "critical";
                        #thermal-sensor-cells = <1>;
                        reg = <0 0x0c265000 0 0x1ff>, /* TM */
                              <0 0x0c223000 0 0x8>; /* SROT */
                        #qcom,sensors = <14>;
-                       interrupts = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
                                     <&pdc 29 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "uplow", "critical";
                        #thermal-sensor-cells = <1>;
                                };
                        };
 
-                       qup_i2c13_default_state: qup-i2c13-default-state {
-                               mux {
-                                       pins = "gpio0", "gpio1";
-                                       function = "qup13";
-                               };
+                       qup_uart6_default: qup-uart6-default {
+                               pins = "gpio30", "gpio31";
+                               function = "qup6";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
 
-                               config {
-                                       pins = "gpio0", "gpio1";
-                                       drive-strength = <2>;
-                                       bias-pull-up;
-                               };
+                       qup_uart18_default: qup-uart18-default {
+                               pins = "gpio58", "gpio59";
+                               function = "qup18";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_i2c0_default: qup-i2c0-default {
+                               pins = "gpio4", "gpio5";
+                               function = "qup0";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c1_default: qup-i2c1-default {
+                               pins = "gpio8", "gpio9";
+                               function = "qup1";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c2_default: qup-i2c2-default {
+                               pins = "gpio12", "gpio13";
+                               function = "qup2";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c4_default: qup-i2c4-default {
+                               pins = "gpio20", "gpio21";
+                               function = "qup4";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c5_default: qup-i2c5-default {
+                               pins = "gpio24", "gpio25";
+                               function = "qup5";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c6_default: qup-i2c6-default {
+                               pins = "gpio28", "gpio29";
+                               function = "qup6";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c7_default: qup-i2c7-default {
+                               pins = "gpio32", "gpio33";
+                               function = "qup7";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_i2c8_default: qup-i2c8-default {
+                               pins = "gpio36", "gpio37";
+                               function = "qup8";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c9_default: qup-i2c9-default {
+                               pins = "gpio40", "gpio41";
+                               function = "qup9";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c10_default: qup-i2c10-default {
+                               pins = "gpio44", "gpio45";
+                               function = "qup10";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c11_default: qup-i2c11-default {
+                               pins = "gpio48", "gpio49";
+                               function = "qup11";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c12_default: qup-i2c12-default {
+                               pins = "gpio52", "gpio53";
+                               function = "qup12";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c13_default: qup-i2c13-default {
+                               pins = "gpio0", "gpio1";
+                               function = "qup13";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c14_default: qup-i2c14-default {
+                               pins = "gpio56", "gpio57";
+                               function = "qup14";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_i2c15_default: qup-i2c15-default {
+                               pins = "gpio60", "gpio61";
+                               function = "qup15";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_i2c16_default: qup-i2c16-default {
+                               pins = "gpio64", "gpio65";
+                               function = "qup16";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_i2c17_default: qup-i2c17-default {
+                               pins = "gpio72", "gpio73";
+                               function = "qup17";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_i2c19_default: qup-i2c19-default {
+                               pins = "gpio76", "gpio77";
+                               function = "qup19";
+                               drive-strength = <2>;
+                               bias-disable;
                        };
                };
 
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
                        interrupt-controller;
+                       #redistributor-regions = <1>;
+                       redistributor-stride = <0 0x20000>;
                        reg = <0x0 0x17a00000 0x0 0x10000>,     /* GICD */
                              <0x0 0x17a60000 0x0 0x100000>;    /* GICR * 8 */
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               system-cache-controller@9200000 {
+                       compatible = "qcom,sm8350-llcc";
+                       reg = <0 0x09200000 0 0x1d0000>, <0 0x09600000 0 0x50000>;
+                       reg-names = "llcc_base", "llcc_broadcast_base";
+               };
+
                usb_1: usb@a6f8800 {
                        compatible = "qcom,sm8350-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
                        };
                };
 
-               camera-thermal-bottom {
+               cam-thermal-bottom {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
 
diff --git a/arch/arm64/boot/dts/qcom/sm8450-qrd.dts b/arch/arm64/boot/dts/qcom/sm8450-qrd.dts
new file mode 100644 (file)
index 0000000..b68ab24
--- /dev/null
@@ -0,0 +1,398 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8450.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. SM8450 QRD";
+       compatible = "qcom,sm8450-qrd", "qcom,sm8450";
+
+       aliases {
+               serial0 = &uart7;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&apps_rsc {
+       pm8350-rpmh-regulators {
+               compatible = "qcom,pm8350-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-s9-supply = <&vph_pwr>;
+               vdd-s10-supply = <&vph_pwr>;
+               vdd-s11-supply = <&vph_pwr>;
+               vdd-s12-supply = <&vph_pwr>;
+
+               vdd-l1-l4-supply = <&vreg_s11b_0p95>;
+               vdd-l2-l7-supply = <&vreg_bob>;
+               vdd-l3-l5-supply = <&vreg_bob>;
+               vdd-l6-l9-l10-supply = <&vreg_s12b_1p25>;
+               vdd-l8-supply = <&vreg_s2h_0p95>;
+
+               vreg_s10b_1p8: smps10 {
+                       regulator-name = "vreg_s10b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               vreg_s11b_0p95: smps11 {
+                       regulator-name = "vreg_s11b_0p95";
+                       regulator-min-microvolt = <848000>;
+                       regulator-max-microvolt = <1104000>;
+               };
+
+               vreg_s12b_1p25: smps12 {
+                       regulator-name = "vreg_s12b_1p25";
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1400000>;
+               };
+
+               vreg_l1b_0p91: ldo1 {
+                       regulator-name = "vreg_l1b_0p91";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p07: ldo2 {
+                       regulator-name = "vreg_l2b_3p07";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3b_0p9: ldo3 {
+                       regulator-name = "vreg_l3b_0p9";
+                       regulator-min-microvolt = <904000>;
+                       regulator-max-microvolt = <904000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_0p88: ldo5 {
+                       regulator-name = "vreg_l5b_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <888000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p2: ldo6 {
+                       regulator-name = "vreg_l6b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_2p5: ldo7 {
+                       regulator-name = "vreg_l7b_2p5";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_1p2: ldo9 {
+                       regulator-name = "vreg_l9b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       pm8350c-rpmh-regulators {
+               compatible = "qcom,pm8350c-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-s9-supply = <&vph_pwr>;
+               vdd-s10-supply = <&vph_pwr>;
+
+               vdd-l1-l12-supply = <&vreg_bob>;
+               vdd-l2-l8-supply = <&vreg_bob>;
+               vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
+               vdd-l6-l9-l11-supply = <&vreg_bob>;
+
+               vdd-bob-supply = <&vph_pwr>;
+
+               vreg_s1c_1p86: smps1 {
+                       regulator-name = "vreg_s1c_1p86";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2024000>;
+               };
+
+               vreg_s10c_1p05: smps10 {
+                       regulator-name = "vreg_s10c_1p05";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+               };
+
+               vreg_bob: bob {
+                       regulator-name = "vreg_bob";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l1c_1p8: ldo1 {
+                       regulator-name = "vreg_l1c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_3p0: ldo3 {
+                       regulator-name = "vreg_l3c_3p0";
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c_1p8: ldo4 {
+                       regulator-name = "vreg_l4c_1p8";
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5c_1p8: ldo5 {
+                       regulator-name = "vreg_l5c_1p8";
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6c_1p8: ldo6 {
+                       regulator-name = "vreg_l6c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c_3p0: ldo7 {
+                       regulator-name = "vreg_l7c_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8c_1p8: ldo8 {
+                       regulator-name = "vreg_l8c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c_2p96: ldo9 {
+                       regulator-name = "vreg_l9c_2p96";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12c_1p8: ldo12 {
+                       regulator-name = "vreg_l12c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1968000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13c_3p0: ldo13 {
+                       regulator-name = "vreg_l13c_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       pm8450-rpmh-regulators {
+               compatible = "qcom,pm8450-rpmh-regulators";
+               qcom,pmic-id = "h";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+
+               vdd-l2-supply = <&vreg_bob>;
+               vdd-l3-supply = <&vreg_bob>;
+               vdd-l4-supply = <&vreg_bob>;
+
+               vreg_s2h_0p95: smps2 {
+                       regulator-name = "vreg_s2h_0p95";
+                       regulator-min-microvolt = <848000>;
+                       regulator-max-microvolt = <1104000>;
+               };
+
+               vreg_s3h_0p5: smps3 {
+                       regulator-name = "vreg_s3h_0p5";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <500000>;
+               };
+
+               vreg_l2h_0p91: ldo2 {
+                       regulator-name = "vreg_l2h_0p91";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3h_0p91: ldo3 {
+                       regulator-name = "vreg_l3h_0p91";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+       };
+
+       pmr735a-rpmh-regulators {
+               compatible = "qcom,pmr735a-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+
+               vdd-l1-l2-supply = <&vreg_s2e_0p85>;
+               vdd-l3-supply = <&vreg_s1e_1p25>;
+               vdd-l4-supply = <&vreg_s1c_1p86>;
+               vdd-l5-l6-supply = <&vreg_s1c_1p86>;
+               vdd-l7-bob-supply = <&vreg_bob>;
+
+               vreg_s1e_1p25: smps1 {
+                       regulator-name = "vreg_s1e_1p25";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1296000>;
+               };
+
+               vreg_s2e_0p85: smps2 {
+                       regulator-name = "vreg_s2e_0p85";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1040000>;
+               };
+
+               vreg_l1e_0p8: ldo1 {
+                       regulator-name = "vreg_l1e_0p8";
+                       regulator-min-microvolt = <800000>;
+                       regulator-max-microvolt = <800000>;
+               };
+
+               vreg_l2e_0p8: ldo2 {
+                       regulator-name = "vreg_l2e_0p8";
+                       regulator-min-microvolt = <800000>;
+                       regulator-max-microvolt = <800000>;
+               };
+
+               vreg_l3e_1p2: ldo3 {
+                       regulator-name = "vreg_l3e_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               vreg_l4e_1p7: ldo4 {
+                       regulator-name = "vreg_l4e_1p7";
+                       regulator-min-microvolt = <1776000>;
+                       regulator-max-microvolt = <1776000>;
+               };
+
+               vreg_l5e_0p88: ldo5 {
+                       regulator-name = "vreg_l5e_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+               };
+
+               vreg_l6e_1p2: ldo6 {
+                       regulator-name = "vreg_l6e_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+       };
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <28 4>, <36 4>;
+};
+
+&uart7 {
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       status = "okay";
+
+       reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l7b_2p5>;
+       vcc-max-microamp = <1100000>;
+       vccq-supply = <&vreg_l9b_1p2>;
+       vccq-max-microamp = <1200000>;
+};
+
+&ufs_mem_phy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l5b_0p88>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+       vdda-max-microamp = <173000>;
+       vdda-pll-max-microamp = <24900>;
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+       status = "okay";
+
+       vdda-pll-supply = <&vreg_l5b_0p88>;
+       vdda18-supply = <&vreg_l1c_1p8>;
+       vdda33-supply = <&vreg_l2b_3p07>;
+};
+
+&usb_1_qmpphy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l6b_1p2>;
+       vdda-pll-supply = <&vreg_l1b_0p91>;
+};
diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
new file mode 100644 (file)
index 0000000..10c25ad
--- /dev/null
@@ -0,0 +1,1115 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2021, Linaro Limited
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/qcom,gcc-sm8450.h>
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+
+/ {
+       interrupt-parent = <&intc>;
+
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       chosen { };
+
+       clocks {
+               xo_board: xo-board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <76800000>;
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32000>;
+               };
+       };
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               CPU0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo780";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_0>;
+                       power-domains = <&CPU_PD0>;
+                       power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+                       L2_0: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                               L3_0: l3-cache {
+                                     compatible = "cache";
+                               };
+                       };
+               };
+
+               CPU1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo780";
+                       reg = <0x0 0x100>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_100>;
+                       power-domains = <&CPU_PD1>;
+                       power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+                       L2_100: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo780";
+                       reg = <0x0 0x200>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_200>;
+                       power-domains = <&CPU_PD2>;
+                       power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+                       L2_200: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo780";
+                       reg = <0x0 0x300>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_300>;
+                       power-domains = <&CPU_PD3>;
+                       power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+                       L2_300: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo780";
+                       reg = <0x0 0x400>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_400>;
+                       power-domains = <&CPU_PD4>;
+                       power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+                       L2_400: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo780";
+                       reg = <0x0 0x500>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_500>;
+                       power-domains = <&CPU_PD5>;
+                       power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+                       L2_500: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+
+               };
+
+               CPU6: cpu@600 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo780";
+                       reg = <0x0 0x600>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_600>;
+                       power-domains = <&CPU_PD6>;
+                       power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+                       L2_600: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               CPU7: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "qcom,kryo780";
+                       reg = <0x0 0x700>;
+                       enable-method = "psci";
+                       next-level-cache = <&L2_700>;
+                       power-domains = <&CPU_PD7>;
+                       power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 2>;
+                       L2_700: l2-cache {
+                             compatible = "cache";
+                             next-level-cache = <&L3_0>;
+                       };
+               };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&CPU0>;
+                               };
+
+                               core1 {
+                                       cpu = <&CPU1>;
+                               };
+
+                               core2 {
+                                       cpu = <&CPU2>;
+                               };
+
+                               core3 {
+                                       cpu = <&CPU3>;
+                               };
+
+                               core4 {
+                                       cpu = <&CPU4>;
+                               };
+
+                               core5 {
+                                       cpu = <&CPU5>;
+                               };
+
+                               core6 {
+                                       cpu = <&CPU6>;
+                               };
+
+                               core7 {
+                                       cpu = <&CPU7>;
+                               };
+                       };
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "silver-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <274>;
+                               exit-latency-us = <480>;
+                               min-residency-us = <3934>;
+                               local-timer-stop;
+                       };
+
+                       BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "gold-rail-power-collapse";
+                               arm,psci-suspend-param = <0x40000004>;
+                               entry-latency-us = <327>;
+                               exit-latency-us = <1502>;
+                               min-residency-us = <4488>;
+                               local-timer-stop;
+                       };
+               };
+
+               domain-idle-states {
+                       CLUSTER_SLEEP_0: cluster-sleep-0 {
+                               compatible = "domain-idle-state";
+                               idle-state-name = "cluster-l3-off";
+                               arm,psci-suspend-param = <0x4100c344>;
+                               entry-latency-us = <584>;
+                               exit-latency-us = <2332>;
+                               min-residency-us = <6118>;
+                               local-timer-stop;
+                       };
+
+                       CLUSTER_SLEEP_1: cluster-sleep-1 {
+                               compatible = "domain-idle-state";
+                               idle-state-name = "cluster-power-collapse";
+                               arm,psci-suspend-param = <0x4100c344>;
+                               entry-latency-us = <2893>;
+                               exit-latency-us = <4023>;
+                               min-residency-us = <9987>;
+                               local-timer-stop;
+                       };
+               };
+       };
+
+       firmware {
+               scm: scm {
+                       compatible = "qcom,scm-sm8450", "qcom,scm";
+                       #reset-cells = <1>;
+               };
+       };
+
+       memory@a0000000 {
+               device_type = "memory";
+               /* We expect the bootloader to fill in the size */
+               reg = <0x0 0xa0000000 0x0 0x0>;
+       };
+
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+
+               CPU_PD0: cpu0 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD1: cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD2: cpu2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD3: cpu3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
+               };
+
+               CPU_PD4: cpu4 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CPU_PD5: cpu5 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CPU_PD6: cpu6 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CPU_PD7: cpu7 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&BIG_CPU_SLEEP_0>;
+               };
+
+               CLUSTER_PD: cpu-cluster0 {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_SLEEP_0>;
+               };
+       };
+
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               hyp_mem: memory@80000000 {
+                       reg = <0x0 0x80000000 0x0 0x600000>;
+                       no-map;
+               };
+
+               xbl_dt_log_mem: memory@80600000 {
+                       reg = <0x0 0x80600000 0x0 0x40000>;
+                       no-map;
+               };
+
+               xbl_ramdump_mem: memory@80640000 {
+                       reg = <0x0 0x80640000 0x0 0x180000>;
+                       no-map;
+               };
+
+               xbl_sc_mem: memory@807c0000 {
+                       reg = <0x0 0x807c0000 0x0 0x40000>;
+                       no-map;
+               };
+
+               aop_image_mem: memory@80800000 {
+                       reg = <0x0 0x80800000 0x0 0x60000>;
+                       no-map;
+               };
+
+               aop_cmd_db_mem: memory@80860000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0x0 0x80860000 0x0 0x20000>;
+                       no-map;
+               };
+
+               aop_config_mem: memory@80880000 {
+                       reg = <0x0 0x80880000 0x0 0x20000>;
+                       no-map;
+               };
+
+               tme_crash_dump_mem: memory@808a0000 {
+                       reg = <0x0 0x808a0000 0x0 0x40000>;
+                       no-map;
+               };
+
+               tme_log_mem: memory@808e0000 {
+                       reg = <0x0 0x808e0000 0x0 0x4000>;
+                       no-map;
+               };
+
+               uefi_log_mem: memory@808e4000 {
+                       reg = <0x0 0x808e4000 0x0 0x10000>;
+                       no-map;
+               };
+
+               /* secdata region can be reused by apps */
+               smem: memory@80900000 {
+                       compatible = "qcom,smem";
+                       reg = <0x0 0x80900000 0x0 0x200000>;
+                       hwlocks = <&tcsr_mutex 3>;
+                       no-map;
+               };
+
+               cpucp_fw_mem: memory@80b00000 {
+                       reg = <0x0 0x80b00000 0x0 0x100000>;
+                       no-map;
+               };
+
+               cdsp_secure_heap: memory@80c00000 {
+                       reg = <0x0 0x80c00000 0x0 0x4600000>;
+                       no-map;
+               };
+
+               camera_mem: memory@85200000 {
+                       reg = <0x0 0x85200000 0x0 0x500000>;
+                       no-map;
+               };
+
+               video_mem: memory@85700000 {
+                       reg = <0x0 0x85700000 0x0 0x700000>;
+                       no-map;
+               };
+
+               adsp_mem: memory@85e00000 {
+                       reg = <0x0 0x85e00000 0x0 0x2100000>;
+                       no-map;
+               };
+
+               slpi_mem: memory@88000000 {
+                       reg = <0x0 0x88000000 0x0 0x1900000>;
+                       no-map;
+               };
+
+               cdsp_mem: memory@89900000 {
+                       reg = <0x0 0x89900000 0x0 0x2000000>;
+                       no-map;
+               };
+
+               ipa_fw_mem: memory@8b900000 {
+                       reg = <0x0 0x8b900000 0x0 0x10000>;
+                       no-map;
+               };
+
+               ipa_gsi_mem: memory@8b910000 {
+                       reg = <0x0 0x8b910000 0x0 0xa000>;
+                       no-map;
+               };
+
+               gpu_micro_code_mem: memory@8b91a000 {
+                       reg = <0x0 0x8b91a000 0x0 0x2000>;
+                       no-map;
+               };
+
+               spss_region_mem: memory@8ba00000 {
+                       reg = <0x0 0x8ba00000 0x0 0x180000>;
+                       no-map;
+               };
+
+               /* First part of the "SPU secure shared memory" region */
+               spu_tz_shared_mem: memory@8bb80000 {
+                       reg = <0x0 0x8bb80000 0x0 0x60000>;
+                       no-map;
+               };
+
+               /* Second part of the "SPU secure shared memory" region */
+               spu_modem_shared_mem: memory@8bbe0000 {
+                       reg = <0x0 0x8bbe0000 0x0 0x20000>;
+                       no-map;
+               };
+
+               mpss_mem: memory@8bc00000 {
+                       reg = <0x0 0x8bc00000 0x0 0x13200000>;
+                       no-map;
+               };
+
+               cvp_mem: memory@9ee00000 {
+                       reg = <0x0 0x9ee00000 0x0 0x700000>;
+                       no-map;
+               };
+
+               global_sync_mem: memory@a6f00000 {
+                       reg = <0x0 0xa6f00000 0x0 0x100000>;
+                       no-map;
+               };
+
+               /* uefi region can be reused by APPS */
+
+               /* Linux kernel image is loaded at 0xa0000000 */
+
+               oem_vm_mem: memory@bb000000 {
+                       reg = <0x0 0xbb000000 0x0 0x5000000>;
+                       no-map;
+               };
+
+               mte_mem: memory@c0000000 {
+                       reg = <0x0 0xc0000000 0x0 0x20000000>;
+                       no-map;
+               };
+
+               qheebsp_reserved_mem: memory@e0000000 {
+                       reg = <0x0 0xe0000000 0x0 0x600000>;
+                       no-map;
+               };
+
+               cpusys_vm_mem: memory@e0600000 {
+                       reg = <0x0 0xe0600000 0x0 0x400000>;
+                       no-map;
+               };
+
+               hyp_reserved_mem: memory@e0a00000 {
+                       reg = <0x0 0xe0a00000 0x0 0x100000>;
+                       no-map;
+               };
+
+               trust_ui_vm_mem: memory@e0b00000 {
+                       reg = <0x0 0xe0b00000 0x0 0x4af3000>;
+                       no-map;
+               };
+
+               trust_ui_vm_qrtr: memory@e55f3000 {
+                       reg = <0x0 0xe55f3000 0x0 0x9000>;
+                       no-map;
+               };
+
+               trust_ui_vm_vblk0_ring: memory@e55fc000 {
+                       reg = <0x0 0xe55fc000 0x0 0x4000>;
+                       no-map;
+               };
+
+               trust_ui_vm_swiotlb: memory@e5600000 {
+                       reg = <0x0 0xe5600000 0x0 0x100000>;
+                       no-map;
+               };
+
+               tz_stat_mem: memory@e8800000 {
+                       reg = <0x0 0xe8800000 0x0 0x100000>;
+                       no-map;
+               };
+
+               tags_mem: memory@e8900000 {
+                       reg = <0x0 0xe8900000 0x0 0x1200000>;
+                       no-map;
+               };
+
+               qtee_mem: memory@e9b00000 {
+                       reg = <0x0 0xe9b00000 0x0 0x500000>;
+                       no-map;
+               };
+
+               trusted_apps_mem: memory@ea000000 {
+                       reg = <0x0 0xea000000 0x0 0x3900000>;
+                       no-map;
+               };
+
+               trusted_apps_ext_mem: memory@ed900000 {
+                       reg = <0x0 0xed900000 0x0 0x3b00000>;
+                       no-map;
+               };
+       };
+
+       soc: soc@0 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges = <0 0 0 0 0x10 0>;
+               dma-ranges = <0 0 0 0 0x10 0>;
+               compatible = "simple-bus";
+
+               gcc: clock-controller@100000 {
+                       compatible = "qcom,gcc-sm8450";
+                       reg = <0x0 0x00100000 0x0 0x1f4200>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       clock-names = "bi_tcxo", "sleep_clk";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>;
+               };
+
+               qupv3_id_0: geniqup@9c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x009c0000 0x0 0x2000>;
+                       clock-names = "m-ahb", "s-ahb";
+                       clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       status = "disabled";
+
+                       uart7: serial@99c000 {
+                               compatible = "qcom,geni-debug-uart";
+                               reg = <0 0x0099c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_uart7_tx>, <&qup_uart7_rx>;
+                               interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+
+               qupv3_id_1: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x00ac0000 0x0 0x6000>;
+                       clock-names = "m-ahb", "s-ahb";
+                       clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       status = "disabled";
+
+                       i2c13: i2c@a94000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a94000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c13_data_clk>;
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c14: i2c@a98000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a98000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c14_data_clk>;
+                               interrupts = <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+
+               tcsr_mutex: hwlock@1f40000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0x0 0x01f40000 0x0 0x40000>;
+                       #hwlock-cells = <1>;
+               };
+
+               usb_1_hsphy: phy@88e3000 {
+                       compatible = "qcom,sm8450-usb-hs-phy",
+                                    "qcom,usb-snps-hs-7nm-phy";
+                       reg = <0 0x088e3000 0 0x400>;
+                       status = "disabled";
+                       #phy-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+               };
+
+               usb_1_qmpphy: phy-wrapper@88e9000 {
+                       compatible = "qcom,sm8450-qmp-usb3-phy";
+                       reg = <0 0x088e9000 0 0x200>,
+                             <0 0x088e8000 0 0x20>;
+                       status = "disabled";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
+                       clock-names = "aux", "ref_clk_src", "com_aux";
+
+                       resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
+                                <&gcc GCC_USB3_PHY_PRIM_BCR>;
+                       reset-names = "phy", "common";
+
+                       usb_1_ssphy: phy@88e9200 {
+                               reg = <0 0x088e9200 0 0x200>,
+                                     <0 0x088e9400 0 0x200>,
+                                     <0 0x088e9c00 0 0x400>,
+                                     <0 0x088e9600 0 0x200>,
+                                     <0 0x088e9800 0 0x200>,
+                                     <0 0x088e9a00 0 0x100>;
+                               #phy-cells = <0>;
+                               #clock-cells = <1>;
+                               clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
+                               clock-names = "pipe0";
+                               clock-output-names = "usb3_phy_pipe_clk_src";
+                       };
+               };
+
+               pdc: interrupt-controller@b220000 {
+                       compatible = "qcom,sm8450-pdc", "qcom,pdc";
+                       reg = <0 0x0b220000 0 0x30000>, <0 0x174000f0 0 0x64>;
+                       qcom,pdc-ranges = <0 480 12>, <14 494 24>, <40 520 54>,
+                                         <94 609 31>, <125 63 1>, <126 716 12>;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&intc>;
+                       interrupt-controller;
+               };
+
+               tlmm: pinctrl@f100000 {
+                       compatible = "qcom,sm8450-tlmm";
+                       reg = <0 0x0f100000 0 0x300000>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-ranges = <&tlmm 0 0 211>;
+                       wakeup-parent = <&pdc>;
+
+                       qup_i2c13_data_clk: qup-i2c13-data-clk {
+                               pins = "gpio48", "gpio49";
+                               function = "qup13";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c14_data_clk: qup-i2c14-data-clk {
+                               pins = "gpio52", "gpio53";
+                               function = "qup14";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_uart7_rx: qup-uart7-rx {
+                               pins = "gpio26";
+                               function = "qup7";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_uart7_tx: qup-uart7-tx {
+                               pins = "gpio27";
+                               function = "qup7";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+
+               apps_smmu: iommu@15000000 {
+                       compatible = "qcom,sm8450-smmu-500", "arm,mmu-500";
+                       reg = <0 0x15000000 0 0x100000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <2>;
+                       interrupts =    <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 707 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 690 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 691 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 692 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 693 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 695 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 696 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               intc: interrupt-controller@17100000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       #redistributor-regions = <1>;
+                       redistributor-stride = <0x0 0x40000>;
+                       reg = <0x0 0x17100000 0x0 0x10000>,     /* GICD */
+                             <0x0 0x17180000 0x0 0x200000>;    /* GICR * 8 */
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               timer@17420000 {
+                       compatible = "arm,armv7-timer-mem";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       reg = <0x0 0x17420000 0x0 0x1000>;
+                       clock-frequency = <19200000>;
+
+                       frame@17421000 {
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17421000 0x0 0x1000>,
+                                     <0x0 0x17422000 0x0 0x1000>;
+                       };
+
+                       frame@17423000 {
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17423000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17425000 {
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17425000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17427000 {
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17427000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17429000 {
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17429000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@1742b000 {
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x1742b000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@1742d000 {
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x1742d000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+               };
+
+               apps_rsc: rsc@17a00000 {
+                       label = "apps_rsc";
+                       compatible = "qcom,rpmh-rsc";
+                       reg = <0x0 0x17a00000 0x0 0x10000>,
+                             <0x0 0x17a10000 0x0 0x10000>,
+                             <0x0 0x17a20000 0x0 0x10000>,
+                             <0x0 0x17a30000 0x0 0x10000>;
+                       reg-names = "drv-0", "drv-1", "drv-2", "drv-3";
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,tcs-offset = <0xd00>;
+                       qcom,drv-id = <2>;
+                       qcom,tcs-config = <ACTIVE_TCS  3>, <SLEEP_TCS   2>,
+                                         <WAKE_TCS    2>, <CONTROL_TCS 0>;
+
+                       apps_bcm_voter: bcm-voter {
+                               compatible = "qcom,bcm-voter";
+                       };
+
+                       rpmhcc: clock-controller {
+                               compatible = "qcom,sm8450-rpmh-clk";
+                               #clock-cells = <1>;
+                               clock-names = "xo";
+                               clocks = <&xo_board>;
+                       };
+
+                       rpmhpd: power-controller {
+                               compatible = "qcom,sm8450-rpmhpd";
+                               #power-domain-cells = <1>;
+                               operating-points-v2 = <&rpmhpd_opp_table>;
+
+                               rpmhpd_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       rpmhpd_opp_ret: opp1 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
+                                       };
+
+                                       rpmhpd_opp_min_svs: opp2 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+                                       };
+
+                                       rpmhpd_opp_low_svs: opp3 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs: opp4 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs_l1: opp5 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom: opp6 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                                       };
+
+                                       rpmhpd_opp_nom_l1: opp7 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom_l2: opp8 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
+                                       };
+
+                                       rpmhpd_opp_turbo: opp9 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l1: opp10 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       };
+                               };
+                       };
+               };
+
+               cpufreq_hw: cpufreq@17d91000 {
+                       compatible = "qcom,sm8450-cpufreq-epss", "qcom,cpufreq-epss";
+                       reg = <0 0x17d91000 0 0x1000>,
+                             <0 0x17d92000 0 0x1000>,
+                             <0 0x17d93000 0 0x1000>;
+                       reg-names = "freq-domain0", "freq-domain1", "freq-domain2";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>;
+                       clock-names = "xo", "alternate";
+                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dcvsh-irq-0", "dcvsh-irq-1", "dcvsh-irq-2";
+                       #freq-domain-cells = <1>;
+               };
+
+               ufs_mem_hc: ufshc@1d84000 {
+                       compatible = "qcom,sm8450-ufshc", "qcom,ufshc",
+                                    "jedec,ufs-2.0";
+                       reg = <0 0x01d84000 0 0x3000>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&ufs_mem_phy_lanes>;
+                       phy-names = "ufsphy";
+                       lanes-per-direction = <2>;
+                       #reset-cells = <1>;
+                       resets = <&gcc GCC_UFS_PHY_BCR>;
+                       reset-names = "rst";
+
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
+                       iommus = <&apps_smmu 0xe0 0x0>;
+
+                       clock-names =
+                               "core_clk",
+                               "bus_aggr_clk",
+                               "iface_clk",
+                               "core_clk_unipro",
+                               "ref_clk",
+                               "tx_lane0_sync_clk",
+                               "rx_lane0_sync_clk",
+                               "rx_lane1_sync_clk";
+                       clocks =
+                               <&gcc GCC_UFS_PHY_AXI_CLK>,
+                               <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                               <&gcc GCC_UFS_PHY_AHB_CLK>,
+                               <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
+                               <&rpmhcc RPMH_CXO_CLK>,
+                               <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
+                               <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
+                               <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+                       freq-table-hz =
+                               <75000000 300000000>,
+                               <0 0>,
+                               <0 0>,
+                               <75000000 300000000>,
+                               <75000000 300000000>,
+                               <0 0>,
+                               <0 0>,
+                               <0 0>;
+                       status = "disabled";
+               };
+
+               ufs_mem_phy: phy@1d87000 {
+                       compatible = "qcom,sm8450-qmp-ufs-phy";
+                       reg = <0 0x01d87000 0 0xe10>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clock-names = "ref", "ref_aux", "qref";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
+                                <&gcc GCC_UFS_0_CLKREF_EN>;
+
+                       resets = <&ufs_mem_hc 0>;
+                       reset-names = "ufsphy";
+                       status = "disabled";
+
+                       ufs_mem_phy_lanes: lanes@1d87400 {
+                               reg = <0 0x01d87400 0 0x108>,
+                                     <0 0x01d87600 0 0x1e0>,
+                                     <0 0x01d87c00 0 0x1dc>,
+                                     <0 0x01d87800 0 0x108>,
+                                     <0 0x01d87a00 0 0x1e0>;
+                               #phy-cells = <0>;
+                               #clock-cells = <0>;
+                       };
+               };
+
+               usb_1: usb@a6f8800 {
+                       compatible = "qcom,sm8450-dwc3", "qcom,dwc3";
+                       reg = <0 0x0a6f8800 0 0x400>;
+                       status = "disabled";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                <&gcc GCC_USB30_PRIM_SLEEP_CLK>;
+                       clock-names = "cfg_noc", "core", "iface", "mock_utmi",
+                                     "sleep";
+
+                       assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_PRIM_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hs_phy_irq", "dp_hs_phy_irq",
+                                         "dm_hs_phy_irq", "ss_phy_irq";
+
+                       power-domains = <&gcc USB30_PRIM_GDSC>;
+
+                       resets = <&gcc GCC_USB30_PRIM_BCR>;
+
+                       usb_1_dwc3: usb@a600000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a600000 0 0xcd00>;
+                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x0 0x0>;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                       };
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+               clock-frequency = <19200000>;
+       };
+};
index d1c5c21..5bc8065 100644 (file)
@@ -63,6 +63,8 @@ dtb-$(CONFIG_ARCH_R8A77995) += r8a77995-draak.dtb
 
 dtb-$(CONFIG_ARCH_R8A779A0) += r8a779a0-falcon.dtb
 
+dtb-$(CONFIG_ARCH_R8A779F0) += r8a779f0-spider.dtb
+
 dtb-$(CONFIG_ARCH_R8A77951) += r8a779m1-salvator-xs.dtb
 dtb-$(CONFIG_ARCH_R8A77951) += r8a779m1-ulcb.dtb
 dtb-$(CONFIG_ARCH_R8A77951) += r8a779m1-ulcb-kf.dtb
index a69d24e..8c9da8b 100644 (file)
@@ -18,6 +18,7 @@
        pinctrl-names = "default";
        renesas,no-ether-link;
        phy-handle = <&phy0>;
+       phy-mode = "rgmii-id";
        status = "okay";
 
        phy0: ethernet-phy@0 {
index 6f4fffa..eda6a84 100644 (file)
@@ -58,7 +58,7 @@
                clock-frequency = <0>;
        };
 
-       cluster0_opp: opp_table0 {
+       cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
 
@@ -80,7 +80,7 @@
                };
        };
 
-       cluster1_opp: opp_table1 {
+       cluster1_opp: opp-table-1 {
                compatible = "operating-points-v2";
                opp-shared;
 
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee100000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A774A1_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee120000 0 0x2000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 313>;
+                       clocks = <&cpg CPG_MOD 313>, <&cpg CPG_CORE R8A774A1_CLK_SD1H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 312>;
+                       clocks = <&cpg CPG_MOD 312>, <&cpg CPG_CORE R8A774A1_CLK_SD2H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee160000 0 0x2000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 311>;
+                       clocks = <&cpg CPG_MOD 311>, <&cpg CPG_CORE R8A774A1_CLK_SD3H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
        };
 
        thermal-zones {
-               sensor_thermal1: sensor-thermal1 {
+               sensor1_thermal: sensor1-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 0>;
                        };
                };
 
-               sensor_thermal2: sensor-thermal2 {
+               sensor2_thermal: sensor2-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 1>;
                        };
                };
 
-               sensor_thermal3: sensor-thermal3 {
+               sensor3_thermal: sensor3-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 2>;
index 0f7bdfc..44f79fb 100644 (file)
@@ -47,7 +47,7 @@
                clock-frequency = <0>;
        };
 
-       cluster0_opp: opp_table0 {
+       cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
 
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee100000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A774B1_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee120000 0 0x2000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 313>;
+                       clocks = <&cpg CPG_MOD 313>, <&cpg CPG_CORE R8A774B1_CLK_SD1H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 312>;
+                       clocks = <&cpg CPG_MOD 312>, <&cpg CPG_CORE R8A774B1_CLK_SD2H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee160000 0 0x2000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 311>;
+                       clocks = <&cpg CPG_MOD 311>, <&cpg CPG_CORE R8A774B1_CLK_SD3H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
        };
 
        thermal-zones {
-               sensor_thermal1: sensor-thermal1 {
+               sensor1_thermal: sensor1-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 0>;
                        };
                };
 
-               sensor_thermal2: sensor-thermal2 {
+               sensor2_thermal: sensor2-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 1>;
                        };
                };
 
-               sensor_thermal3: sensor-thermal3 {
+               sensor3_thermal: sensor3-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 2>;
index d597772..b8dcbbb 100644 (file)
@@ -44,7 +44,7 @@
                clock-frequency = <0>;
        };
 
-       cluster1_opp: opp_table10 {
+       cluster1_opp: opp-table-1 {
                compatible = "operating-points-v2";
                opp-shared;
                opp-800000000 {
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee100000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A774C0_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee120000 0 0x2000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 313>;
+                       clocks = <&cpg CPG_MOD 313>, <&cpg CPG_CORE R8A774C0_CLK_SD1H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee160000 0 0x2000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 311>;
+                       clocks = <&cpg CPG_MOD 311>, <&cpg CPG_CORE R8A774C0_CLK_SD3H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
index 379a130..e6d8610 100644 (file)
@@ -47,7 +47,7 @@
                clock-frequency = <0>;
        };
 
-       cluster0_opp: opp_table0 {
+       cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
 
@@ -69,7 +69,7 @@
                };
        };
 
-       cluster1_opp: opp_table1 {
+       cluster1_opp: opp-table-1 {
                compatible = "operating-points-v2";
                opp-shared;
 
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee100000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A774E1_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee120000 0 0x2000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 313>;
+                       clocks = <&cpg CPG_MOD 313>, <&cpg CPG_CORE R8A774E1_CLK_SD1H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 312>;
+                       clocks = <&cpg CPG_MOD 312>, <&cpg CPG_CORE R8A774E1_CLK_SD2H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee160000 0 0x2000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 311>;
+                       clocks = <&cpg CPG_MOD 311>, <&cpg CPG_CORE R8A774E1_CLK_SD3H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
        };
 
        thermal-zones {
-               sensor_thermal1: sensor-thermal1 {
+               sensor1_thermal: sensor1-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 0>;
                        };
                };
 
-               sensor_thermal2: sensor-thermal2 {
+               sensor2_thermal: sensor2-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 1>;
                        };
                };
 
-               sensor_thermal3: sensor-thermal3 {
+               sensor3_thermal: sensor3-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 2>;
index 1768a3e..9265a57 100644 (file)
@@ -62,7 +62,7 @@
                clock-frequency = <0>;
        };
 
-       cluster0_opp: opp_table0 {
+       cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
 
@@ -96,7 +96,7 @@
                };
        };
 
-       cluster1_opp: opp_table1 {
+       cluster1_opp: opp-table-1 {
                compatible = "operating-points-v2";
                opp-shared;
 
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee100000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A7795_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee120000 0 0x2000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 313>;
+                       clocks = <&cpg CPG_MOD 313>, <&cpg CPG_CORE R8A7795_CLK_SD1H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 312>;
+                       clocks = <&cpg CPG_MOD 312>, <&cpg CPG_CORE R8A7795_CLK_SD2H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee160000 0 0x2000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 311>;
+                       clocks = <&cpg CPG_MOD 311>, <&cpg CPG_CORE R8A7795_CLK_SD3H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
        };
 
        thermal-zones {
-               sensor_thermal1: sensor-thermal1 {
+               sensor1_thermal: sensor1-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 0>;
                        };
                };
 
-               sensor_thermal2: sensor-thermal2 {
+               sensor2_thermal: sensor2-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 1>;
                        };
                };
 
-               sensor_thermal3: sensor-thermal3 {
+               sensor3_thermal: sensor3-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 2>;
index 2bd8169..26f7103 100644 (file)
@@ -57,7 +57,7 @@
                clock-frequency = <0>;
        };
 
-       cluster0_opp: opp_table0 {
+       cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
 
@@ -97,7 +97,7 @@
                };
        };
 
-       cluster1_opp: opp_table1 {
+       cluster1_opp: opp-table-1 {
                compatible = "operating-points-v2";
                opp-shared;
 
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee100000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A7796_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee120000 0 0x2000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 313>;
+                       clocks = <&cpg CPG_MOD 313>, <&cpg CPG_CORE R8A7796_CLK_SD1H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 312>;
+                       clocks = <&cpg CPG_MOD 312>, <&cpg CPG_CORE R8A7796_CLK_SD2H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee160000 0 0x2000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 311>;
+                       clocks = <&cpg CPG_MOD 311>, <&cpg CPG_CORE R8A7796_CLK_SD3H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
        };
 
        thermal-zones {
-               sensor_thermal1: sensor-thermal1 {
+               sensor1_thermal: sensor1-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 0>;
                        };
                };
 
-               sensor_thermal2: sensor-thermal2 {
+               sensor2_thermal: sensor2-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 1>;
                        };
                };
 
-               sensor_thermal3: sensor-thermal3 {
+               sensor3_thermal: sensor3-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 2>;
index 86d59e7..ac9b587 100644 (file)
@@ -46,7 +46,7 @@
                clock-frequency = <0>;
        };
 
-       cluster0_opp: opp_table0 {
+       cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
 
@@ -86,7 +86,7 @@
                };
        };
 
-       cluster1_opp: opp_table1 {
+       cluster1_opp: opp-table-1 {
                compatible = "operating-points-v2";
                opp-shared;
 
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee100000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A77961_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77961_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee120000 0 0x2000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 313>;
+                       clocks = <&cpg CPG_MOD 313>, <&cpg CPG_CORE R8A77961_CLK_SD1H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77961_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 312>;
+                       clocks = <&cpg CPG_MOD 312>, <&cpg CPG_CORE R8A77961_CLK_SD2H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77961_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee160000 0 0x2000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 311>;
+                       clocks = <&cpg CPG_MOD 311>, <&cpg CPG_CORE R8A77961_CLK_SD3H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77961_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
        };
 
        thermal-zones {
-               sensor_thermal1: sensor-thermal1 {
+               sensor1_thermal: sensor1-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 0>;
                        };
                };
 
-               sensor_thermal2: sensor-thermal2 {
+               sensor2_thermal: sensor2-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 1>;
                        };
                };
 
-               sensor_thermal3: sensor-thermal3 {
+               sensor3_thermal: sensor3-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 2>;
index 08df756..f898aad 100644 (file)
@@ -62,7 +62,7 @@
                clock-frequency = <0>;
        };
 
-       cluster0_opp: opp_table0 {
+       cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
 
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee100000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A77965_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee120000 0 0x2000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 313>;
+                       clocks = <&cpg CPG_MOD 313>, <&cpg CPG_CORE R8A77965_CLK_SD1H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 312>;
+                       clocks = <&cpg CPG_MOD 312>, <&cpg CPG_CORE R8A77965_CLK_SD2H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee160000 0 0x2000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 311>;
+                       clocks = <&cpg CPG_MOD 311>, <&cpg CPG_CORE R8A77965_CLK_SD3H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
        };
 
        thermal-zones {
-               sensor_thermal1: sensor-thermal1 {
+               sensor1_thermal: sensor1-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 0>;
                        };
                };
 
-               sensor_thermal2: sensor-thermal2 {
+               sensor2_thermal: sensor2-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 1>;
                        };
                };
 
-               sensor_thermal3: sensor-thermal3 {
+               sensor3_thermal: sensor3-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 2>;
index 6347d15..347c068 100644 (file)
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A77980_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                        max-frequency = <200000000>;
        };
 
        thermal-zones {
-               thermal-sensor-1 {
+               sensor1_thermal: sensor1-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 0>;
                        };
                };
 
-               thermal-sensor-2 {
+               sensor2_thermal: sensor2-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 1>;
index 0ea300a..14caedd 100644 (file)
@@ -55,7 +55,7 @@
                clock-frequency = <0>;
        };
 
-       cluster1_opp: opp_table10 {
+       cluster1_opp: opp-table-1 {
                compatible = "operating-points-v2";
                opp-shared;
                opp-800000000 {
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee100000 0 0x2000>;
                        interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 314>;
+                       clocks = <&cpg CPG_MOD 314>, <&cpg CPG_CORE R8A77990_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
                        resets = <&cpg 314>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee120000 0 0x2000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 313>;
+                       clocks = <&cpg CPG_MOD 313>, <&cpg CPG_CORE R8A77990_CLK_SD1H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
                        resets = <&cpg 313>;
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee160000 0 0x2000>;
                        interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 311>;
+                       clocks = <&cpg CPG_MOD 311>, <&cpg CPG_CORE R8A77990_CLK_SD3H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
                        resets = <&cpg 311>;
index 16ad5fc..f29f398 100644 (file)
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 312>;
+                       clocks = <&cpg CPG_MOD 312>, <&cpg CPG_CORE R8A77995_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        max-frequency = <200000000>;
                        power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
                        resets = <&cpg 312>;
index cd2f0d6..6af3f4f 100644 (file)
                reg = <0x7 0x00000000 0x0 0x80000000>;
        };
 
+       mini-dp-con {
+               compatible = "dp-connector";
+               label = "CN5";
+               type = "mini";
+
+               port {
+                       mini_dp_con_in: endpoint {
+                               remote-endpoint = <&sn65dsi86_out>;
+                       };
+               };
+       };
+
+       reg_1p2v: regulator-1p2v {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.2V";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        reg_1p8v: regulator-1p8v {
                compatible = "regulator-fixed";
                regulator-name = "fixed-1.8V";
                regulator-boot-on;
                regulator-always-on;
        };
+
+       sn65dsi86_refclk: clk-x6 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <38400000>;
+       };
+};
+
+&dsi0 {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       dsi0_out: endpoint {
+                               remote-endpoint = <&sn65dsi86_in>;
+                               data-lanes = <1 2 3 4>;
+                       };
+               };
+       };
+};
+
+&du {
+       status = "okay";
 };
 
 &extal_clk {
 
        status = "okay";
        clock-frequency = <400000>;
+
+       bridge@2c {
+               compatible = "ti,sn65dsi86";
+               reg = <0x2c>;
+
+               clocks = <&sn65dsi86_refclk>;
+               clock-names = "refclk";
+
+               interrupt-parent = <&gpio1>;
+               interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
+
+               vccio-supply = <&reg_1p8v>;
+               vpll-supply = <&reg_1p8v>;
+               vcca-supply = <&reg_1p2v>;
+               vcc-supply = <&reg_1p2v>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               sn65dsi86_in: endpoint {
+                                       remote-endpoint = <&dsi0_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               sn65dsi86_out: endpoint {
+                                       remote-endpoint = <&mini_dp_con_in>;
+                               };
+                       };
+               };
+       };
 };
 
 &i2c6 {
index 43bf2cb..1e7ed12 100644 (file)
@@ -87,7 +87,7 @@
                        status = "disabled";
                };
 
-               pfc: pin-controller@e6050000 {
+               pfc: pinctrl@e6050000 {
                        compatible = "renesas,pfc-r8a779a0";
                        reg = <0 0xe6050000 0 0x16c>, <0 0xe6050800 0 0x16c>,
                              <0 0xe6058000 0 0x16c>, <0 0xe6058800 0 0x16c>,
                                     "renesas,rcar-gen3-sdhi";
                        reg = <0 0xee140000 0 0x2000>;
                        interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&cpg CPG_MOD 706>;
+                       clocks = <&cpg CPG_MOD 706>, <&cpg CPG_CORE R8A779A0_CLK_SD0H>;
+                       clock-names = "core", "clkh";
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                        resets = <&cpg 706>;
                        max-frequency = <200000000>;
                        };
                };
 
+               du: display@feb00000 {
+                       compatible = "renesas,du-r8a779a0";
+                       reg = <0 0xfeb00000 0 0x40000>;
+                       interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 411>;
+                       clock-names = "du.0";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 411>;
+                       reset-names = "du.0";
+                       renesas,vsps = <&vspd0 0>, <&vspd1 0>;
+
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       du_out_dsi0: endpoint {
+                                               remote-endpoint = <&dsi0_in>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       du_out_dsi1: endpoint {
+                                               remote-endpoint = <&dsi1_in>;
+                                       };
+                               };
+                       };
+               };
+
                isp0: isp@fed00000 {
                        compatible = "renesas,r8a779a0-isp";
                        reg = <0 0xfed00000 0 0x10000>;
                        };
                };
 
+               dsi0: dsi-encoder@fed80000 {
+                       compatible = "renesas,r8a779a0-dsi-csi2-tx";
+                       reg = <0 0xfed80000 0 0x10000>;
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       clocks = <&cpg CPG_MOD 415>,
+                                <&cpg CPG_CORE R8A779A0_CLK_DSI>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CL16MCK>;
+                       clock-names = "fck", "dsi", "pll";
+                       resets = <&cpg 415>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       dsi0_in: endpoint {
+                                               remote-endpoint = <&du_out_dsi0>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                               };
+                       };
+               };
+
+               dsi1: dsi-encoder@fed90000 {
+                       compatible = "renesas,r8a779a0-dsi-csi2-tx";
+                       reg = <0 0xfed90000 0 0x10000>;
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       clocks = <&cpg CPG_MOD 416>,
+                                <&cpg CPG_CORE R8A779A0_CLK_DSI>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CL16MCK>;
+                       clock-names = "fck", "dsi", "pll";
+                       resets = <&cpg 416>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       dsi1_in: endpoint {
+                                               remote-endpoint = <&du_out_dsi1>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                               };
+                       };
+               };
+
                prr: chipid@fff00044 {
                        compatible = "renesas,prr";
                        reg = <0 0xfff00044 0 4>;
        };
 
        thermal-zones {
-               sensor_thermal1: sensor-thermal1 {
+               sensor1_thermal: sensor1-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 0>;
                        };
                };
 
-               sensor_thermal2: sensor-thermal2 {
+               sensor2_thermal: sensor2-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 1>;
                        };
                };
 
-               sensor_thermal3: sensor-thermal3 {
+               sensor3_thermal: sensor3-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 2>;
                        };
                };
 
-               sensor_thermal4: sensor-thermal4 {
+               sensor4_thermal: sensor4-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 3>;
                        };
                };
 
-               sensor_thermal5: sensor-thermal5 {
+               sensor5_thermal: sensor5-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <1000>;
                        thermal-sensors = <&tsc 4>;
diff --git a/arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi b/arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi
new file mode 100644 (file)
index 0000000..1565865
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: (GPL-2.0 or MIT)
+/*
+ * Device Tree Source for the Spider CPU board
+ *
+ * Copyright (C) 2021 Renesas Electronics Corp.
+ */
+
+#include "r8a779f0.dtsi"
+
+/ {
+       model = "Renesas Spider CPU board";
+       compatible = "renesas,spider-cpu", "renesas,r8a779f0";
+
+       memory@48000000 {
+               device_type = "memory";
+               /* first 128MB is reserved for secure area. */
+               reg = <0x0 0x48000000 0x0 0x78000000>;
+       };
+
+       memory@480000000 {
+               device_type = "memory";
+               reg = <0x4 0x80000000 0x0 0x80000000>;
+       };
+};
+
+&extal_clk {
+       clock-frequency = <20000000>;
+};
+
+&extalr_clk {
+       clock-frequency = <32768>;
+};
+
+&scif3 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/renesas/r8a779f0-spider.dts b/arch/arm64/boot/dts/renesas/r8a779f0-spider.dts
new file mode 100644 (file)
index 0000000..f286254
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: (GPL-2.0 or MIT)
+/*
+ * Device Tree Source for the Spider CPU and BreakOut boards
+ *
+ * Copyright (C) 2021 Renesas Electronics Corp.
+ */
+
+/dts-v1/;
+#include "r8a779f0-spider-cpu.dtsi"
+
+/ {
+       model = "Renesas Spider CPU and Breakout boards based on r8a779f0";
+       compatible = "renesas,spider-breakout", "renesas,spider-cpu", "renesas,r8a779f0";
+
+       aliases {
+               serial0 = &scif3;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
diff --git a/arch/arm64/boot/dts/renesas/r8a779f0.dtsi b/arch/arm64/boot/dts/renesas/r8a779f0.dtsi
new file mode 100644 (file)
index 0000000..eda5977
--- /dev/null
@@ -0,0 +1,121 @@
+// SPDX-License-Identifier: (GPL-2.0 or MIT)
+/*
+ * Device Tree Source for the R-Car S4-8 (R8A779F0) SoC
+ *
+ * Copyright (C) 2021 Renesas Electronics Corp.
+ */
+
+#include <dt-bindings/clock/r8a779f0-cpg-mssr.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/r8a779f0-sysc.h>
+
+/ {
+       compatible = "renesas,r8a779f0";
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               a55_0: cpu@0 {
+                       compatible = "arm,cortex-a55";
+                       reg = <0>;
+                       device_type = "cpu";
+                       power-domains = <&sysc R8A779F0_PD_A1E0D0C0>;
+               };
+       };
+
+       extal_clk: extal {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       extalr_clk: extalr {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       pmu_a55 {
+               compatible = "arm,cortex-a55-pmu";
+               interrupts-extended = <&gic GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       /* External SCIF clock - to be overridden by boards that provide it */
+       scif_clk: scif {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               interrupt-parent = <&gic>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               cpg: clock-controller@e6150000 {
+                       compatible = "renesas,r8a779f0-cpg-mssr";
+                       reg = <0 0xe6150000 0 0x4000>;
+                       clocks = <&extal_clk>, <&extalr_clk>;
+                       clock-names = "extal", "extalr";
+                       #clock-cells = <2>;
+                       #power-domain-cells = <0>;
+                       #reset-cells = <1>;
+               };
+
+               rst: reset-controller@e6160000 {
+                       compatible = "renesas,r8a779f0-rst";
+                       reg = <0 0xe6160000 0 0x4000>;
+               };
+
+               sysc: system-controller@e6180000 {
+                       compatible = "renesas,r8a779f0-sysc";
+                       reg = <0 0xe6180000 0 0x4000>;
+                       #power-domain-cells = <1>;
+               };
+
+               scif3: serial@e6c50000 {
+                       compatible = "renesas,scif-r8a779f0",
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
+                       reg = <0 0xe6c50000 0 64>;
+                       interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 704>,
+                                <&cpg CPG_CORE R8A779F0_CLK_S0D3_PER>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 704>;
+                       status = "disabled";
+               };
+
+               gic: interrupt-controller@f1000000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       reg = <0x0 0xf1000000 0 0x20000>,
+                             <0x0 0xf1060000 0 0x110000>;
+                       interrupts = <GIC_PPI 9
+                                     (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+               };
+
+               prr: chipid@fff00044 {
+                       compatible = "renesas,prr";
+                       reg = <0 0xfff00044 0 4>;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+};
index 485ef5f..19287cc 100644 (file)
                clock-frequency = <0>;
        };
 
-       psci {
-               compatible = "arm,psci-1.0", "arm,psci-0.2";
-               method = "smc";
+       cluster0_opp: opp-table-0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-150000000 {
+                       opp-hz = /bits/ 64 <150000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+               };
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+               };
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+                       opp-suspend;
+               };
        };
 
        cpus {
                        compatible = "arm,cortex-a55";
                        reg = <0>;
                        device_type = "cpu";
+                       #cooling-cells = <2>;
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A07G044_CLK_I>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu1: cpu@100 {
                        device_type = "cpu";
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A07G044_CLK_I>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                L3_CA55: cache-controller-0 {
                };
        };
 
+       gpu_opp_table: opp-table-1 {
+               compatible = "operating-points-v2";
+
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-250000000 {
+                       opp-hz = /bits/ 64 <250000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-200000000 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-125000000 {
+                       opp-hz = /bits/ 64 <125000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-100000000 {
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-62500000 {
+                       opp-hz = /bits/ 64 <62500000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-50000000 {
+                       opp-hz = /bits/ 64 <50000000>;
+                       opp-microvolt = <1100000>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0", "arm,psci-0.2";
+               method = "smc";
+       };
+
        soc: soc {
                compatible = "simple-bus";
                interrupt-parent = <&gic>;
                        status = "disabled";
                };
 
+               spi0: spi@1004ac00 {
+                       compatible = "renesas,r9a07g044-rspi", "renesas,rspi-rz";
+                       reg = <0 0x1004ac00 0 0x400>;
+                       interrupts = <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error", "rx", "tx";
+                       clocks = <&cpg CPG_MOD R9A07G044_RSPI0_CLKB>;
+                       resets = <&cpg R9A07G044_RSPI0_RST>;
+                       power-domains = <&cpg>;
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               spi1: spi@1004b000 {
+                       compatible = "renesas,r9a07g044-rspi", "renesas,rspi-rz";
+                       reg = <0 0x1004b000 0 0x400>;
+                       interrupts = <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error", "rx", "tx";
+                       clocks = <&cpg CPG_MOD R9A07G044_RSPI1_CLKB>;
+                       resets = <&cpg R9A07G044_RSPI1_RST>;
+                       power-domains = <&cpg>;
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               spi2: spi@1004b400 {
+                       compatible = "renesas,r9a07g044-rspi", "renesas,rspi-rz";
+                       reg = <0 0x1004b400 0 0x400>;
+                       interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error", "rx", "tx";
+                       clocks = <&cpg CPG_MOD R9A07G044_RSPI2_CLKB>;
+                       resets = <&cpg R9A07G044_RSPI2_RST>;
+                       power-domains = <&cpg>;
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                scif0: serial@1004b800 {
                        compatible = "renesas,scif-r9a07g044";
                        reg = <0 0x1004b800 0 0x400>;
                        status = "disabled";
                };
 
+               scif1: serial@1004bc00 {
+                       compatible = "renesas,scif-r9a07g044";
+                       reg = <0 0x1004bc00 0 0x400>;
+                       interrupts = <GIC_SPI 385 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 387 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 388 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi",
+                                         "bri", "dri", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G044_SCIF1_CLK_PCK>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G044_SCIF1_RST_SYSTEM_N>;
+                       status = "disabled";
+               };
+
+               scif2: serial@1004c000 {
+                       compatible = "renesas,scif-r9a07g044";
+                       reg = <0 0x1004c000 0 0x400>;
+                       interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi",
+                                         "bri", "dri", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G044_SCIF2_CLK_PCK>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G044_SCIF2_RST_SYSTEM_N>;
+                       status = "disabled";
+               };
+
+               scif3: serial@1004c400 {
+                       compatible = "renesas,scif-r9a07g044";
+                       reg = <0 0x1004c400 0 0x400>;
+                       interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi",
+                                         "bri", "dri", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G044_SCIF3_CLK_PCK>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G044_SCIF3_RST_SYSTEM_N>;
+                       status = "disabled";
+               };
+
+               scif4: serial@1004c800 {
+                       compatible = "renesas,scif-r9a07g044";
+                       reg = <0 0x1004c800 0 0x400>;
+                       interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi",
+                                         "bri", "dri", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G044_SCIF4_CLK_PCK>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G044_SCIF4_RST_SYSTEM_N>;
+                       status = "disabled";
+               };
+
+               sci0: serial@1004d000 {
+                       compatible = "renesas,r9a07g044-sci", "renesas,sci";
+                       reg = <0 0x1004d000 0 0x400>;
+                       interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G044_SCI0_CLKP>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G044_SCI0_RST>;
+                       status = "disabled";
+               };
+
+               sci1: serial@1004d400 {
+                       compatible = "renesas,r9a07g044-sci", "renesas,sci";
+                       reg = <0 0x1004d400 0 0x400>;
+                       interrupts = <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G044_SCI1_CLKP>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G044_SCI1_RST>;
+                       status = "disabled";
+               };
+
                canfd: can@10050000 {
                        compatible = "renesas,r9a07g044-canfd", "renesas,rzg2l-canfd";
                        reg = <0 0x10050000 0 0x8000>;
                        };
                };
 
+               tsu: thermal@10059400 {
+                       compatible = "renesas,r9a07g044-tsu",
+                                    "renesas,rzg2l-tsu";
+                       reg = <0 0x10059400 0 0x400>;
+                       clocks = <&cpg CPG_MOD R9A07G044_TSU_PCLK>;
+                       resets = <&cpg R9A07G044_TSU_PRESETN>;
+                       power-domains = <&cpg>;
+                       #thermal-sensor-cells = <1>;
+               };
+
                sbc: spi@10060000 {
                        compatible = "renesas,r9a07g044-rpc-if",
                                     "renesas,rzg2l-rpc-if";
                        status = "disabled";
                };
 
-               pinctrl: pin-controller@11030000 {
+               pinctrl: pinctrl@11030000 {
                        compatible = "renesas,r9a07g044-pinctrl";
                        reg = <0 0x11030000 0 0x10000>;
                        gpio-controller;
                        dma-channels = <16>;
                };
 
+               gpu: gpu@11840000 {
+                       compatible = "renesas,r9a07g044-mali",
+                                    "arm,mali-bifrost";
+                       reg = <0x0 0x11840000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "job", "mmu", "gpu", "event";
+                       clocks = <&cpg CPG_MOD R9A07G044_GPU_CLK>,
+                                <&cpg CPG_MOD R9A07G044_GPU_AXI_CLK>,
+                                <&cpg CPG_MOD R9A07G044_GPU_ACE_CLK>;
+                       clock-names = "gpu", "bus", "bus_ace";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G044_GPU_RESETN>,
+                                <&cpg R9A07G044_GPU_AXI_RESETN>,
+                                <&cpg R9A07G044_GPU_ACE_RESETN>;
+                       reset-names = "rst", "axi_rst", "ace_rst";
+                       operating-points-v2 = <&gpu_opp_table>;
+               };
+
                gic: interrupt-controller@11900000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
                        interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD R9A07G044_SDHI0_IMCLK>,
-                                <&cpg CPG_MOD R9A07G044_SDHI0_IMCLK2>,
                                 <&cpg CPG_MOD R9A07G044_SDHI0_CLK_HS>,
+                                <&cpg CPG_MOD R9A07G044_SDHI0_IMCLK2>,
                                 <&cpg CPG_MOD R9A07G044_SDHI0_ACLK>;
-                       clock-names = "imclk", "imclk2", "clk_hs", "aclk";
+                       clock-names = "core", "clkh", "cd", "aclk";
                        resets = <&cpg R9A07G044_SDHI0_IXRST>;
                        power-domains = <&cpg>;
                        status = "disabled";
                        interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD R9A07G044_SDHI1_IMCLK>,
-                                <&cpg CPG_MOD R9A07G044_SDHI1_IMCLK2>,
                                 <&cpg CPG_MOD R9A07G044_SDHI1_CLK_HS>,
+                                <&cpg CPG_MOD R9A07G044_SDHI1_IMCLK2>,
                                 <&cpg CPG_MOD R9A07G044_SDHI1_ACLK>;
-                       clock-names = "imclk", "imclk2", "clk_hs", "aclk";
+                       clock-names = "core", "clkh", "cd", "aclk";
                        resets = <&cpg R9A07G044_SDHI1_IXRST>;
                        power-domains = <&cpg>;
                        status = "disabled";
                        power-domains = <&cpg>;
                        status = "disabled";
                };
+
+               wdt0: watchdog@12800800 {
+                       compatible = "renesas,r9a07g044-wdt",
+                                    "renesas,rzg2l-wdt";
+                       reg = <0 0x12800800 0 0x400>;
+                       clocks = <&cpg CPG_MOD R9A07G044_WDT0_PCLK>,
+                                <&cpg CPG_MOD R9A07G044_WDT0_CLK>;
+                       clock-names = "pclk", "oscclk";
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "wdt", "perrout";
+                       resets = <&cpg R9A07G044_WDT0_PRESETN>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               wdt1: watchdog@12800c00 {
+                       compatible = "renesas,r9a07g044-wdt",
+                                    "renesas,rzg2l-wdt";
+                       reg = <0 0x12800C00 0 0x400>;
+                       clocks = <&cpg CPG_MOD R9A07G044_WDT1_PCLK>,
+                                <&cpg CPG_MOD R9A07G044_WDT1_CLK>;
+                       clock-names = "pclk", "oscclk";
+                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "wdt", "perrout";
+                       resets = <&cpg R9A07G044_WDT1_PRESETN>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               wdt2: watchdog@12800400 {
+                       compatible = "renesas,r9a07g044-wdt",
+                                    "renesas,rzg2l-wdt";
+                       reg = <0 0x12800400 0 0x400>;
+                       clocks = <&cpg CPG_MOD R9A07G044_WDT2_PCLK>,
+                                <&cpg CPG_MOD R9A07G044_WDT2_CLK>;
+                       clock-names = "pclk", "oscclk";
+                       interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "wdt", "perrout";
+                       resets = <&cpg R9A07G044_WDT2_PRESETN>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm0: timer@12801000 {
+                       compatible = "renesas,r9a07g044-ostm",
+                                    "renesas,ostm";
+                       reg = <0x0 0x12801000 0x0 0x400>;
+                       interrupts = <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G044_OSTM0_PCLK>;
+                       resets = <&cpg R9A07G044_OSTM0_PRESETZ>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm1: timer@12801400 {
+                       compatible = "renesas,r9a07g044-ostm",
+                                    "renesas,ostm";
+                       reg = <0x0 0x12801400 0x0 0x400>;
+                       interrupts = <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G044_OSTM1_PCLK>;
+                       resets = <&cpg R9A07G044_OSTM1_PRESETZ>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm2: timer@12801800 {
+                       compatible = "renesas,r9a07g044-ostm",
+                                    "renesas,ostm";
+                       reg = <0x0 0x12801800 0x0 0x400>;
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G044_OSTM2_PCLK>;
+                       resets = <&cpg R9A07G044_OSTM2_PRESETZ>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+       };
+
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsu 0>;
+                       sustainable-power = <717>;
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&target>;
+                                       cooling-device = <&cpu0 0 2>;
+                                       contribution = <1024>;
+                               };
+                       };
+
+                       trips {
+                               sensor_crit: sensor-crit {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+
+                               target: trip-point {
+                                       temperature = <100000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
        };
 
        timer {
index 7e84a29..9112e79 100644 (file)
                regulator-always-on;
        };
 
+       reg_1p1v: regulator-vdd-core {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.1V";
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        vccq_sdhi0: regulator-vccq-sdhi0 {
                compatible = "regulator-gpio";
 
        clock-frequency = <24000000>;
 };
 
+&gpu {
+       mali-supply = <&reg_1p1v>;
+};
+
+&ostm1 {
+       status = "okay";
+};
+
+&ostm2 {
+       status = "okay";
+};
+
 &pinctrl {
        adc_pins: adc {
                pinmux = <RZG2L_PORT_PINMUX(9, 0, 2)>; /* ADC_TRG */
                line-name = "gpio_sd0_pwr_en";
        };
 
+       qspi0_pins: qspi0 {
+               qspi0-data {
+                       pins = "QSPI0_IO0", "QSPI0_IO1", "QSPI0_IO2", "QSPI0_IO3";
+                       power-source = <1800>;
+               };
+
+               qspi0-ctrl {
+                       pins = "QSPI0_SPCLK", "QSPI0_SSL", "QSPI_RESET#";
+                       power-source = <1800>;
+               };
+       };
+
        /*
         * SD0 device selection is XOR between GPIO_SD0_DEV_SEL and SW1[2]
         * The below switch logic can be used to select the device between
        };
 };
 
+&sbc {
+       pinctrl-0 = <&qspi0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       flash@0 {
+               compatible = "micron,mt25qu512a", "jedec,spi-nor";
+               reg = <0>;
+               m25p,fast-read;
+               spi-max-frequency = <50000000>;
+               spi-rx-bus-width = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       boot@0 {
+                               reg = <0x00000000 0x2000000>;
+                               read-only;
+                       };
+                       user@2000000 {
+                               reg = <0x2000000 0x2000000>;
+                       };
+               };
+       };
+};
+
 #if SDHI
 &sdhi0 {
        pinctrl-0 = <&sdhi0_pins>;
        status = "okay";
 };
 #endif
+
+&wdt0 {
+       status = "okay";
+       timeout-sec = <60>;
+};
+
+&wdt1 {
+       status = "okay";
+       timeout-sec = <60>;
+};
+
+&wdt2 {
+       status = "okay";
+       timeout-sec = <60>;
+};
index 2863e48..6f2a8bd 100644 (file)
  *
  */
 
+/* comment the #define statement to disable SCIF2 (SER0) on PMOD1 (CN7) */
+#define PMOD1_SER0     1
+
 / {
        aliases {
                serial0 = &scif0;
+               serial1 = &scif2;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c3 = &i2c3;
                         <RZG2L_PORT_PINMUX(38, 1, 1)>; /* RxD */
        };
 
+       scif2_pins: scif2 {
+               pinmux = <RZG2L_PORT_PINMUX(48, 0, 1)>, /* TxD */
+                        <RZG2L_PORT_PINMUX(48, 1, 1)>, /* RxD */
+                        <RZG2L_PORT_PINMUX(48, 3, 1)>, /* CTS# */
+                        <RZG2L_PORT_PINMUX(48, 4, 1)>; /* RTS# */
+       };
+
        sd1-pwr-en-hog {
                gpio-hog;
                gpios = <RZG2L_GPIO(39, 2) GPIO_ACTIVE_HIGH>;
                input-enable;
        };
 
+       spi1_pins: spi1 {
+               pinmux = <RZG2L_PORT_PINMUX(44, 0, 1)>, /* CK */
+                        <RZG2L_PORT_PINMUX(44, 1, 1)>, /* MOSI */
+                        <RZG2L_PORT_PINMUX(44, 2, 1)>, /* MISO */
+                        <RZG2L_PORT_PINMUX(44, 3, 1)>; /* SSL */
+       };
+
        ssi0_pins: ssi0 {
                pinmux = <RZG2L_PORT_PINMUX(45, 0, 1)>, /* BCK */
                         <RZG2L_PORT_PINMUX(45, 1, 1)>, /* RCK */
        status = "okay";
 };
 
+/*
+ * To enable SCIF2 (SER0) on PMOD1 (CN7)
+ * SW1 should be at position 2->3 so that SER0_CTS# line is activated
+ * SW2 should be at position 2->3 so that SER0_TX line is activated
+ * SW3 should be at position 2->3 so that SER0_RX line is activated
+ * SW4 should be at position 2->3 so that SER0_RTS# line is activated
+ */
+#if PMOD1_SER0
+&scif2 {
+       pinctrl-0 = <&scif2_pins>;
+       pinctrl-names = "default";
+
+       uart-has-rtscts;
+       status = "okay";
+};
+#endif
+
 &sdhi1 {
        pinctrl-0 = <&sdhi1_pins>;
        pinctrl-1 = <&sdhi1_pins_uhs>;
        status = "okay";
 };
 
+&spi1 {
+       pinctrl-0 = <&spi1_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
 &ssi0 {
        pinctrl-0 = <&ssi0_pins>;
        pinctrl-names = "default";
index bf37777..6092dc4 100644 (file)
@@ -97,6 +97,7 @@
 
                port {
                        hdmi0_con: endpoint {
+                               remote-endpoint = <&rcar_dw_hdmi0_out>;
                        };
                };
        };
        };
 };
 
-&hdmi0_con {
-       remote-endpoint = <&rcar_dw_hdmi0_out>;
-};
-
 #ifdef SOC_HAS_HDMI1
 &hdmi1 {
        status = "okay";
index 7edffe7..a7e93df 100644 (file)
@@ -48,6 +48,7 @@
 
                port {
                        hdmi0_con: endpoint {
+                               remote-endpoint = <&rcar_dw_hdmi0_out>;
                        };
                };
        };
        };
 };
 
-&hdmi0_con {
-       remote-endpoint = <&rcar_dw_hdmi0_out>;
-};
-
 &i2c2 {
        pinctrl-0 = <&i2c2_pins>;
        pinctrl-names = "default";
index 00f50b0..f972704 100644 (file)
        };
 
        dsi: dsi@ff450000 {
-               compatible = "rockchip,px30-mipi-dsi";
+               compatible = "rockchip,px30-mipi-dsi", "snps,dw-mipi-dsi";
                reg = <0x0 0xff450000 0x0 0x10000>;
                interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru PCLK_MIPI_DSI>;
index b6ac00f..1eb287a 100644 (file)
                };
        };
 
+       hdd_a_power: hdd-a-power {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&hdd_a_power_en>;
+               pinctrl-names = "default";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "hdd_a_power";
+               startup-delay-us = <2000000>;
+       };
+
+       hdd_b_power: hdd-b-power {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&hdd_b_power_en>;
+               pinctrl-names = "default";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "hdd_b_power";
+               startup-delay-us = <2000000>;
+       };
+
        pcie_power: pcie-power {
                compatible = "regulator-fixed";
                enable-active-high;
                vin-supply = <&vcc5v0_perdev>;
        };
 
+       usblan_power: usblan-power {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_lan_en>;
+               regulator-name = "usblan_power";
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc5v0_usb>;
+       };
+
        vcc1v8_sys_s0: vcc1v8-sys-s0 {
                compatible = "regulator-fixed";
                regulator-name = "vcc1v8_sys_s0";
 };
 
 &pcie0 {
+       ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
+       max-link-speed = <2>;
        num-lanes = <2>;
+       pinctrl-names = "default";
        status = "okay";
 
        vpcie12v-supply = <&vcc12v_dcin>;
        };
 
        power {
+               hdd_a_power_en: hdd-a-power-en {
+                       rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               hdd_b_power_en: hdd-b-power-en {
+                       rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
                vcc5v0_usb_en: vcc5v0-usb-en {
                        rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
                };
+
+               usb_lan_en: usb-lan-en {
+                       rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
        };
 
        vcc3v0-sd {
        usb@fe900000 {
                dr_mode = "host";
                status = "okay";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               hub@1 {
+                       compatible = "usb2109,0815";
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@1 {
+                               reg = <1>;
+                               #trigger-source-cells = <0>;
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               #trigger-source-cells = <0>;
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                               #trigger-source-cells = <0>;
+                       };
+
+                       device@4 {
+                               compatible = "usbbda,8156";
+                               reg = <4>;
+                               #address-cells = <2>;
+                               #size-cells = <0>;
+
+                               interface@0 {   /* interface 0 of configuration 1 */
+                                       compatible = "usbbda,8156.config1.0";
+                                       reg = <0 1>;
+                               };
+                       };
+               };
        };
 };
index 6a434be..92acf6e 100644 (file)
@@ -36,7 +36,7 @@
                reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
        };
 
-       sound {
+       sound: sound {
                compatible = "audio-graph-card";
                label = "Analog";
                dais = <&i2s0_p0>;
                };
        };
 
+       es8316 {
+               hp_detect: hp-detect {
+                       rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               hp_int: hp-int {
+                       rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
        pcie {
                pcie_pwr_en: pcie-pwr-en {
                        rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
index 281a04b..f5a68d8 100644 (file)
        model = "Radxa ROCK Pi 4A+";
        compatible = "radxa,rockpi4a-plus", "radxa,rockpi4", "rockchip,rk3399";
 };
+
+&es8316 {
+       pinctrl-0 = <&hp_detect &hp_int>;
+       pinctrl-names = "default";
+       interrupt-parent = <&gpio1>;
+       interrupts = <RK_PA1 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&sound {
+       hp-det-gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
+};
index dfad13d..cec3b7b 100644 (file)
        };
 };
 
+&es8316 {
+       pinctrl-0 = <&hp_detect &hp_int>;
+       pinctrl-names = "default";
+       interrupt-parent = <&gpio1>;
+       interrupts = <RK_PA1 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &sdio0 {
        status = "okay";
 
        };
 };
 
+&sound {
+       hp-det-gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
+};
+
 &uart0 {
        status = "okay";
 
        bluetooth {
-               compatible = "brcm,bcm43438-bt";
+               compatible = "brcm,bcm4345c5";
                clocks = <&rk808 1>;
-               clock-names = "ext_clock";
+               clock-names = "lpo";
                device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
                host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
                shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
+               max-speed = <1500000>;
                pinctrl-names = "default";
                pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+               vbat-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcc_1v8>;
        };
 };
index 6c63e61..cf48746 100644 (file)
        status = "okay";
 
        bluetooth {
-               compatible = "brcm,bcm43438-bt";
+               compatible = "brcm,bcm4345c5";
                clocks = <&rk808 1>;
-               clock-names = "ext_clock";
+               clock-names = "lpo";
                device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
                host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
                shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
+               max-speed = <1500000>;
                pinctrl-names = "default";
                pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+               vbat-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcc_1v8>;
        };
 };
index 99169bc..793d848 100644 (file)
        };
 };
 
+&es8316 {
+       pinctrl-0 = <&hp_detect &hp_int>;
+       pinctrl-names = "default";
+       interrupt-parent = <&gpio1>;
+       interrupts = <RK_PA1 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &sdio0 {
        status = "okay";
 
        };
 };
 
+&sound {
+       hp-det-gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
+};
+
 &uart0 {
        status = "okay";
 
        bluetooth {
-               compatible = "brcm,bcm43438-bt";
+               compatible = "brcm,bcm4345c5";
                clocks = <&rk808 1>;
-               clock-names = "ext_clock";
+               clock-names = "lpo";
                device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
                host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
                shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
+               max-speed = <1500000>;
                pinctrl-names = "default";
                pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+               vbat-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcc_1v8>;
        };
 };
 
index 4d4b2a3..166399b 100644 (file)
        status = "okay";
 };
 
+&spi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi1m1_cs0 &spi1m1_pins>;
+};
+
 &tsadc {
        /* tshut mode 0:CRU 1:GPIO */
        rockchip,hw-tshut-mode = <1>;
index 46d9552..a68033a 100644 (file)
                serial7 = &uart7;
                serial8 = &uart8;
                serial9 = &uart9;
+               spi0 = &spi0;
+               spi1 = &spi1;
+               spi2 = &spi2;
+               spi3 = &spi3;
        };
 
        cpus {
                clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm0m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm1m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm2m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&pmucru CLK_PWM0>, <&pmucru PCLK_PWM0>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm3_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clock-names = "tclk", "pclk";
        };
 
+       spi0: spi@fe610000 {
+               compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfe610000 0x0 0x1000>;
+               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 20>, <&dmac0 21>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi1: spi@fe620000 {
+               compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfe620000 0x0 0x1000>;
+               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 22>, <&dmac0 23>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi1m0_cs0 &spi1m0_cs1 &spi1m0_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi2: spi@fe630000 {
+               compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfe630000 0x0 0x1000>;
+               interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 24>, <&dmac0 25>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi2m0_cs0 &spi2m0_cs1 &spi2m0_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi3: spi@fe640000 {
+               compatible = "rockchip,rk3568-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfe640000 0x0 0x1000>;
+               interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 26>, <&dmac0 27>;
+               dma-names = "tx", "rx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi3m0_cs0 &spi3m0_cs1 &spi3m0_pins>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
        uart1: serial@fe650000 {
                compatible = "rockchip,rk3568-uart", "snps,dw-apb-uart";
                reg = <0x0 0xfe650000 0x0 0x100>;
                clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm4_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm5_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm6_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm7_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm8m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm9m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm10m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm11m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm12m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm13m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm14m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
                clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
                clock-names = "pwm", "pclk";
                pinctrl-0 = <&pwm15m0_pins>;
-               pinctrl-names = "active";
+               pinctrl-names = "default";
                #pwm-cells = <3>;
                status = "disabled";
        };
index 71f6097..90be511 100644 (file)
@@ -17,5 +17,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-j721e-sk.dtb
 
 dtb-$(CONFIG_ARCH_K3) += k3-j7200-common-proc-board.dtb
 
+dtb-$(CONFIG_ARCH_K3) += k3-j721s2-common-proc-board.dtb
+
 dtb-$(CONFIG_ARCH_K3) += k3-am642-evm.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am642-sk.dtb
index 5ad638b..012011d 100644 (file)
                ti,cpts-ext-ts-inputs = <8>;
        };
 
+       timesync_router: pinctrl@a40000 {
+               compatible = "pinctrl-single";
+               reg = <0x0 0xa40000 0x0 0x800>;
+               #pinctrl-cells = <1>;
+               pinctrl-single,register-width = <32>;
+               pinctrl-single,function-mask = <0x000107ff>;
+       };
+
        usbss0: cdns-usb@f900000{
                compatible = "ti,am64-usb";
                reg = <0x00 0xf900000 0x00 0x100>;
                        bus_freq = <1000000>;
                };
        };
+
+       main_mcan0: can@20701000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x20701000 0x00 0x200>,
+                     <0x00 0x20708000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 98 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 98 5>, <&k3_clks 98 0>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan1: can@20711000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x20711000 0x00 0x200>,
+                     <0x00 0x20718000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 99 TI_SCI_PD_EXCLUSIVE>;
+               clocks =  <&k3_clks 99 5>, <&k3_clks 99 0>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
 };
index 6726c4c..e94ae17 100644 (file)
                        };
                };
        };
+
+       transceiver1: can-phy0 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               standby-gpios = <&exp1 8 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver2: can-phy1 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               standby-gpios = <&exp1 9 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &main_pmx0 {
                        AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
                >;
        };
+
+       main_mcan0_pins_default: main-mcan0-pins-default {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* (B17) MCAN0_RX */
+                       AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* (A17) MCAN0_TX */
+               >;
+       };
+
+       main_mcan1_pins_default: main-mcan1-pins-default {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
+                       AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
+               >;
+       };
 };
 
 &main_uart0 {
 &icssg1_mdio {
        status = "disabled";
 };
+
+&main_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan0_pins_default>;
+       phys = <&transceiver1>;
+};
+
+&main_mcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan1_pins_default>;
+       phys = <&transceiver2>;
+};
index 6b04745..a9785be 100644 (file)
 &icssg1_mdio {
        status = "disabled";
 };
+
+&main_mcan0 {
+       status = "disabled";
+};
+
+&main_mcan1 {
+       status = "disabled";
+};
index e2b397c..8a76f48 100644 (file)
@@ -60,6 +60,6 @@
                cache-level = <2>;
                cache-size = <0x40000>;
                cache-line-size = <64>;
-               cache-sets = <512>;
+               cache-sets = <256>;
        };
 };
index 65da226..3079eae 100644 (file)
        reset-gpios = <&wkup_gpio0 27 GPIO_ACTIVE_HIGH>;
 };
 
+&m_can0 {
+       status = "disabled";
+};
+
+&m_can1 {
+       status = "disabled";
+};
+
 &pcie1_ep {
        status = "disabled";
 };
 &icssg2_mdio {
        status = "disabled";
 };
+
+&mcasp0 {
+       status = "disabled";
+};
+
+&mcasp1 {
+       status = "disabled";
+};
+
+&mcasp2 {
+       status = "disabled";
+};
index c93ff15..8d592bf 100644 (file)
                };
        };
 
+       m_can0: mcan@40528000 {
+               compatible = "bosch,m_can";
+               reg = <0x0 0x40528000 0x0 0x400>,
+                     <0x0 0x40500000 0x0 0x4400>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 102 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 102 5>, <&k3_clks 102 0>;
+               clock-names = "hclk", "cclk";
+               interrupt-parent = <&gic500>;
+               interrupts = <GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 545 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       m_can1: mcan@40568000 {
+               compatible = "bosch,m_can";
+               reg = <0x0 0x40568000 0x0 0x400>,
+                     <0x0 0x40540000 0x0 0x4400>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 103 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 103 5>, <&k3_clks 103 0>;
+               clock-names = "hclk", "cclk";
+               interrupt-parent = <&gic500>;
+               interrupts = <GIC_SPI 547 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 548 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
        fss: fss@47000000 {
                compatible = "simple-bus";
                #address-cells = <2>;
index cfbcebf..9043f91 100644 (file)
        status = "disabled";
 };
 
+&m_can0 {
+       status = "disabled";
+};
+
+&m_can1 {
+       status = "disabled";
+};
+
 &mailbox0_cluster0 {
        interrupts = <436>;
 
index d60ef4f..05a627a 100644 (file)
@@ -32,7 +32,7 @@
                #size-cells = <1>;
                ranges = <0x00 0x00 0x00100000 0x1c000>;
 
-               serdes_ln_ctrl: serdes-ln-ctrl@4080 {
+               serdes_ln_ctrl: mux-controller@4080 {
                        compatible = "mmio-mux";
                        #mux-control-cells = <1>;
                        mux-reg-masks = <0x4080 0x3>, <0x4084 0x3>, /* SERDES0 lane0/1 select */
index 47567cb..64fef4e 100644 (file)
@@ -62,7 +62,7 @@
                        i-cache-sets = <256>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
-                       d-cache-sets = <128>;
+                       d-cache-sets = <256>;
                        next-level-cache = <&L2_0>;
                };
 
@@ -76,7 +76,7 @@
                        i-cache-sets = <256>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
-                       d-cache-sets = <128>;
+                       d-cache-sets = <256>;
                        next-level-cache = <&L2_0>;
                };
        };
@@ -86,7 +86,7 @@
                cache-level = <2>;
                cache-size = <0x100000>;
                cache-line-size = <64>;
-               cache-sets = <2048>;
+               cache-sets = <1024>;
                next-level-cache = <&msmc_l3>;
        };
 
index dc2bc67..2d75969 100644 (file)
                              "cpb-codec-scki",
                              "cpb-codec-scki-48000", "cpb-codec-scki-44100";
        };
+
+       transceiver1: can-phy0 {
+               compatible = "ti,tcan1043";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcu_mcan0_gpio_pins_default>;
+               standby-gpios = <&wkup_gpio0 54 GPIO_ACTIVE_LOW>;
+               enable-gpios = <&wkup_gpio0 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver2: can-phy1 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcu_mcan1_gpio_pins_default>;
+               standby-gpios = <&wkup_gpio0 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver3: can-phy2 {
+               compatible = "ti,tcan1043";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               standby-gpios = <&exp2 7 GPIO_ACTIVE_LOW>;
+               enable-gpios = <&exp2 6 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver4: can-phy3 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&main_mcan2_gpio_pins_default>;
+               standby-gpios = <&main_gpio0 127 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &main_pmx0 {
                        J721E_IOPAD(0x1a4, PIN_OUTPUT, 3) /* (W26) RGMII6_RXC.AUDIO_EXT_REFCLK2 */
                >;
        };
+
+       main_mcan0_pins_default: main-mcan0-pins-default {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x208, PIN_INPUT, 0) /* (W5) MCAN0_RX */
+                       J721E_IOPAD(0x20c, PIN_OUTPUT, 0) /* (W6) MCAN0_TX */
+               >;
+       };
+
+       main_mcan2_pins_default: main-mcan2-pins-default {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x01f0, PIN_INPUT, 3) /* (AC2) MCAN2_RX.GPIO0_123 */
+                       J721E_IOPAD(0x01f4, PIN_OUTPUT, 3) /* (AB1) MCAN2_TX.GPIO0_124 */
+               >;
+       };
+
+       main_mcan2_gpio_pins_default: main-mcan2-gpio-pins-default {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x200, PIN_INPUT, 7) /* (AC4) UART1_CTSn.GPIO0_127 */
+               >;
+       };
 };
 
 &wkup_pmx0 {
                        J721E_WKUP_IOPAD(0x0088, PIN_INPUT, 0) /* MCU_MDIO0_MDIO */
                >;
        };
+
+       mcu_mcan0_pins_default: mcu-mcan0-pins-default {
+               pinctrl-single,pins = <
+                       J721E_WKUP_IOPAD(0xac, PIN_INPUT, 0) /* (C29) MCU_MCAN0_RX */
+                       J721E_WKUP_IOPAD(0xa8, PIN_OUTPUT, 0) /* (D29) MCU_MCAN0_TX */
+               >;
+       };
+
+       mcu_mcan0_gpio_pins_default: mcu-mcan0-gpio-pins-default {
+               pinctrl-single,pins = <
+                       J721E_WKUP_IOPAD(0xb0, PIN_INPUT, 7) /* (F26) WKUP_GPIO0_0 */
+                       J721E_WKUP_IOPAD(0x98, PIN_INPUT, 7) /* (E28) MCU_SPI0_D1.WKUP_GPIO0_54 */
+               >;
+       };
+
+       mcu_mcan1_pins_default: mcu-mcan1-pins-default {
+               pinctrl-single,pins = <
+                       J721E_WKUP_IOPAD(0xc4, PIN_INPUT, 0) /* (G24) WKUP_GPIO0_5.MCU_MCAN1_RX */
+                       J721E_WKUP_IOPAD(0xc0, PIN_OUTPUT, 0) /* (G25) WKUP_GPIO0_4.MCU_MCAN1_TX */
+               >;
+       };
+
+       mcu_mcan1_gpio_pins_default: mcu-mcan1-gpio-pins-default {
+               pinctrl-single,pins = <
+                       J721E_WKUP_IOPAD(0xb8, PIN_INPUT, 7) /* (F28) WKUP_GPIO0_2 */
+               >;
+       };
 };
 
 &wkup_uart0 {
 &icssg1_mdio {
        status = "disabled";
 };
+
+&mcu_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan0_pins_default>;
+       phys = <&transceiver1>;
+};
+
+&mcu_mcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan1_pins_default>;
+       phys = <&transceiver2>;
+};
+
+&main_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan0_pins_default>;
+       phys = <&transceiver3>;
+};
+
+&main_mcan1 {
+       status = "disabled";
+};
+
+&main_mcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan2_pins_default>;
+       phys = <&transceiver4>;
+};
+
+&main_mcan3 {
+       status = "disabled";
+};
+
+&main_mcan4 {
+       status = "disabled";
+};
+
+&main_mcan5 {
+       status = "disabled";
+};
+
+&main_mcan6 {
+       status = "disabled";
+};
+
+&main_mcan7 {
+       status = "disabled";
+};
+
+&main_mcan8 {
+       status = "disabled";
+};
+
+&main_mcan9 {
+       status = "disabled";
+};
+
+&main_mcan10 {
+       status = "disabled";
+};
+
+&main_mcan11 {
+       status = "disabled";
+};
+
+&main_mcan12 {
+       status = "disabled";
+};
+
+&main_mcan13 {
+       status = "disabled";
+};
index 08c8d1b..5998612 100644 (file)
@@ -42,7 +42,7 @@
                #size-cells = <1>;
                ranges = <0x0 0x0 0x00100000 0x1c000>;
 
-               serdes_ln_ctrl: mux@4080 {
+               serdes_ln_ctrl: mux-controller@4080 {
                        compatible = "mmio-mux";
                        reg = <0x00004080 0x50>;
                        #mux-control-cells = <1>;
                        bus_freq = <1000000>;
                };
        };
+
+       main_mcan0: can@2701000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02701000 0x00 0x200>,
+                     <0x00 0x02708000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 156 0>, <&k3_clks 156 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan1: can@2711000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02711000 0x00 0x200>,
+                     <0x00 0x02718000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 158 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 158 0>, <&k3_clks 158 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan2: can@2721000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02721000 0x00 0x200>,
+                     <0x00 0x02728000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 160 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 160 0>, <&k3_clks 160 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan3: can@2731000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02731000 0x00 0x200>,
+                     <0x00 0x02738000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 161 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 161 0>, <&k3_clks 161 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan4: can@2741000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02741000 0x00 0x200>,
+                     <0x00 0x02748000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 162 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 162 0>, <&k3_clks 162 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan5: can@2751000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02751000 0x00 0x200>,
+                     <0x00 0x02758000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 163 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 163 0>, <&k3_clks 163 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan6: can@2761000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02761000 0x00 0x200>,
+                     <0x00 0x02768000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 164 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 164 0>, <&k3_clks 164 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan7: can@2771000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02771000 0x00 0x200>,
+                     <0x00 0x02778000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 165 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 165 0>, <&k3_clks 165 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan8: can@2781000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02781000 0x00 0x200>,
+                     <0x00 0x02788000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 166 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 166 0>, <&k3_clks 166 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 576 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 577 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan9: can@2791000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02791000 0x00 0x200>,
+                     <0x00 0x02798000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 167 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 167 0>, <&k3_clks 167 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 579 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 580 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan10: can@27a1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x027a1000 0x00 0x200>,
+                     <0x00 0x027a8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 168 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 168 0>, <&k3_clks 168 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan11: can@27b1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x027b1000 0x00 0x200>,
+                     <0x00 0x027b8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 169 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 169 0>, <&k3_clks 169 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan12: can@27c1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x027c1000 0x00 0x200>,
+                     <0x00 0x027c8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 170 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 170 0>, <&k3_clks 170 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan13: can@27d1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x027d1000 0x00 0x200>,
+                     <0x00 0x027d8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 171 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 171 0>, <&k3_clks 171 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
 };
index d2dceda..b4972df 100644 (file)
                        ti,loczrama = <1>;
                };
        };
+
+       mcu_mcan0: can@40528000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x40528000 0x00 0x200>,
+                     <0x00 0x40500000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 172 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 172 0>, <&k3_clks 172 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 832 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 833 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       mcu_mcan1: can@40568000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x40568000 0x00 0x200>,
+                     <0x00 0x40540000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 173 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 173 0>, <&k3_clks 173 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 835 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 836 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
 };
index 214359e..4a3872f 100644 (file)
@@ -64,7 +64,7 @@
                        i-cache-sets = <256>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
-                       d-cache-sets = <128>;
+                       d-cache-sets = <256>;
                        next-level-cache = <&L2_0>;
                };
 
@@ -78,7 +78,7 @@
                        i-cache-sets = <256>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
-                       d-cache-sets = <128>;
+                       d-cache-sets = <256>;
                        next-level-cache = <&L2_0>;
                };
        };
@@ -88,7 +88,7 @@
                cache-level = <2>;
                cache-size = <0x100000>;
                cache-line-size = <64>;
-               cache-sets = <2048>;
+               cache-sets = <1024>;
                next-level-cache = <&msmc_l3>;
        };
 
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
new file mode 100644 (file)
index 0000000..a5a24f9
--- /dev/null
@@ -0,0 +1,421 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
+ *
+ * Common Processor Board: https://www.ti.com/tool/J721EXCPXEVM
+ */
+
+/dts-v1/;
+
+#include "k3-j721s2-som-p0.dtsi"
+#include <dt-bindings/net/ti-dp83867.h>
+
+/ {
+       compatible = "ti,j721s2-evm", "ti,j721s2";
+       model = "Texas Instruments J721S2 EVM";
+
+       chosen {
+               stdout-path = "serial10:115200n8";
+               bootargs = "console=ttyS10,115200n8 earlycon=ns16550a,mmio32,2880000";
+       };
+
+       evm_12v0: fixedregulator-evm12v0 {
+               /* main supply */
+               compatible = "regulator-fixed";
+               regulator-name = "evm_12v0";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vsys_3v3: fixedregulator-vsys3v3 {
+               /* Output of LM5140 */
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&evm_12v0>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vsys_5v0: fixedregulator-vsys5v0 {
+               /* Output of LM5140 */
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&evm_12v0>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_mmc1: fixedregulator-sd {
+               /* Output of TPS22918 */
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_mmc1";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               enable-active-high;
+               vin-supply = <&vsys_3v3>;
+               gpio = <&exp2 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       vdd_sd_dv: gpio-regulator-TLV71033 {
+               /* Output of TLV71033 */
+               compatible = "regulator-gpio";
+               regulator-name = "tlv71033";
+               pinctrl-names = "default";
+               pinctrl-0 = <&vdd_sd_dv_pins_default>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               vin-supply = <&vsys_5v0>;
+               gpios = <&main_gpio0 8 GPIO_ACTIVE_HIGH>;
+               states = <1800000 0x0>,
+                        <3300000 0x1>;
+       };
+
+       transceiver1: can-phy1 {
+               compatible = "ti,tcan1043";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcu_mcan0_gpio_pins_default>;
+               standby-gpios = <&wkup_gpio0 69 GPIO_ACTIVE_LOW>;
+               enable-gpios = <&wkup_gpio0 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver2: can-phy2 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcu_mcan1_gpio_pins_default>;
+               standby-gpios = <&wkup_gpio0 2 GPIO_ACTIVE_HIGH>;
+       };
+
+};
+
+&main_pmx0 {
+       main_uart8_pins_default: main-uart8-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_IOPAD(0x040, PIN_INPUT, 14) /* (AC28) MCASP0_AXR0.UART8_CTSn */
+                       J721S2_IOPAD(0x044, PIN_OUTPUT, 14) /* (Y26) MCASP0_AXR1.UART8_RTSn */
+                       J721S2_IOPAD(0x0d0, PIN_INPUT, 11) /* (AF26) SPI0_CS1.UART8_RXD */
+                       J721S2_IOPAD(0x0d4, PIN_OUTPUT, 11) /* (AH27) SPI0_CLK.UART8_TXD */
+               >;
+       };
+
+       main_i2c3_pins_default: main-i2c3-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_IOPAD(0x064, PIN_INPUT_PULLUP, 13) /* (W28) MCAN0_TX.I2C3_SCL */
+                       J721S2_IOPAD(0x060, PIN_INPUT_PULLUP, 13) /* (AC27) MCASP2_AXR1.I2C3_SDA */
+               >;
+       };
+
+       main_mmc1_pins_default: main-mmc1-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_IOPAD(0x104, PIN_INPUT, 0) /* (P23) MMC1_CLK */
+                       J721S2_IOPAD(0x108, PIN_INPUT, 0) /* (N24) MMC1_CMD */
+                       J721S2_IOPAD(0x100, PIN_INPUT, 0) /* (###) MMC1_CLKLB */
+                       J721S2_IOPAD(0x0fc, PIN_INPUT, 0) /* (M23) MMC1_DAT0 */
+                       J721S2_IOPAD(0x0f8, PIN_INPUT, 0) /* (P24) MMC1_DAT1 */
+                       J721S2_IOPAD(0x0f4, PIN_INPUT, 0) /* (R24) MMC1_DAT2 */
+                       J721S2_IOPAD(0x0f0, PIN_INPUT, 0) /* (R22) MMC1_DAT3 */
+                       J721S2_IOPAD(0x0e8, PIN_INPUT, 8) /* (AE25) TIMER_IO0.MMC1_SDCD */
+               >;
+       };
+
+       vdd_sd_dv_pins_default: vdd-sd-dv-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_IOPAD(0x020, PIN_INPUT, 7) /* (AA23) MCAN15_RX.GPIO0_8 */
+               >;
+       };
+};
+
+&wkup_pmx0 {
+       mcu_cpsw_pins_default: mcu-cpsw-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_WKUP_IOPAD(0x094, PIN_INPUT, 0) /* (B22) MCU_RGMII1_RD0 */
+                       J721S2_WKUP_IOPAD(0x090, PIN_INPUT, 0) /* (B21) MCU_RGMII1_RD1 */
+                       J721S2_WKUP_IOPAD(0x08c, PIN_INPUT, 0) /* (C22) MCU_RGMII1_RD2 */
+                       J721S2_WKUP_IOPAD(0x088, PIN_INPUT, 0) /* (D23) MCU_RGMII1_RD3 */
+                       J721S2_WKUP_IOPAD(0x084, PIN_INPUT, 0) /* (D22) MCU_RGMII1_RXC */
+                       J721S2_WKUP_IOPAD(0x06c, PIN_INPUT, 0) /* (E23) MCU_RGMII1_RX_CTL */
+                       J721S2_WKUP_IOPAD(0x07c, PIN_OUTPUT, 0) /* (F23) MCU_RGMII1_TD0 */
+                       J721S2_WKUP_IOPAD(0x078, PIN_OUTPUT, 0) /* (G22) MCU_RGMII1_TD1 */
+                       J721S2_WKUP_IOPAD(0x074, PIN_OUTPUT, 0) /* (E21) MCU_RGMII1_TD2 */
+                       J721S2_WKUP_IOPAD(0x070, PIN_OUTPUT, 0) /* (E22) MCU_RGMII1_TD3 */
+                       J721S2_WKUP_IOPAD(0x080, PIN_OUTPUT, 0) /* (F21) MCU_RGMII1_TXC */
+                       J721S2_WKUP_IOPAD(0x068, PIN_OUTPUT, 0) /* (F22) MCU_RGMII1_TX_CTL */
+               >;
+       };
+
+       mcu_mdio_pins_default: mcu-mdio-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_WKUP_IOPAD(0x09c, PIN_OUTPUT, 0) /* (A21) MCU_MDIO0_MDC */
+                       J721S2_WKUP_IOPAD(0x098, PIN_INPUT, 0) /* (A22) MCU_MDIO0_MDIO */
+               >;
+       };
+
+       mcu_mcan0_pins_default: mcu-mcan0-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_WKUP_IOPAD(0x0bc, PIN_INPUT, 0) /* (E28) MCU_MCAN0_RX */
+                       J721S2_WKUP_IOPAD(0x0b8, PIN_OUTPUT, 0) /* (E27) MCU_MCAN0_TX */
+               >;
+       };
+
+       mcu_mcan1_pins_default: mcu-mcan1-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_WKUP_IOPAD(0x0d4, PIN_INPUT, 0) /* (F26) WKUP_GPIO0_5.MCU_MCAN1_RX */
+                       J721S2_WKUP_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (C23) WKUP_GPIO0_4.MCU_MCAN1_TX */
+               >;
+       };
+
+       mcu_mcan0_gpio_pins_default: mcu-mcan0-gpio-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_WKUP_IOPAD(0x0c0, PIN_INPUT, 7) /* (D26) WKUP_GPIO0_0 */
+                       J721S2_WKUP_IOPAD(0x0a8, PIN_INPUT, 7) /* (B25) MCU_SPI0_D1.WKUP_GPIO0_69 */
+               >;
+       };
+
+       mcu_mcan1_gpio_pins_default: mcu-mcan1-gpio-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_WKUP_IOPAD(0x0c8, PIN_INPUT, 7) /* (C28) WKUP_GPIO0_2 */
+               >;
+       };
+};
+
+&main_gpio2 {
+       status = "disabled";
+};
+
+&main_gpio4 {
+       status = "disabled";
+};
+
+&main_gpio6 {
+       status = "disabled";
+};
+
+&wkup_gpio1 {
+       status = "disabled";
+};
+
+&wkup_uart0 {
+       status = "reserved";
+};
+
+&main_uart0 {
+       status = "disabled";
+};
+
+&main_uart1 {
+       status = "disabled";
+};
+
+&main_uart2 {
+       status = "disabled";
+};
+
+&main_uart3 {
+       status = "disabled";
+};
+
+&main_uart4 {
+       status = "disabled";
+};
+
+&main_uart5 {
+       status = "disabled";
+};
+
+&main_uart6 {
+       status = "disabled";
+};
+
+&main_uart7 {
+       status = "disabled";
+};
+
+&main_uart8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_uart8_pins_default>;
+       /* Shared with TFA on this platform */
+       power-domains = <&k3_pds 357 TI_SCI_PD_SHARED>;
+};
+
+&main_uart9 {
+       status = "disabled";
+};
+
+&main_i2c0 {
+       clock-frequency = <400000>;
+
+       exp1: gpio@20 {
+               compatible = "ti,tca6416";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "PCIE_2L_MODE_SEL", "PCIE_2L_PERSTZ", "PCIE_2L_RC_RSTZ",
+                                 "PCIE_2L_EP_RST_EN", "PCIE_1L_MODE_SEL", "PCIE_1L_PERSTZ",
+                                 "PCIE_1L_RC_RSTZ", "PCIE_1L_EP_RST_EN", "PCIE_2L_PRSNT#",
+                                 "PCIE_1L_PRSNT#", "CDCI1_OE1/OE4", "CDCI1_OE2/OE3", "EXP_MUX1",
+                                 "EXP_MUX2", "EXP_MUX3", "GESI_EXP_PHY_RSTz";
+       };
+
+       exp2: gpio@22 {
+               compatible = "ti,tca6424";
+               reg = <0x22>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "APPLE_AUTH_RSTZ", "MLB_RSTZ", "GPIO_USD_PWR_EN", "USBC_PWR_EN",
+                                 "USBC_MODE_SEL1", "USBC_MODE_SEL0", "MCAN0_EN", "MCAN0_STB#",
+                                 "MUX_SPAREMUX_SPARE", "MCASP/TRACE_MUX_S0", "MCASP/TRACE_MUX_S1",
+                                 "MLB_MUX_SEL", "MCAN_MUX_SEL", "MCASP2/SPI3_MUX_SEL", "PCIe_CLKREQn_MUX_SEL",
+                                 "CDCI2_RSTZ", "ENET_EXP_PWRDN", "ENET_EXP_RESETZ", "ENET_I2CMUX_SEL",
+                                 "ENET_EXP_SPARE2", "M2PCIE_RTSZ", "USER_INPUT1", "USER_LED1", "USER_LED2";
+       };
+};
+
+&main_i2c1 {
+       status = "disabled";
+};
+
+&main_i2c2 {
+       status = "disabled";
+};
+
+&main_i2c3 {
+       status = "disabled";
+};
+
+&main_i2c4 {
+       status = "disabled";
+};
+
+&main_i2c5 {
+       status = "disabled";
+};
+
+&main_i2c6 {
+       status = "disabled";
+};
+
+&main_sdhci0 {
+       /* eMMC */
+       non-removable;
+       ti,driver-strength-ohm = <50>;
+       disable-wp;
+};
+
+&main_sdhci1 {
+       /* SD card */
+       pinctrl-0 = <&main_mmc1_pins_default>;
+       pinctrl-names = "default";
+       disable-wp;
+       vmmc-supply = <&vdd_mmc1>;
+       vqmmc-supply = <&vdd_sd_dv>;
+};
+
+&mcu_cpsw {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
+};
+
+&davinci_mdio {
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               ti,min-output-impedance;
+       };
+};
+
+&cpsw_port1 {
+       phy-mode = "rgmii-rxid";
+       phy-handle = <&phy0>;
+};
+
+&mcu_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan0_pins_default>;
+       phys = <&transceiver1>;
+};
+
+&mcu_mcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan1_pins_default>;
+       phys = <&transceiver2>;
+};
+
+&main_mcan0 {
+       status = "disabled";
+};
+
+&main_mcan1 {
+       status = "disabled";
+};
+
+&main_mcan2 {
+       status = "disabled";
+};
+
+&main_mcan3 {
+       status = "disabled";
+};
+
+&main_mcan4 {
+       status = "disabled";
+};
+
+&main_mcan5 {
+       status = "disabled";
+};
+
+&main_mcan6 {
+       status = "disabled";
+};
+
+&main_mcan7 {
+       status = "disabled";
+};
+
+&main_mcan8 {
+       status = "disabled";
+};
+
+&main_mcan9 {
+       status = "disabled";
+};
+
+&main_mcan10 {
+       status = "disabled";
+};
+
+&main_mcan11 {
+       status = "disabled";
+};
+
+&main_mcan12 {
+       status = "disabled";
+};
+
+&main_mcan13 {
+       status = "disabled";
+};
+
+&main_mcan14 {
+       status = "disabled";
+};
+
+&main_mcan15 {
+       status = "disabled";
+};
+
+&main_mcan17 {
+       status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
new file mode 100644 (file)
index 0000000..b04db1d
--- /dev/null
@@ -0,0 +1,937 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for J721S2 SoC Family Main Domain peripherals
+ *
+ * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+&cbass_main {
+       msmc_ram: sram@70000000 {
+               compatible = "mmio-sram";
+               reg = <0x0 0x70000000 0x0 0x400000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x0 0x70000000 0x400000>;
+
+               atf-sram@0 {
+                       reg = <0x0 0x20000>;
+               };
+
+               tifs-sram@1f0000 {
+                       reg = <0x1f0000 0x10000>;
+               };
+
+               l3cache-sram@200000 {
+                       reg = <0x200000 0x200000>;
+               };
+       };
+
+       gic500: interrupt-controller@1800000 {
+               compatible = "arm,gic-v3";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               #interrupt-cells = <3>;
+               interrupt-controller;
+               reg = <0x00 0x01800000 0x00 0x200000>, /* GICD */
+                     <0x00 0x01900000 0x00 0x100000>; /* GICR */
+
+               /* vcpumntirq: virtual CPU interface maintenance interrupt */
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+
+               gic_its: msi-controller@1820000 {
+                       compatible = "arm,gic-v3-its";
+                       reg = <0x00 0x01820000 0x00 0x10000>;
+                       socionext,synquacer-pre-its = <0x1000000 0x400000>;
+                       msi-controller;
+                       #msi-cells = <1>;
+               };
+       };
+
+       main_gpio_intr: interrupt-controller@a00000 {
+               compatible = "ti,sci-intr";
+               reg = <0x00 0x00a00000 0x00 0x800>;
+               ti,intr-trigger-type = <1>;
+               interrupt-controller;
+               interrupt-parent = <&gic500>;
+               #interrupt-cells = <1>;
+               ti,sci = <&sms>;
+               ti,sci-dev-id = <148>;
+               ti,interrupt-ranges = <8 360 56>;
+       };
+
+       main_pmx0: pinctrl@11c000 {
+               compatible = "pinctrl-single";
+               /* Proxy 0 addressing */
+               reg = <0x0 0x11c000 0x0 0x120>;
+               #pinctrl-cells = <1>;
+               pinctrl-single,register-width = <32>;
+               pinctrl-single,function-mask = <0xffffffff>;
+       };
+
+       main_uart0: serial@2800000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02800000 0x00 0x200>;
+               interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 146 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_uart1: serial@2810000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02810000 0x00 0x200>;
+               interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 350 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 350 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_uart2: serial@2820000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02820000 0x00 0x200>;
+               interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 351 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 351 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_uart3: serial@2830000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02830000 0x00 0x200>;
+               interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 352 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 352 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_uart4: serial@2840000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02840000 0x00 0x200>;
+               interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 353 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 353 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_uart5: serial@2850000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02850000 0x00 0x200>;
+               interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 354 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 354 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_uart6: serial@2860000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02860000 0x00 0x200>;
+               interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 355 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 355 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_uart7: serial@2870000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02870000 0x00 0x200>;
+               interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 356 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 356 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_uart8: serial@2880000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02880000 0x00 0x200>;
+               interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 357 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 357 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_uart9: serial@2890000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x02890000 0x00 0x200>;
+               interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 358 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 358 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_gpio0: gpio@600000 {
+               compatible = "ti,j721e-gpio", "ti,keystone-gpio";
+               reg = <0x00 0x00600000 0x00 0x100>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&main_gpio_intr>;
+               interrupts = <145>, <146>, <147>, <148>, <149>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,ngpio = <66>;
+               ti,davinci-gpio-unbanked = <0>;
+               power-domains = <&k3_pds 111 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 111 0>;
+               clock-names = "gpio";
+       };
+
+       main_gpio2: gpio@610000 {
+               compatible = "ti,j721e-gpio", "ti,keystone-gpio";
+               reg = <0x00 0x00610000 0x00 0x100>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&main_gpio_intr>;
+               interrupts = <154>, <155>, <156>, <157>, <158>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,ngpio = <66>;
+               ti,davinci-gpio-unbanked = <0>;
+               power-domains = <&k3_pds 112 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 112 0>;
+               clock-names = "gpio";
+       };
+
+       main_gpio4: gpio@620000 {
+               compatible = "ti,j721e-gpio", "ti,keystone-gpio";
+               reg = <0x00 0x00620000 0x00 0x100>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&main_gpio_intr>;
+               interrupts = <163>, <164>, <165>, <166>, <167>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,ngpio = <66>;
+               ti,davinci-gpio-unbanked = <0>;
+               power-domains = <&k3_pds 113 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 113 0>;
+               clock-names = "gpio";
+       };
+
+       main_gpio6: gpio@630000 {
+               compatible = "ti,j721e-gpio", "ti,keystone-gpio";
+               reg = <0x00 0x00630000 0x00 0x100>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&main_gpio_intr>;
+               interrupts = <172>, <173>, <174>, <175>, <176>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,ngpio = <66>;
+               ti,davinci-gpio-unbanked = <0>;
+               power-domains = <&k3_pds 114 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 114 0>;
+               clock-names = "gpio";
+       };
+
+       main_i2c0: i2c@2000000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x02000000 0x00 0x100>;
+               interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 214 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 214 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_i2c1: i2c@2010000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x02010000 0x00 0x100>;
+               interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 215 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 215 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_i2c2: i2c@2020000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x02020000 0x00 0x100>;
+               interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 216 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 216 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_i2c3: i2c@2030000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x02030000 0x00 0x100>;
+               interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 217 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 217 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_i2c4: i2c@2040000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x02040000 0x00 0x100>;
+               interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 218 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 218 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_i2c5: i2c@2050000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x02050000 0x00 0x100>;
+               interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 219 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 219 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_i2c6: i2c@2060000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x02060000 0x00 0x100>;
+               interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 220 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 220 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       main_sdhci0: mmc@4f80000 {
+               compatible = "ti,j721e-sdhci-8bit";
+               reg = <0x00 0x04f80000 0x00 0x1000>,
+                     <0x00 0x04f88000 0x00 0x400>;
+               interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 98 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 98 7>, <&k3_clks 98 1>;
+               clock-names =  "clk_ahb", "clk_xin";
+               assigned-clocks = <&k3_clks 98 1>;
+               assigned-clock-parents = <&k3_clks 98 2>;
+               bus-width = <8>;
+               ti,otap-del-sel-legacy = <0x0>;
+               ti,otap-del-sel-mmc-hs = <0x0>;
+               ti,otap-del-sel-ddr52 = <0x6>;
+               ti,otap-del-sel-hs200 = <0x8>;
+               ti,otap-del-sel-hs400 = <0x5>;
+               ti,itap-del-sel-legacy = <0x10>;
+               ti,itap-del-sel-mmc-hs = <0xa>;
+               ti,strobe-sel = <0x77>;
+               ti,clkbuf-sel = <0x7>;
+               ti,trm-icp = <0x8>;
+               mmc-ddr-1_8v;
+               mmc-hs200-1_8v;
+               mmc-hs400-1_8v;
+               dma-coherent;
+       };
+
+       main_sdhci1: mmc@4fb0000 {
+               compatible = "ti,j721e-sdhci-4bit";
+               reg = <0x00 0x04fb0000 0x00 0x1000>,
+                     <0x00 0x04fb8000 0x00 0x400>;
+               interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 99 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 99 8>, <&k3_clks 99 1>;
+               clock-names =  "clk_ahb", "clk_xin";
+               assigned-clocks = <&k3_clks 99 1>;
+               assigned-clock-parents = <&k3_clks 99 2>;
+               bus-width = <4>;
+               ti,otap-del-sel-legacy = <0x0>;
+               ti,otap-del-sel-sd-hs = <0x0>;
+               ti,otap-del-sel-sdr12 = <0xf>;
+               ti,otap-del-sel-sdr25 = <0xf>;
+               ti,otap-del-sel-sdr50 = <0xc>;
+               ti,otap-del-sel-sdr104 = <0x5>;
+               ti,otap-del-sel-ddr50 = <0xc>;
+               ti,itap-del-sel-legacy = <0x0>;
+               ti,itap-del-sel-sd-hs = <0x0>;
+               ti,itap-del-sel-sdr12 = <0x0>;
+               ti,itap-del-sel-sdr25 = <0x0>;
+               ti,clkbuf-sel = <0x7>;
+               ti,trm-icp = <0x8>;
+               dma-coherent;
+               /* Masking support for SDR104 capability */
+               sdhci-caps-mask = <0x00000003 0x00000000>;
+       };
+
+       main_navss: bus@30000000 {
+               compatible = "simple-mfd";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges = <0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>;
+               ti,sci-dev-id = <224>;
+               dma-coherent;
+               dma-ranges;
+
+               main_navss_intr: interrupt-controller@310e0000 {
+                       compatible = "ti,sci-intr";
+                       reg = <0x00 0x310e0000 0x00 0x4000>;
+                       ti,intr-trigger-type = <4>;
+                       interrupt-controller;
+                       interrupt-parent = <&gic500>;
+                       #interrupt-cells = <1>;
+                       ti,sci = <&sms>;
+                       ti,sci-dev-id = <227>;
+                       ti,interrupt-ranges = <0 64 64>,
+                                             <64 448 64>,
+                                             <128 672 64>;
+               };
+
+               main_udmass_inta: msi-controller@33d00000 {
+                       compatible = "ti,sci-inta";
+                       reg = <0x00 0x33d00000 0x00 0x100000>;
+                       interrupt-controller;
+                       #interrupt-cells = <0>;
+                       interrupt-parent = <&main_navss_intr>;
+                       msi-controller;
+                       ti,sci = <&sms>;
+                       ti,sci-dev-id = <265>;
+                       ti,interrupt-ranges = <0 0 256>;
+               };
+
+               secure_proxy_main: mailbox@32c00000 {
+                       compatible = "ti,am654-secure-proxy";
+                       #mbox-cells = <1>;
+                       reg-names = "target_data", "rt", "scfg";
+                       reg = <0x00 0x32c00000 0x00 0x100000>,
+                             <0x00 0x32400000 0x00 0x100000>,
+                             <0x00 0x32800000 0x00 0x100000>;
+                       interrupt-names = "rx_011";
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               hwspinlock: spinlock@30e00000 {
+                       compatible = "ti,am654-hwspinlock";
+                       reg = <0x00 0x30e00000 0x00 0x1000>;
+                       #hwlock-cells = <1>;
+               };
+
+               mailbox0_cluster0: mailbox@31f80000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f80000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster1: mailbox@31f81000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f81000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster2: mailbox@31f82000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f82000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster3: mailbox@31f83000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f83000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster4: mailbox@31f84000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f84000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster5: mailbox@31f85000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f85000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster6: mailbox@31f86000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f86000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster7: mailbox@31f87000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f87000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster8: mailbox@31f88000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f88000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster9: mailbox@31f89000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f89000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster10: mailbox@31f8a000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f8a000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox0_cluster11: mailbox@31f8b000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f8b000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster0: mailbox@31f90000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f90000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster1: mailbox@31f91000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f91000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster2: mailbox@31f92000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f92000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster3: mailbox@31f93000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f93000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster4: mailbox@31f94000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f94000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster5: mailbox@31f95000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f95000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster6: mailbox@31f96000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f96000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster7: mailbox@31f97000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f97000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster8: mailbox@31f98000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f98000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster9: mailbox@31f99000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f99000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster10: mailbox@31f9a000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f9a000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               mailbox1_cluster11: mailbox@31f9b000 {
+                       compatible = "ti,am654-mailbox";
+                       reg = <0x00 0x31f9b000 0x00 0x200>;
+                       #mbox-cells = <1>;
+                       ti,mbox-num-users = <4>;
+                       ti,mbox-num-fifos = <16>;
+                       interrupt-parent = <&main_navss_intr>;
+               };
+
+               main_ringacc: ringacc@3c000000 {
+                       compatible = "ti,am654-navss-ringacc";
+                       reg = <0x0 0x3c000000 0x0 0x400000>,
+                             <0x0 0x38000000 0x0 0x400000>,
+                             <0x0 0x31120000 0x0 0x100>,
+                             <0x0 0x33000000 0x0 0x40000>;
+                       reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target";
+                       ti,num-rings = <1024>;
+                       ti,sci-rm-range-gp-rings = <0x1>;
+                       ti,sci = <&sms>;
+                       ti,sci-dev-id = <259>;
+                       msi-parent = <&main_udmass_inta>;
+               };
+
+               main_udmap: dma-controller@31150000 {
+                       compatible = "ti,j721e-navss-main-udmap";
+                       reg = <0x0 0x31150000 0x0 0x100>,
+                             <0x0 0x34000000 0x0 0x80000>,
+                             <0x0 0x35000000 0x0 0x200000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                       msi-parent = <&main_udmass_inta>;
+                       #dma-cells = <1>;
+
+                       ti,sci = <&sms>;
+                       ti,sci-dev-id = <263>;
+                       ti,ringacc = <&main_ringacc>;
+
+                       ti,sci-rm-range-tchan = <0x0d>, /* TX_CHAN */
+                                               <0x0f>, /* TX_HCHAN */
+                                               <0x10>; /* TX_UHCHAN */
+                       ti,sci-rm-range-rchan = <0x0a>, /* RX_CHAN */
+                                               <0x0b>, /* RX_HCHAN */
+                                               <0x0c>; /* RX_UHCHAN */
+                       ti,sci-rm-range-rflow = <0x00>; /* GP RFLOW */
+               };
+
+               cpts@310d0000 {
+                       compatible = "ti,j721e-cpts";
+                       reg = <0x0 0x310d0000 0x0 0x400>;
+                       reg-names = "cpts";
+                       clocks = <&k3_clks 226 5>;
+                       clock-names = "cpts";
+                       interrupts-extended = <&main_navss_intr 391>;
+                       interrupt-names = "cpts";
+                       ti,cpts-periodic-outputs = <6>;
+                       ti,cpts-ext-ts-inputs = <8>;
+               };
+       };
+
+       main_mcan0: can@2701000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02701000 0x00 0x200>,
+                     <0x00 0x02708000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 182 0>, <&k3_clks 182 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan1: can@2711000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02711000 0x00 0x200>,
+                     <0x00 0x02718000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 183 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 183 0>, <&k3_clks 183 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan2: can@2721000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02721000 0x00 0x200>,
+                     <0x00 0x02728000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 184 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 184 0>, <&k3_clks 184 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan3: can@2731000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02731000 0x00 0x200>,
+                     <0x00 0x02738000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 185 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 185 0>, <&k3_clks 185 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan4: can@2741000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02741000 0x00 0x200>,
+                     <0x00 0x02748000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 186 0>, <&k3_clks 186 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan5: can@2751000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02751000 0x00 0x200>,
+                     <0x00 0x02758000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 187 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 187 0>, <&k3_clks 187 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan6: can@2761000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02761000 0x00 0x200>,
+                     <0x00 0x02768000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 188 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 188 0>, <&k3_clks 188 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan7: can@2771000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02771000 0x00 0x200>,
+                     <0x00 0x02778000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 189 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 189 0>, <&k3_clks 189 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan8: can@2781000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02781000 0x00 0x200>,
+                     <0x00 0x02788000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 190 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 190 0>, <&k3_clks 190 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 576 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 577 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan9: can@2791000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02791000 0x00 0x200>,
+                     <0x00 0x02798000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 191 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 191 0>, <&k3_clks 191 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 579 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 580 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan10: can@27a1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x027a1000 0x00 0x200>,
+                     <0x00 0x027a8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 192 0>, <&k3_clks 192 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan11: can@27b1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x027b1000 0x00 0x200>,
+                     <0x00 0x027b8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 193 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 193 0>, <&k3_clks 193 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan12: can@27c1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x027c1000 0x00 0x200>,
+                     <0x00 0x027c8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 194 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 194 0>, <&k3_clks 194 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan13: can@27d1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x027d1000 0x00 0x200>,
+                     <0x00 0x027d8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 195 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 195 0>, <&k3_clks 195 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan14: can@2681000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02681000 0x00 0x200>,
+                     <0x00 0x02688000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 197 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 197 0>, <&k3_clks 197 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 595 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan15: can@2691000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x02691000 0x00 0x200>,
+                     <0x00 0x02698000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 199 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 199 0>, <&k3_clks 199 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan16: can@26a1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x026a1000 0x00 0x200>,
+                     <0x00 0x026a8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 201 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 201 0>, <&k3_clks 201 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 784 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 785 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       main_mcan17: can@26b1000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x026b1000 0x00 0x200>,
+                     <0x00 0x026b8000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 206 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 206 0>, <&k3_clks 206 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 787 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 788 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+};
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi
new file mode 100644 (file)
index 0000000..7521963
--- /dev/null
@@ -0,0 +1,302 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for J721S2 SoC Family MCU/WAKEUP Domain peripherals
+ *
+ * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+&cbass_mcu_wakeup {
+       sms: system-controller@44083000 {
+               compatible = "ti,k2g-sci";
+               ti,host-id = <12>;
+
+               mbox-names = "rx", "tx";
+
+               mboxes= <&secure_proxy_main 11>,
+                       <&secure_proxy_main 13>;
+
+               reg-names = "debug_messages";
+               reg = <0x00 0x44083000 0x00 0x1000>;
+
+               k3_pds: power-controller {
+                       compatible = "ti,sci-pm-domain";
+                       #power-domain-cells = <2>;
+               };
+
+               k3_clks: clock-controller {
+                       compatible = "ti,k2g-sci-clk";
+                       #clock-cells = <2>;
+               };
+
+               k3_reset: reset-controller {
+                       compatible = "ti,sci-reset";
+                       #reset-cells = <2>;
+               };
+       };
+
+       chipid@43000014 {
+               compatible = "ti,am654-chipid";
+               reg = <0x00 0x43000014 0x00 0x4>;
+       };
+
+       mcu_ram: sram@41c00000 {
+               compatible = "mmio-sram";
+               reg = <0x00 0x41c00000 0x00 0x100000>;
+               ranges = <0x00 0x00 0x41c00000 0x100000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+
+       wkup_pmx0: pinctrl@4301c000 {
+               compatible = "pinctrl-single";
+               /* Proxy 0 addressing */
+               reg = <0x00 0x4301c000 0x00 0x178>;
+               #pinctrl-cells = <1>;
+               pinctrl-single,register-width = <32>;
+               pinctrl-single,function-mask = <0xffffffff>;
+       };
+
+       wkup_gpio_intr: interrupt-controller@42200000 {
+               compatible = "ti,sci-intr";
+               reg = <0x00 0x42200000 0x00 0x400>;
+               ti,intr-trigger-type = <1>;
+               interrupt-controller;
+               interrupt-parent = <&gic500>;
+               #interrupt-cells = <1>;
+               ti,sci = <&sms>;
+               ti,sci-dev-id = <125>;
+               ti,interrupt-ranges = <16 928 16>;
+       };
+
+       mcu_conf: syscon@40f00000 {
+               compatible = "syscon", "simple-mfd";
+               reg = <0x0 0x40f00000 0x0 0x20000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x0 0x40f00000 0x20000>;
+
+               phy_gmii_sel: phy@4040 {
+                       compatible = "ti,am654-phy-gmii-sel";
+                       reg = <0x4040 0x4>;
+                       #phy-cells = <1>;
+               };
+
+       };
+
+       wkup_uart0: serial@42300000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x42300000 0x00 0x200>;
+               interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 359 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 359 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       mcu_uart0: serial@40a00000 {
+               compatible = "ti,j721e-uart", "ti,am654-uart";
+               reg = <0x00 0x40a00000 0x00 0x200>;
+               interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
+               current-speed = <115200>;
+               clocks = <&k3_clks 149 3>;
+               clock-names = "fclk";
+               power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       wkup_gpio0: gpio@42110000 {
+               compatible = "ti,j721e-gpio", "ti,keystone-gpio";
+               reg = <0x00 0x42110000 0x00 0x100>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&main_gpio_intr>;
+               interrupts = <103>, <104>, <105>, <106>, <107>, <108>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,ngpio = <89>;
+               ti,davinci-gpio-unbanked = <0>;
+               power-domains = <&k3_pds 115 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 115 0>;
+               clock-names = "gpio";
+       };
+
+       wkup_gpio1: gpio@42100000 {
+               compatible = "ti,j721e-gpio", "ti,keystone-gpio";
+               reg = <0x00 0x42100000 0x00 0x100>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&main_gpio_intr>;
+               interrupts = <112>, <113>, <114>, <115>, <116>, <117>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,ngpio = <89>;
+               ti,davinci-gpio-unbanked = <0>;
+               power-domains = <&k3_pds 116 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 116 0>;
+               clock-names = "gpio";
+       };
+
+       wkup_i2c0: i2c@42120000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x42120000 0x00 0x100>;
+               interrupts = <GIC_SPI 896 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 223 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 223 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       mcu_i2c0: i2c@40b00000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x40b00000 0x00 0x100>;
+               interrupts = <GIC_SPI 852 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 221 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 221 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       mcu_i2c1: i2c@40b10000 {
+               compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x40b10000 0x00 0x100>;
+               interrupts = <GIC_SPI 853 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&k3_clks 222 1>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 222 TI_SCI_PD_EXCLUSIVE>;
+       };
+
+       mcu_mcan0: can@40528000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x40528000 0x00 0x200>,
+                     <0x00 0x40500000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 207 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 207 0>, <&k3_clks 207 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 832 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 833 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       mcu_mcan1: can@40568000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x40568000 0x00 0x200>,
+                     <0x00 0x40540000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 208 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 208 0>, <&k3_clks 208 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 835 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 836 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
+
+       mcu_navss: bus@28380000{
+               compatible = "simple-mfd";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>;
+               dma-coherent;
+               dma-ranges;
+
+               ti,sci-dev-id = <267>;
+
+               mcu_ringacc: ringacc@2b800000 {
+                       compatible = "ti,am654-navss-ringacc";
+                       reg = <0x0 0x2b800000 0x0 0x400000>,
+                             <0x0 0x2b000000 0x0 0x400000>,
+                             <0x0 0x28590000 0x0 0x100>,
+                             <0x0 0x2a500000 0x0 0x40000>;
+                       reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target";
+                       ti,num-rings = <286>;
+                       ti,sci-rm-range-gp-rings = <0x1>;
+                       ti,sci = <&sms>;
+                       ti,sci-dev-id = <272>;
+                       msi-parent = <&main_udmass_inta>;
+               };
+
+               mcu_udmap: dma-controller@285c0000 {
+                       compatible = "ti,j721e-navss-mcu-udmap";
+                       reg = <0x0 0x285c0000 0x0 0x100>,
+                             <0x0 0x2a800000 0x0 0x40000>,
+                             <0x0 0x2aa00000 0x0 0x40000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt";
+                       msi-parent = <&main_udmass_inta>;
+                       #dma-cells = <1>;
+
+                       ti,sci = <&sms>;
+                       ti,sci-dev-id = <273>;
+                       ti,ringacc = <&mcu_ringacc>;
+                       ti,sci-rm-range-tchan = <0x0d>, /* TX_CHAN */
+                                               <0x0f>; /* TX_HCHAN */
+                       ti,sci-rm-range-rchan = <0x0a>, /* RX_CHAN */
+                                               <0x0b>; /* RX_HCHAN */
+                       ti,sci-rm-range-rflow = <0x00>; /* GP RFLOW */
+               };
+       };
+
+       mcu_cpsw: ethernet@46000000 {
+               compatible = "ti,j721e-cpsw-nuss";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               reg = <0x0 0x46000000 0x0 0x200000>;
+               reg-names = "cpsw_nuss";
+               ranges = <0x0 0x0 0x0 0x46000000 0x0 0x200000>;
+               dma-coherent;
+               clocks = <&k3_clks 29 28>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 29 TI_SCI_PD_EXCLUSIVE>;
+
+               dmas = <&mcu_udmap 0xf000>,
+                      <&mcu_udmap 0xf001>,
+                      <&mcu_udmap 0xf002>,
+                      <&mcu_udmap 0xf003>,
+                      <&mcu_udmap 0xf004>,
+                      <&mcu_udmap 0xf005>,
+                      <&mcu_udmap 0xf006>,
+                      <&mcu_udmap 0xf007>,
+                      <&mcu_udmap 0x7000>;
+               dma-names = "tx0", "tx1", "tx2", "tx3",
+                           "tx4", "tx5", "tx6", "tx7",
+                           "rx";
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cpsw_port1: port@1 {
+                               reg = <1>;
+                               ti,mac-only;
+                               label = "port1";
+                               ti,syscon-efuse = <&mcu_conf 0x200>;
+                               phys = <&phy_gmii_sel 1>;
+                       };
+               };
+
+               davinci_mdio: mdio@f00 {
+                       compatible = "ti,cpsw-mdio","ti,davinci_mdio";
+                       reg = <0x0 0xf00 0x0 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&k3_clks 29 28>;
+                       clock-names = "fck";
+                       bus_freq = <1000000>;
+               };
+
+               cpts@3d000 {
+                       compatible = "ti,am65-cpts";
+                       reg = <0x0 0x3d000 0x0 0x400>;
+                       clocks = <&k3_clks 29 3>;
+                       clock-names = "cpts";
+                       interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "cpts";
+                       ti,cpts-ext-ts-inputs = <4>;
+                       ti,cpts-periodic-outputs = <2>;
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi
new file mode 100644 (file)
index 0000000..76f0cea
--- /dev/null
@@ -0,0 +1,175 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * SoM: https://www.ti.com/lit/zip/sprr439
+ *
+ * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+
+#include "k3-j721s2.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       memory@80000000 {
+               device_type = "memory";
+               /* 16 GB RAM */
+               reg = <0x00 0x80000000 0x00 0x80000000>,
+                     <0x08 0x80000000 0x03 0x80000000>;
+       };
+
+       /* Reserving memory regions still pending */
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               secure_ddr: optee@9e800000 {
+                       reg = <0x00 0x9e800000 0x00 0x01800000>;
+                       alignment = <0x1000>;
+                       no-map;
+               };
+       };
+
+       transceiver0: can-phy0 {
+               /* standby pin has been grounded by default */
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+       };
+};
+
+&main_pmx0 {
+       main_i2c0_pins_default: main-i2c0-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_IOPAD(0x0e0, PIN_INPUT_PULLUP, 0) /* (AH25) I2C0_SCL */
+                       J721S2_IOPAD(0x0e4, PIN_INPUT_PULLUP, 0) /* (AE24) I2C0_SDA */
+               >;
+       };
+
+       main_mcan16_pins_default: main-mcan16-pins-default {
+               pinctrl-single,pins = <
+                       J721S2_IOPAD(0x028, PIN_INPUT, 0) /* (AB24) MCAN16_RX */
+                       J721S2_IOPAD(0x024, PIN_OUTPUT, 0) /* (Y28) MCAN16_TX */
+               >;
+       };
+};
+
+&main_i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_i2c0_pins_default>;
+       clock-frequency = <400000>;
+
+       exp_som: gpio@21 {
+               compatible = "ti,tca6408";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "USB2.0_MUX_SEL", "CANUART_MUX1_SEL0",
+                                 "CANUART_MUX2_SEL0", "CANUART_MUX_SEL1",
+                                 "GPIO_RGMII1_RST", "GPIO_eDP_ENABLE",
+                                  "GPIO_LIN_EN", "CAN_STB";
+       };
+};
+
+&main_mcan16 {
+       pinctrl-0 = <&main_mcan16_pins_default>;
+       pinctrl-names = "default";
+       phys = <&transceiver0>;
+};
+
+&mailbox0_cluster0 {
+       status = "disabled";
+};
+
+&mailbox0_cluster1 {
+       status = "disabled";
+};
+
+&mailbox0_cluster2 {
+       status = "disabled";
+};
+
+&mailbox0_cluster3 {
+       status = "disabled";
+};
+
+&mailbox0_cluster4 {
+       status = "disabled";
+};
+
+&mailbox0_cluster5 {
+       status = "disabled";
+};
+
+&mailbox0_cluster6 {
+       status = "disabled";
+};
+
+&mailbox0_cluster7 {
+       status = "disabled";
+};
+
+&mailbox0_cluster8 {
+       status = "disabled";
+};
+
+&mailbox0_cluster9 {
+       status = "disabled";
+};
+
+&mailbox0_cluster10 {
+       status = "disabled";
+};
+
+&mailbox0_cluster11 {
+       status = "disabled";
+};
+
+&mailbox1_cluster0 {
+       status = "disabled";
+};
+
+&mailbox1_cluster1 {
+       status = "disabled";
+};
+
+&mailbox1_cluster2 {
+       status = "disabled";
+};
+
+&mailbox1_cluster3 {
+       status = "disabled";
+};
+
+&mailbox1_cluster4 {
+       status = "disabled";
+};
+
+&mailbox1_cluster5 {
+       status = "disabled";
+};
+
+&mailbox1_cluster6 {
+       status = "disabled";
+};
+
+&mailbox1_cluster7 {
+       status = "disabled";
+};
+
+&mailbox1_cluster8 {
+       status = "disabled";
+};
+
+&mailbox1_cluster9 {
+       status = "disabled";
+};
+
+&mailbox1_cluster10 {
+       status = "disabled";
+};
+
+&mailbox1_cluster11 {
+       status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2.dtsi
new file mode 100644 (file)
index 0000000..80d3cae
--- /dev/null
@@ -0,0 +1,189 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for J721S2 SoC Family
+ *
+ * TRM (SPRUJ28 â€“ NOVEMBER 2021) : http://www.ti.com/lit/pdf/spruj28
+ *
+ * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
+ *
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/pinctrl/k3.h>
+#include <dt-bindings/soc/ti,sci_pm_domain.h>
+
+/ {
+
+       model = "Texas Instruments K3 J721S2 SoC";
+       compatible = "ti,j721s2";
+       interrupt-parent = <&gic500>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               serial0 = &wkup_uart0;
+               serial1 = &mcu_uart0;
+               serial2 = &main_uart0;
+               serial3 = &main_uart1;
+               serial4 = &main_uart2;
+               serial5 = &main_uart3;
+               serial6 = &main_uart4;
+               serial7 = &main_uart5;
+               serial8 = &main_uart6;
+               serial9 = &main_uart7;
+               serial10 = &main_uart8;
+               serial11 = &main_uart9;
+               mmc0 = &main_sdhci0;
+               mmc1 = &main_sdhci1;
+               can0 = &main_mcan16;
+               can1 = &mcu_mcan0;
+               can2 = &mcu_mcan1;
+               can3 = &main_mcan3;
+               can4 = &main_mcan5;
+       };
+
+       chosen { };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu-map {
+                       cluster0: cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       compatible = "arm,cortex-a72";
+                       reg = <0x000>;
+                       device_type = "cpu";
+                       enable-method = "psci";
+                       i-cache-size = <0xc000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&L2_0>;
+               };
+
+               cpu1: cpu@1 {
+                       compatible = "arm,cortex-a72";
+                       reg = <0x001>;
+                       device_type = "cpu";
+                       enable-method = "psci";
+                       i-cache-size = <0xc000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&L2_0>;
+               };
+       };
+
+       L2_0: l2-cache0 {
+               compatible = "cache";
+               cache-level = <2>;
+               cache-size = <0x100000>;
+               cache-line-size = <64>;
+               cache-sets = <1024>;
+               next-level-cache = <&msmc_l3>;
+       };
+
+       msmc_l3: l3-cache0 {
+               compatible = "cache";
+               cache-level = <3>;
+       };
+
+       firmware {
+               optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+               };
+
+               psci: psci {
+                       compatible = "arm,psci-1.0";
+                       method = "smc";
+               };
+       };
+
+       a72_timer0: timer-cl0-cpu0 {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* cntpsirq */
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* cntpnsirq */
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* cntvirq */
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* cnthpirq */
+
+       };
+
+       pmu: pmu {
+               compatible = "arm,cortex-a72-pmu";
+               /* Recommendation from GIC500 TRM Table A.3 */
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       cbass_main: bus@100000 {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
+                        <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
+                        <0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
+                        <0x00 0x0d800000 0x00 0x0d800000 0x00 0x00800000>, /* PCIe Core*/
+                        <0x00 0x18000000 0x00 0x18000000 0x00 0x08000000>, /* PCIe1 DAT0 */
+                        <0x00 0x64800000 0x00 0x64800000 0x00 0x0070c000>, /* C71_1 */
+                        <0x00 0x65800000 0x00 0x65800000 0x00 0x0070c000>, /* C71_2 */
+                        <0x00 0x70000000 0x00 0x70000000 0x00 0x00400000>, /* MSMC RAM */
+                        <0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>, /* MAIN NAVSS */
+                        <0x41 0x00000000 0x41 0x00000000 0x01 0x00000000>, /* PCIe1 DAT1 */
+                        <0x4e 0x20000000 0x4e 0x20000000 0x00 0x00080000>, /* GPU */
+
+                        /* MCUSS_WKUP Range */
+                        <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>,
+                        <0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>,
+                        <0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>,
+                        <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>,
+                        <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>,
+                        <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>,
+                        <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>,
+                        <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>,
+                        <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
+                        <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
+                        <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
+                        <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>,
+                        <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>;
+
+               cbass_mcu_wakeup: bus@28380000 {
+                       compatible = "simple-bus";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, /* MCU NAVSS*/
+                                <0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>, /* First peripheral window */
+                                <0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>, /* CTRL_MMR0 */
+                                <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, /* MCU R5F Core0 */
+                                <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, /* MCU R5F Core1 */
+                                <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>, /* MCU SRAM */
+                                <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP peripheral window */
+                                <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
+                                <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
+                                <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI register space */
+                                <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS OSPI0/1 data region 0 */
+                                <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>, /* FSS OSPI0 data region 3 */
+                                <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>; /* FSS OSPI1 data region 3*/
+
+               };
+
+       };
+};
+
+/* Now include peripherals from each bus segment */
+#include "k3-j721s2-main.dtsi"
+#include "k3-j721s2-mcu-wakeup.dtsi"
index 54d1f96..a8c11c0 100644 (file)
@@ -51,8 +51,6 @@
 
 #define CLK_USB_OHCI1_12M              92
 
-#define CLK_DRAM                       94
-
 /* All the DRAM gates are exported */
 
 /* And the DSI and GPU module clock is exported */
index d8c3844..e13f3c4 100644 (file)
@@ -42,8 +42,6 @@
 
 /* The first bunch of module clocks are exported */
 
-#define CLK_DRAM               96
-
 /* All the DRAM gates are exported */
 
 /* Some more module clocks are exported */
index cdc3e38..4dfb5a8 100644 (file)
@@ -405,11 +405,14 @@ static int brcmstb_pm_init(void)
                i = ctrl.num_memc;
                if (i >= MAX_NUM_MEMC) {
                        pr_warn("Too many MEMCs (max %d)\n", MAX_NUM_MEMC);
+                       of_node_put(dn);
                        break;
                }
                base = brcmstb_ioremap_node(dn, 0);
-               if (IS_ERR(base))
+               if (IS_ERR(base)) {
+                       of_node_put(dn);
                        goto ddr_err;
+               }
 
                ctrl.memcs[i].ddr_phy_base = base;
                ctrl.num_memc++;
diff --git a/include/dt-bindings/clock/qcom,gcc-sdx65.h b/include/dt-bindings/clock/qcom,gcc-sdx65.h
new file mode 100644 (file)
index 0000000..75ecc92
--- /dev/null
@@ -0,0 +1,122 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2021, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GCC_SDX65_H
+#define _DT_BINDINGS_CLK_QCOM_GCC_SDX65_H
+
+/* GCC clocks */
+#define GPLL0                                                  0
+#define GPLL0_OUT_EVEN                                         1
+#define GCC_AHB_PCIE_LINK_CLK                                  2
+#define GCC_BLSP1_AHB_CLK                                      3
+#define GCC_BLSP1_QUP1_I2C_APPS_CLK                            4
+#define GCC_BLSP1_QUP1_I2C_APPS_CLK_SRC                                5
+#define GCC_BLSP1_QUP1_SPI_APPS_CLK                            6
+#define GCC_BLSP1_QUP1_SPI_APPS_CLK_SRC                                7
+#define GCC_BLSP1_QUP2_I2C_APPS_CLK                            8
+#define GCC_BLSP1_QUP2_I2C_APPS_CLK_SRC                                9
+#define GCC_BLSP1_QUP2_SPI_APPS_CLK                            10
+#define GCC_BLSP1_QUP2_SPI_APPS_CLK_SRC                                11
+#define GCC_BLSP1_QUP3_I2C_APPS_CLK                            12
+#define GCC_BLSP1_QUP3_I2C_APPS_CLK_SRC                                13
+#define GCC_BLSP1_QUP3_SPI_APPS_CLK                            14
+#define GCC_BLSP1_QUP3_SPI_APPS_CLK_SRC                                15
+#define GCC_BLSP1_QUP4_I2C_APPS_CLK                            16
+#define GCC_BLSP1_QUP4_I2C_APPS_CLK_SRC                                17
+#define GCC_BLSP1_QUP4_SPI_APPS_CLK                            18
+#define GCC_BLSP1_QUP4_SPI_APPS_CLK_SRC                                19
+#define GCC_BLSP1_SLEEP_CLK                                    20
+#define GCC_BLSP1_UART1_APPS_CLK                               21
+#define GCC_BLSP1_UART1_APPS_CLK_SRC                           22
+#define GCC_BLSP1_UART2_APPS_CLK                               23
+#define GCC_BLSP1_UART2_APPS_CLK_SRC                           24
+#define GCC_BLSP1_UART3_APPS_CLK                               25
+#define GCC_BLSP1_UART3_APPS_CLK_SRC                           26
+#define GCC_BLSP1_UART4_APPS_CLK                               27
+#define GCC_BLSP1_UART4_APPS_CLK_SRC                           28
+#define GCC_BOOT_ROM_AHB_CLK                                   29
+#define GCC_CPUSS_AHB_CLK                                      30
+#define GCC_CPUSS_AHB_CLK_SRC                                  31
+#define GCC_CPUSS_AHB_POSTDIV_CLK_SRC                          32
+#define GCC_CPUSS_GNOC_CLK                                     33
+#define GCC_GP1_CLK                                            34
+#define GCC_GP1_CLK_SRC                                                35
+#define GCC_GP2_CLK                                            36
+#define GCC_GP2_CLK_SRC                                                37
+#define GCC_GP3_CLK                                            38
+#define GCC_GP3_CLK_SRC                                                39
+#define GCC_PCIE_0_CLKREF_EN                                   40
+#define GCC_PCIE_AUX_CLK                                       41
+#define GCC_PCIE_AUX_CLK_SRC                                   42
+#define GCC_PCIE_AUX_PHY_CLK_SRC                               43
+#define GCC_PCIE_CFG_AHB_CLK                                   44
+#define GCC_PCIE_MSTR_AXI_CLK                                  45
+#define GCC_PCIE_PIPE_CLK                                      46
+#define GCC_PCIE_PIPE_CLK_SRC                                  47
+#define GCC_PCIE_RCHNG_PHY_CLK                                 48
+#define GCC_PCIE_RCHNG_PHY_CLK_SRC                             49
+#define GCC_PCIE_SLEEP_CLK                                     50
+#define GCC_PCIE_SLV_AXI_CLK                                   51
+#define GCC_PCIE_SLV_Q2A_AXI_CLK                               52
+#define GCC_PDM2_CLK                                           53
+#define GCC_PDM2_CLK_SRC                                       54
+#define GCC_PDM_AHB_CLK                                                55
+#define GCC_PDM_XO4_CLK                                                56
+#define GCC_RX1_USB2_CLKREF_EN                                 57
+#define GCC_SDCC1_AHB_CLK                                      58
+#define GCC_SDCC1_APPS_CLK                                     59
+#define GCC_SDCC1_APPS_CLK_SRC                                 60
+#define GCC_SPMI_FETCHER_AHB_CLK                               61
+#define GCC_SPMI_FETCHER_CLK                                   62
+#define GCC_SPMI_FETCHER_CLK_SRC                               63
+#define GCC_SYS_NOC_CPUSS_AHB_CLK                              64
+#define GCC_USB30_MASTER_CLK                                   65
+#define GCC_USB30_MASTER_CLK_SRC                               66
+#define GCC_USB30_MOCK_UTMI_CLK                                        67
+#define GCC_USB30_MOCK_UTMI_CLK_SRC                            68
+#define GCC_USB30_MOCK_UTMI_POSTDIV_CLK_SRC                    69
+#define GCC_USB30_MSTR_AXI_CLK                                 70
+#define GCC_USB30_SLEEP_CLK                                    71
+#define GCC_USB30_SLV_AHB_CLK                                  72
+#define GCC_USB3_PHY_AUX_CLK                                   73
+#define GCC_USB3_PHY_AUX_CLK_SRC                               74
+#define GCC_USB3_PHY_PIPE_CLK                                  75
+#define GCC_USB3_PHY_PIPE_CLK_SRC                              76
+#define GCC_USB3_PRIM_CLKREF_EN                                        77
+#define GCC_USB_PHY_CFG_AHB2PHY_CLK                            78
+#define GCC_XO_DIV4_CLK                                                79
+#define GCC_XO_PCIE_LINK_CLK                                   80
+
+/* GCC resets */
+#define GCC_BLSP1_QUP1_BCR                                     0
+#define GCC_BLSP1_QUP2_BCR                                     1
+#define GCC_BLSP1_QUP3_BCR                                     2
+#define GCC_BLSP1_QUP4_BCR                                     3
+#define GCC_BLSP1_UART1_BCR                                    4
+#define GCC_BLSP1_UART2_BCR                                    5
+#define GCC_BLSP1_UART3_BCR                                    6
+#define GCC_BLSP1_UART4_BCR                                    7
+#define GCC_PCIE_BCR                                           8
+#define GCC_PCIE_LINK_DOWN_BCR                                 9
+#define GCC_PCIE_NOCSR_COM_PHY_BCR                             10
+#define GCC_PCIE_PHY_BCR                                       11
+#define GCC_PCIE_PHY_CFG_AHB_BCR                               12
+#define GCC_PCIE_PHY_COM_BCR                                   13
+#define GCC_PCIE_PHY_NOCSR_COM_PHY_BCR                         14
+#define GCC_PDM_BCR                                            15
+#define GCC_QUSB2PHY_BCR                                       16
+#define GCC_SDCC1_BCR                                          17
+#define GCC_SPMI_FETCHER_BCR                                   18
+#define GCC_TCSR_PCIE_BCR                                      19
+#define GCC_USB30_BCR                                          20
+#define GCC_USB3_PHY_BCR                                       21
+#define GCC_USB3PHY_PHY_BCR                                    22
+#define GCC_USB_PHY_CFG_AHB2PHY_BCR                            23
+
+/* GCC power domains */
+#define USB30_GDSC                                              0
+#define PCIE_GDSC                                               1
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,gcc-sm8450.h b/include/dt-bindings/clock/qcom,gcc-sm8450.h
new file mode 100644 (file)
index 0000000..cf14693
--- /dev/null
@@ -0,0 +1,244 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021, Linaro Limited
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GCC_SM8450_H
+#define _DT_BINDINGS_CLK_QCOM_GCC_SM8450_H
+
+/* GCC HW clocks */
+#define CORE_BI_PLL_TEST_SE                                    0
+#define PCIE_0_PIPE_CLK                                                1
+#define PCIE_1_PHY_AUX_CLK                                     2
+#define PCIE_1_PIPE_CLK                                                3
+#define UFS_PHY_RX_SYMBOL_0_CLK                                        4
+#define UFS_PHY_RX_SYMBOL_1_CLK                                        5
+#define UFS_PHY_TX_SYMBOL_0_CLK                                        6
+#define USB3_PHY_WRAPPER_GCC_USB30_PIPE_CLK                    7
+
+/* GCC clocks */
+#define GCC_AGGRE_NOC_PCIE_0_AXI_CLK                           8
+#define GCC_AGGRE_NOC_PCIE_1_AXI_CLK                           9
+#define GCC_AGGRE_UFS_PHY_AXI_CLK                              10
+#define GCC_AGGRE_UFS_PHY_AXI_HW_CTL_CLK                       11
+#define GCC_AGGRE_USB3_PRIM_AXI_CLK                            12
+#define GCC_ANOC_PCIE_PWRCTL_CLK                               13
+#define GCC_BOOT_ROM_AHB_CLK                                   14
+#define GCC_CAMERA_AHB_CLK                                     15
+#define GCC_CAMERA_HF_AXI_CLK                                  16
+#define GCC_CAMERA_SF_AXI_CLK                                  17
+#define GCC_CAMERA_XO_CLK                                      18
+#define GCC_CFG_NOC_PCIE_ANOC_AHB_CLK                          19
+#define GCC_CFG_NOC_USB3_PRIM_AXI_CLK                          20
+#define GCC_CPUSS_AHB_CLK                                      21
+#define GCC_CPUSS_AHB_CLK_SRC                                  22
+#define GCC_CPUSS_AHB_POSTDIV_CLK_SRC                          23
+#define GCC_CPUSS_CONFIG_NOC_SF_CLK                            24
+#define GCC_DDRSS_GPU_AXI_CLK                                  25
+#define GCC_DDRSS_PCIE_SF_TBU_CLK                              26
+#define GCC_DISP_AHB_CLK                                       27
+#define GCC_DISP_HF_AXI_CLK                                    28
+#define GCC_DISP_SF_AXI_CLK                                    29
+#define GCC_DISP_XO_CLK                                                30
+#define GCC_EUSB3_0_CLKREF_EN                                  31
+#define GCC_GP1_CLK                                            32
+#define GCC_GP1_CLK_SRC                                                33
+#define GCC_GP2_CLK                                            34
+#define GCC_GP2_CLK_SRC                                                35
+#define GCC_GP3_CLK                                            36
+#define GCC_GP3_CLK_SRC                                                37
+#define GCC_GPLL0                                              38
+#define GCC_GPLL0_OUT_EVEN                                     39
+#define GCC_GPLL4                                              40
+#define GCC_GPLL9                                              41
+#define GCC_GPU_CFG_AHB_CLK                                    42
+#define GCC_GPU_GPLL0_CLK_SRC                                  43
+#define GCC_GPU_GPLL0_DIV_CLK_SRC                              44
+#define GCC_GPU_MEMNOC_GFX_CLK                                 45
+#define GCC_GPU_SNOC_DVM_GFX_CLK                               46
+#define GCC_PCIE_0_AUX_CLK                                     47
+#define GCC_PCIE_0_AUX_CLK_SRC                                 48
+#define GCC_PCIE_0_CFG_AHB_CLK                                 49
+#define GCC_PCIE_0_CLKREF_EN                                   50
+#define GCC_PCIE_0_MSTR_AXI_CLK                                        51
+#define GCC_PCIE_0_PHY_RCHNG_CLK                               52
+#define GCC_PCIE_0_PHY_RCHNG_CLK_SRC                           53
+#define GCC_PCIE_0_PIPE_CLK                                    54
+#define GCC_PCIE_0_PIPE_CLK_SRC                                        55
+#define GCC_PCIE_0_SLV_AXI_CLK                                 56
+#define GCC_PCIE_0_SLV_Q2A_AXI_CLK                             57
+#define GCC_PCIE_1_AUX_CLK                                     58
+#define GCC_PCIE_1_AUX_CLK_SRC                                 59
+#define GCC_PCIE_1_CFG_AHB_CLK                                 60
+#define GCC_PCIE_1_CLKREF_EN                                   61
+#define GCC_PCIE_1_MSTR_AXI_CLK                                        62
+#define GCC_PCIE_1_PHY_AUX_CLK                                 63
+#define GCC_PCIE_1_PHY_AUX_CLK_SRC                             64
+#define GCC_PCIE_1_PHY_RCHNG_CLK                               65
+#define GCC_PCIE_1_PHY_RCHNG_CLK_SRC                           66
+#define GCC_PCIE_1_PIPE_CLK                                    67
+#define GCC_PCIE_1_PIPE_CLK_SRC                                        68
+#define GCC_PCIE_1_SLV_AXI_CLK                                 69
+#define GCC_PCIE_1_SLV_Q2A_AXI_CLK                             70
+#define GCC_PDM2_CLK                                           71
+#define GCC_PDM2_CLK_SRC                                       72
+#define GCC_PDM_AHB_CLK                                                73
+#define GCC_PDM_XO4_CLK                                                74
+#define GCC_QMIP_CAMERA_NRT_AHB_CLK                            75
+#define GCC_QMIP_CAMERA_RT_AHB_CLK                             76
+#define GCC_QMIP_DISP_AHB_CLK                                  77
+#define GCC_QMIP_GPU_AHB_CLK                                   78
+#define GCC_QMIP_PCIE_AHB_CLK                                  79
+#define GCC_QMIP_VIDEO_CV_CPU_AHB_CLK                          80
+#define GCC_QMIP_VIDEO_CVP_AHB_CLK                             81
+#define GCC_QMIP_VIDEO_V_CPU_AHB_CLK                           82
+#define GCC_QMIP_VIDEO_VCODEC_AHB_CLK                          83
+#define GCC_QUPV3_WRAP0_CORE_2X_CLK                            84
+#define GCC_QUPV3_WRAP0_CORE_CLK                               85
+#define GCC_QUPV3_WRAP0_S0_CLK                                 86
+#define GCC_QUPV3_WRAP0_S0_CLK_SRC                             87
+#define GCC_QUPV3_WRAP0_S1_CLK                                 88
+#define GCC_QUPV3_WRAP0_S1_CLK_SRC                             89
+#define GCC_QUPV3_WRAP0_S2_CLK                                 90
+#define GCC_QUPV3_WRAP0_S2_CLK_SRC                             91
+#define GCC_QUPV3_WRAP0_S3_CLK                                 92
+#define GCC_QUPV3_WRAP0_S3_CLK_SRC                             93
+#define GCC_QUPV3_WRAP0_S4_CLK                                 94
+#define GCC_QUPV3_WRAP0_S4_CLK_SRC                             95
+#define GCC_QUPV3_WRAP0_S5_CLK                                 96
+#define GCC_QUPV3_WRAP0_S5_CLK_SRC                             97
+#define GCC_QUPV3_WRAP0_S6_CLK                                 98
+#define GCC_QUPV3_WRAP0_S6_CLK_SRC                             99
+#define GCC_QUPV3_WRAP0_S7_CLK                                 100
+#define GCC_QUPV3_WRAP0_S7_CLK_SRC                             101
+#define GCC_QUPV3_WRAP1_CORE_2X_CLK                            102
+#define GCC_QUPV3_WRAP1_CORE_CLK                               103
+#define GCC_QUPV3_WRAP1_S0_CLK                                 104
+#define GCC_QUPV3_WRAP1_S0_CLK_SRC                             105
+#define GCC_QUPV3_WRAP1_S1_CLK                                 106
+#define GCC_QUPV3_WRAP1_S1_CLK_SRC                             107
+#define GCC_QUPV3_WRAP1_S2_CLK                                 108
+#define GCC_QUPV3_WRAP1_S2_CLK_SRC                             109
+#define GCC_QUPV3_WRAP1_S3_CLK                                 110
+#define GCC_QUPV3_WRAP1_S3_CLK_SRC                             111
+#define GCC_QUPV3_WRAP1_S4_CLK                                 112
+#define GCC_QUPV3_WRAP1_S4_CLK_SRC                             113
+#define GCC_QUPV3_WRAP1_S5_CLK                                 114
+#define GCC_QUPV3_WRAP1_S5_CLK_SRC                             115
+#define GCC_QUPV3_WRAP1_S6_CLK                                 116
+#define GCC_QUPV3_WRAP1_S6_CLK_SRC                             117
+#define GCC_QUPV3_WRAP2_CORE_2X_CLK                            118
+#define GCC_QUPV3_WRAP2_CORE_CLK                               119
+#define GCC_QUPV3_WRAP2_S0_CLK                                 120
+#define GCC_QUPV3_WRAP2_S0_CLK_SRC                             121
+#define GCC_QUPV3_WRAP2_S1_CLK                                 122
+#define GCC_QUPV3_WRAP2_S1_CLK_SRC                             123
+#define GCC_QUPV3_WRAP2_S2_CLK                                 124
+#define GCC_QUPV3_WRAP2_S2_CLK_SRC                             125
+#define GCC_QUPV3_WRAP2_S3_CLK                                 126
+#define GCC_QUPV3_WRAP2_S3_CLK_SRC                             127
+#define GCC_QUPV3_WRAP2_S4_CLK                                 128
+#define GCC_QUPV3_WRAP2_S4_CLK_SRC                             129
+#define GCC_QUPV3_WRAP2_S5_CLK                                 130
+#define GCC_QUPV3_WRAP2_S5_CLK_SRC                             131
+#define GCC_QUPV3_WRAP2_S6_CLK                                 132
+#define GCC_QUPV3_WRAP2_S6_CLK_SRC                             133
+#define GCC_QUPV3_WRAP_0_M_AHB_CLK                             134
+#define GCC_QUPV3_WRAP_0_S_AHB_CLK                             135
+#define GCC_QUPV3_WRAP_1_M_AHB_CLK                             136
+#define GCC_QUPV3_WRAP_1_S_AHB_CLK                             137
+#define GCC_QUPV3_WRAP_2_M_AHB_CLK                             138
+#define GCC_QUPV3_WRAP_2_S_AHB_CLK                             139
+#define GCC_SDCC2_AHB_CLK                                      140
+#define GCC_SDCC2_APPS_CLK                                     141
+#define GCC_SDCC2_APPS_CLK_SRC                                 142
+#define GCC_SDCC2_AT_CLK                                       143
+#define GCC_SDCC4_AHB_CLK                                      144
+#define GCC_SDCC4_APPS_CLK                                     145
+#define GCC_SDCC4_APPS_CLK_SRC                                 146
+#define GCC_SDCC4_AT_CLK                                       147
+#define GCC_SYS_NOC_CPUSS_AHB_CLK                              148
+#define GCC_UFS_0_CLKREF_EN                                    149
+#define GCC_UFS_PHY_AHB_CLK                                    150
+#define GCC_UFS_PHY_AXI_CLK                                    151
+#define GCC_UFS_PHY_AXI_CLK_SRC                                        152
+#define GCC_UFS_PHY_AXI_HW_CTL_CLK                             153
+#define GCC_UFS_PHY_ICE_CORE_CLK                               154
+#define GCC_UFS_PHY_ICE_CORE_CLK_SRC                           155
+#define GCC_UFS_PHY_ICE_CORE_HW_CTL_CLK                                156
+#define GCC_UFS_PHY_PHY_AUX_CLK                                        157
+#define GCC_UFS_PHY_PHY_AUX_CLK_SRC                            158
+#define GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK                         159
+#define GCC_UFS_PHY_RX_SYMBOL_0_CLK                            160
+#define GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC                                161
+#define GCC_UFS_PHY_RX_SYMBOL_1_CLK                            162
+#define GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC                                163
+#define GCC_UFS_PHY_TX_SYMBOL_0_CLK                            164
+#define GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC                                165
+#define GCC_UFS_PHY_UNIPRO_CORE_CLK                            166
+#define GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC                                167
+#define GCC_UFS_PHY_UNIPRO_CORE_HW_CTL_CLK                     168
+#define GCC_USB30_PRIM_MASTER_CLK                              169
+#define GCC_USB30_PRIM_MASTER_CLK_SRC                          170
+#define GCC_USB30_PRIM_MOCK_UTMI_CLK                           171
+#define GCC_USB30_PRIM_MOCK_UTMI_CLK_SRC                       172
+#define GCC_USB30_PRIM_MOCK_UTMI_POSTDIV_CLK_SRC               173
+#define GCC_USB30_PRIM_SLEEP_CLK                               174
+#define GCC_USB3_0_CLKREF_EN                                   175
+#define GCC_USB3_PRIM_PHY_AUX_CLK                              176
+#define GCC_USB3_PRIM_PHY_AUX_CLK_SRC                          177
+#define GCC_USB3_PRIM_PHY_COM_AUX_CLK                          178
+#define GCC_USB3_PRIM_PHY_PIPE_CLK                             179
+#define GCC_USB3_PRIM_PHY_PIPE_CLK_SRC                         180
+#define GCC_VIDEO_AHB_CLK                                      181
+#define GCC_VIDEO_AXI0_CLK                                     182
+#define GCC_VIDEO_AXI1_CLK                                     183
+#define GCC_VIDEO_XO_CLK                                       184
+
+/* GCC resets */
+#define GCC_CAMERA_BCR                                         0
+#define GCC_DISPLAY_BCR                                                1
+#define GCC_GPU_BCR                                            2
+#define GCC_MMSS_BCR                                           3
+#define GCC_PCIE_0_BCR                                         4
+#define GCC_PCIE_0_LINK_DOWN_BCR                               5
+#define GCC_PCIE_0_NOCSR_COM_PHY_BCR                           6
+#define GCC_PCIE_0_PHY_BCR                                     7
+#define GCC_PCIE_0_PHY_NOCSR_COM_PHY_BCR                       8
+#define GCC_PCIE_1_BCR                                         9
+#define GCC_PCIE_1_LINK_DOWN_BCR                               10
+#define GCC_PCIE_1_NOCSR_COM_PHY_BCR                           11
+#define GCC_PCIE_1_PHY_BCR                                     12
+#define GCC_PCIE_1_PHY_NOCSR_COM_PHY_BCR                       13
+#define GCC_PCIE_PHY_BCR                                       14
+#define GCC_PCIE_PHY_CFG_AHB_BCR                               15
+#define GCC_PCIE_PHY_COM_BCR                                   16
+#define GCC_PDM_BCR                                            17
+#define GCC_QUPV3_WRAPPER_0_BCR                                        18
+#define GCC_QUPV3_WRAPPER_1_BCR                                        19
+#define GCC_QUPV3_WRAPPER_2_BCR                                        20
+#define GCC_QUSB2PHY_PRIM_BCR                                  21
+#define GCC_QUSB2PHY_SEC_BCR                                   22
+#define GCC_SDCC2_BCR                                          23
+#define GCC_SDCC4_BCR                                          24
+#define GCC_UFS_PHY_BCR                                                25
+#define GCC_USB30_PRIM_BCR                                     26
+#define GCC_USB3_DP_PHY_PRIM_BCR                               27
+#define GCC_USB3_DP_PHY_SEC_BCR                                        28
+#define GCC_USB3_PHY_PRIM_BCR                                  29
+#define GCC_USB3_PHY_SEC_BCR                                   30
+#define GCC_USB3PHY_PHY_PRIM_BCR                               31
+#define GCC_USB3PHY_PHY_SEC_BCR                                        32
+#define GCC_USB_PHY_CFG_AHB2PHY_BCR                            33
+#define GCC_VIDEO_AXI0_CLK_ARES                                        34
+#define GCC_VIDEO_AXI1_CLK_ARES                                        35
+#define GCC_VIDEO_BCR                                          36
+
+/* GCC power domains */
+#define PCIE_0_GDSC                                            0
+#define PCIE_1_GDSC                                            1
+#define UFS_PHY_GDSC                                           2
+#define USB30_PRIM_GDSC                                                3
+
+#endif
index 318eb15..1758921 100644 (file)
 #define CLK_USB_OHCI0          91
 
 #define CLK_USB_OHCI1          93
-
+#define CLK_DRAM               94
 #define CLK_DRAM_VE            95
 #define CLK_DRAM_CSI           96
 #define CLK_DRAM_DEINTERLACE   97
index 30d2d15..5d4ada2 100644 (file)
 #define CLK_USB_OHCI1          93
 #define CLK_USB_OHCI2          94
 #define CLK_USB_OHCI3          95
-
+#define CLK_DRAM               96
 #define CLK_DRAM_VE            97
 #define CLK_DRAM_CSI           98
 #define CLK_DRAM_DEINTERLACE   99
index 2c82072..8d7e66e 100644 (file)
@@ -4,11 +4,31 @@
 #ifndef DT_BINDINGS_CLOCK_TEGRA234_CLOCK_H
 #define DT_BINDINGS_CLOCK_TEGRA234_CLOCK_H
 
+/**
+ * @file
+ * @defgroup bpmp_clock_ids Clock ID's
+ * @{
+ */
+/**
+ * @brief controls the EMC clock frequency.
+ * @details Doing a clk_set_rate on this clock will select the
+ * appropriate clock source, program the source rate and execute a
+ * specific sequence to switch to the new clock source for both memory
+ * controllers. This can be used to control the balance between memory
+ * throughput and memory controller power.
+ */
+#define TEGRA234_CLK_EMC                       31U
 /** @brief output of gate CLK_ENB_FUSE */
-#define TEGRA234_CLK_FUSE                      40
+#define TEGRA234_CLK_FUSE                      40U
 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_SDMMC4 */
-#define TEGRA234_CLK_SDMMC4                    123
+#define TEGRA234_CLK_SDMMC4                    123U
 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_UARTA */
-#define TEGRA234_CLK_UARTA                     155
+#define TEGRA234_CLK_UARTA                     155U
+/** @brief CLK_RST_CONTROLLER_CLK_SOURCE_SDMMC_LEGACY_TM switch divider output */
+#define TEGRA234_CLK_SDMMC_LEGACY_TM           219U
+/** @brief PLL controlled by CLK_RST_CONTROLLER_PLLC4_BASE */
+#define TEGRA234_CLK_PLLC4                     237U
+/** @brief 32K input clock provided by PMIC */
+#define TEGRA234_CLK_CLK_32K                   289U
 
 #endif
diff --git a/include/dt-bindings/memory/tegra234-mc.h b/include/dt-bindings/memory/tegra234-mc.h
new file mode 100644 (file)
index 0000000..2662f70
--- /dev/null
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+
+#ifndef DT_BINDINGS_MEMORY_TEGRA234_MC_H
+#define DT_BINDINGS_MEMORY_TEGRA234_MC_H
+
+/* special clients */
+#define TEGRA234_SID_INVALID           0x00
+#define TEGRA234_SID_PASSTHROUGH       0x7f
+
+
+/* NISO1 stream IDs */
+#define TEGRA234_SID_SDMMC4    0x02
+#define TEGRA234_SID_BPMP      0x10
+
+/*
+ * memory client IDs
+ */
+
+/* sdmmcd memory read client */
+#define TEGRA234_MEMORY_CLIENT_SDMMCRAB 0x63
+/* sdmmcd memory write client */
+#define TEGRA234_MEMORY_CLIENT_SDMMCWAB 0x67
+/* BPMP read client */
+#define TEGRA234_MEMORY_CLIENT_BPMPR 0x93
+/* BPMP write client */
+#define TEGRA234_MEMORY_CLIENT_BPMPW 0x94
+/* BPMPDMA read client */
+#define TEGRA234_MEMORY_CLIENT_BPMPDMAR 0x95
+/* BPMPDMA write client */
+#define TEGRA234_MEMORY_CLIENT_BPMPDMAW 0x96
+
+#endif
index e085f10..63e038e 100644 (file)
@@ -38,4 +38,7 @@
 #define AM64X_IOPAD(pa, val, muxmode)          (((pa) & 0x1fff)) ((val) | (muxmode))
 #define AM64X_MCU_IOPAD(pa, val, muxmode)      (((pa) & 0x1fff)) ((val) | (muxmode))
 
+#define J721S2_IOPAD(pa, val, muxmode)         (((pa) & 0x1fff)) ((val) | (muxmode))
+#define J721S2_WKUP_IOPAD(pa, val, muxmode)    (((pa) & 0x1fff)) ((val) | (muxmode))
+
 #endif
index b183250..9509706 100644 (file)
 #define EXYNOS5260_PIN_DRV_LV4         2
 #define EXYNOS5260_PIN_DRV_LV6         3
 
-/* Drive strengths for Exynos5410, Exynos542x and Exynos5800 */
+/*
+ * Drive strengths for Exynos5410, Exynos542x, Exynos5800 and Exynos850 (except
+ * GPIO_HSI block)
+ */
 #define EXYNOS5420_PIN_DRV_LV1         0
 #define EXYNOS5420_PIN_DRV_LV2         1
 #define EXYNOS5420_PIN_DRV_LV3         2
 #define EXYNOS5433_PIN_DRV_SLOW_SR5    0xc
 #define EXYNOS5433_PIN_DRV_SLOW_SR6    0xf
 
+/* Drive strengths for Exynos850 GPIO_HSI block */
+#define EXYNOS850_HSI_PIN_DRV_LV1      0       /* 1x   */
+#define EXYNOS850_HSI_PIN_DRV_LV1_5    1       /* 1.5x */
+#define EXYNOS850_HSI_PIN_DRV_LV2      2       /* 2x   */
+#define EXYNOS850_HSI_PIN_DRV_LV2_5    3       /* 2.5x */
+#define EXYNOS850_HSI_PIN_DRV_LV3      4       /* 3x   */
+#define EXYNOS850_HSI_PIN_DRV_LV4      5       /* 4x   */
+
 #define EXYNOS_PIN_FUNC_INPUT          0
 #define EXYNOS_PIN_FUNC_OUTPUT         1
 #define EXYNOS_PIN_FUNC_2              2
diff --git a/include/dt-bindings/power/imx8ulp-power.h b/include/dt-bindings/power/imx8ulp-power.h
new file mode 100644 (file)
index 0000000..a556b2e
--- /dev/null
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+/*
+ *  Copyright 2021 NXP
+ */
+
+#ifndef __DT_BINDINGS_IMX8ULP_POWER_H__
+#define __DT_BINDINGS_IMX8ULP_POWER_H__
+
+#define IMX8ULP_PD_DMA1                0
+#define IMX8ULP_PD_FLEXSPI2    1
+#define IMX8ULP_PD_USB0                2
+#define IMX8ULP_PD_USDHC0      3
+#define IMX8ULP_PD_USDHC1      4
+#define IMX8ULP_PD_USDHC2_USB1 5
+#define IMX8ULP_PD_DCNANO      6
+#define IMX8ULP_PD_EPDC                7
+#define IMX8ULP_PD_DMA2                8
+#define IMX8ULP_PD_GPU2D       9
+#define IMX8ULP_PD_GPU3D       10
+#define IMX8ULP_PD_HIFI4       11
+#define IMX8ULP_PD_ISI         12
+#define IMX8ULP_PD_MIPI_CSI    13
+#define IMX8ULP_PD_MIPI_DSI    14
+#define IMX8ULP_PD_PXP         15
+
+#endif
index b3c63be..50e13bc 100644 (file)
@@ -4,7 +4,15 @@
 #ifndef DT_BINDINGS_RESET_TEGRA234_RESET_H
 #define DT_BINDINGS_RESET_TEGRA234_RESET_H
 
-#define TEGRA234_RESET_SDMMC4                  85
-#define TEGRA234_RESET_UARTA                   100
+/**
+ * @file
+ * @defgroup bpmp_reset_ids Reset ID's
+ * @brief Identifiers for Resets controllable by firmware
+ * @{
+ */
+#define TEGRA234_RESET_SDMMC4                  85U
+#define TEGRA234_RESET_UARTA                   100U
+
+/** @} */
 
 #endif