Commit ae45d84f authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'dt-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM SoC DT updates from Arnd Bergmann:
 "This is a rather large update for the ARM devicetree files, after a
  few quieter releases, with 775 total commits and 47 branches pulled
  into this one.

  There are 5 new SoC types plus some minor variations, and a total of
  60 new machines, so I'm limiting the summary to the main noteworthy
  items:

   - Apple M1 gain support for PCI and pinctrl, getting a bit closer to
     a usable system out of the box.

   - Qualcomm gains support for Snapdragon 690 (aka SM6350) as well as
     SM7225, 11 new smartphones, and three additional Chromebooks, and
     improvements all over the place.

   - Samsung gains support for ExynosAutov9, an automotive version of
     their smartphone SoC, but otherwise no major changes.

   - Microchip adds the SAMA5D29 SoC in the SAMA5 family, and a number
     of improvements for the recently added SAMA7 family. The LAN966 SoC
     that was added in the platform code does not have dts files yet.
     Two board files are added for the older at91sam9g20 SoC

   - Aspeed supports two additional server boards using their AST2600 as
     BMC, and improves support for qemu models

   - Rockchip RK3566/RK3688 gets added, along with six new development
     boards using RK3328/RK3399/RK3566, and one Chromebook tablet.

   - Two NAS boxes are added using the ARMv4 based Gemini platform

   - One new board is added to the Intel Arria SoC FPGA family

   - Marvell adds one network switch based on Armada 381 and the new
     MOCHAbin 7040 development board

   - NXP adds support for the S32G2 automotive SoC, two imx6 based ebook
     readers, and three additional development boards, which is notably
     less than their usual additions, but they also gain improvements to
     their many existing boards

   - STmicroelectronics adds their stm32mp13 SoC family along with a
     reference board

   - Renesas adds new versions of their R-Car Gen3 SoCs and many updates
     for their older generations

   - Broadcom adds support for a number of Cisco Meraki wireless
     controllers, along with two new boards and other updates for
     BCM53xx/BCM47xx networking SoCs and the Raspberry Pi boards

   - Mediatek improves support for the MT81xx SoCs used in Chromebooks
     as well as the MT76xx networking SoCs

   - NVIDIA adds a number of cleanups and additional support for more
     hardware on the already supported machines

   - TI K3 adds support for three new boards along with cleanups

   - Toshiba adds one board for the Visconti family

   - Xilinx adds five new ZynqMP based machines

   - Amlogic support is added for the Radxa Zero and two Jethub home
     automation controllers, along with changes to other machines

   - Rob Herring continues his work on fixing dtc warnings all over the
     tree.

   - Minor updates for TI OMAP, Mstar, Allwinner/sunxi, Hisilicon,
     Ux500, Unisoc"

* tag 'dt-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (720 commits)
  arm64: dts: apple: j274: Expose PCI node for the Ethernet MAC address
  arm64: dts: apple: t8103: Add root port interrupt routing
  arm64: dts: apple: t8103: Add PCIe DARTs
  arm64: apple: Add PCIe node
  arm64: apple: Add pinctrl nodes
  ARM: dts: arm: Update ICST clock nodes 'reg' and node names
  ARM: dts: arm: Update register-bit-led nodes 'reg' and node names
  arm64: dts: exynos: add chipid node for exynosautov9 SoC
  ARM: dts: qcom: fix typo in IPQ8064 thermal-sensor node
  Revert "arm64: dts: qcom: msm8916-asus-z00l: Add sensors"
  arm64: dts: qcom: ipq6018: Remove unused 'iface_clk' property from dma-controller node
  arm64: dts: qcom: ipq6018: Remove unused 'qcom,config-pipe-trust-reg' property
  arm64: dts: qcom: sm8350: Add CPU topology and idle-states
  arm64: dts: qcom: Drop unneeded extra device-specific includes
  arm64: dts: qcom: msm8916: Drop standalone smem node
  arm64: dts: qcom: Fix node name of rpm-msg-ram device nodes
  arm64: dts: qcom: msm8916-asus-z00l: Add sensors
  arm64: dts: qcom: msm8916-asus-z00l: Add SDCard
  arm64: dts: qcom: msm8916-asus-z00l: Add touchscreen
  arm64: dts: qcom: sdm845-oneplus: remove devinfo-size from ramoops node
  ...
parents 2219b0ce c17c7cc7
...@@ -279,6 +279,7 @@ Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org> ...@@ -279,6 +279,7 @@ Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org>
Nicolas Pitre <nico@fluxnic.net> <nico@linaro.org> Nicolas Pitre <nico@fluxnic.net> <nico@linaro.org>
Nicolas Saenz Julienne <nsaenz@kernel.org> <nsaenzjulienne@suse.de> Nicolas Saenz Julienne <nsaenz@kernel.org> <nsaenzjulienne@suse.de>
Nicolas Saenz Julienne <nsaenz@kernel.org> <nsaenzjulienne@suse.com> Nicolas Saenz Julienne <nsaenz@kernel.org> <nsaenzjulienne@suse.com>
Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Oleksij Rempel <linux@rempel-privat.de> <bug-track@fisher-privat.net> Oleksij Rempel <linux@rempel-privat.de> <bug-track@fisher-privat.net>
Oleksij Rempel <linux@rempel-privat.de> <external.Oleksij.Rempel@de.bosch.com> Oleksij Rempel <linux@rempel-privat.de> <external.Oleksij.Rempel@de.bosch.com>
Oleksij Rempel <linux@rempel-privat.de> <fixed-term.Oleksij.Rempel@de.bosch.com> Oleksij Rempel <linux@rempel-privat.de> <fixed-term.Oleksij.Rempel@de.bosch.com>
......
...@@ -86,6 +86,7 @@ properties: ...@@ -86,6 +86,7 @@ properties:
- enum: - enum:
- amlogic,p281 - amlogic,p281
- oranth,tx3-mini - oranth,tx3-mini
- jethome,jethub-j80
- const: amlogic,s905w - const: amlogic,s905w
- const: amlogic,meson-gxl - const: amlogic,meson-gxl
...@@ -133,6 +134,7 @@ properties: ...@@ -133,6 +134,7 @@ properties:
items: items:
- enum: - enum:
- amlogic,s400 - amlogic,s400
- jethome,jethub-j100
- const: amlogic,a113d - const: amlogic,a113d
- const: amlogic,meson-axg - const: amlogic,meson-axg
...@@ -141,6 +143,7 @@ properties: ...@@ -141,6 +143,7 @@ properties:
- enum: - enum:
- amediatech,x96-max - amediatech,x96-max
- amlogic,u200 - amlogic,u200
- radxa,zero
- seirobotics,sei510 - seirobotics,sei510
- const: amlogic,g12a - const: amlogic,g12a
......
...@@ -126,6 +126,18 @@ properties: ...@@ -126,6 +126,18 @@ properties:
- const: atmel,sama5d3 - const: atmel,sama5d3
- const: atmel,sama5 - const: atmel,sama5
- description: CalAmp LMU5000 board
items:
- const: calamp,lmu5000
- const: atmel,at91sam9g20
- const: atmel,at91sam9
- description: Exegin Q5xR5 board
items:
- const: exegin,q5xr5
- const: atmel,at91sam9g20
- const: atmel,at91sam9
- items: - items:
- enum: - enum:
- atmel,sama5d31 - atmel,sama5d31
......
...@@ -19,6 +19,7 @@ properties: ...@@ -19,6 +19,7 @@ properties:
items: items:
- enum: - enum:
- raspberrypi,400 - raspberrypi,400
- raspberrypi,4-compute-module
- raspberrypi,4-model-b - raspberrypi,4-model-b
- const: brcm,bcm2711 - const: brcm,bcm2711
......
...@@ -22,16 +22,61 @@ properties: ...@@ -22,16 +22,61 @@ properties:
$nodename: $nodename:
const: '/' const: '/'
compatible: compatible:
items: oneOf:
- enum: - description: BCM58522 based boards
- brcm,bcm58522 items:
- brcm,bcm58525 - enum:
- brcm,bcm58535 - brcm,bcm958522er
- brcm,bcm58622 - const: brcm,bcm58522
- brcm,bcm58623 - const: brcm,nsp
- brcm,bcm58625
- brcm,bcm88312 - description: BCM58525 based boards
- const: brcm,nsp items:
- enum:
- brcm,bcm958525er
- brcm,bcm958525xmc
- const: brcm,bcm58525
- const: brcm,nsp
- description: BCM58535 based boards
items:
- const: brcm,bcm58535
- const: brcm,nsp
- description: BCM58622 based boards
items:
- enum:
- brcm,bcm958622hr
- const: brcm,bcm58622
- const: brcm,nsp
- description: BCM58623 based boards
items:
- enum:
- brcm,bcm958623hr
- const: brcm,bcm58623
- const: brcm,nsp
- description: BCM58625 based boards
items:
- enum:
- brcm,bcm958625hr
- brcm,bcm958625k
- meraki,mx64
- meraki,mx64-a0
- meraki,mx64w
- meraki,mx64w-a0
- meraki,mx65
- meraki,mx65w
- const: brcm,bcm58625
- const: brcm,nsp
- description: BCM88312 based boards
items:
- enum:
- brcm,bcm988312hr
- const: brcm,bcm88312
- const: brcm,nsp
additionalProperties: true additionalProperties: true
......
...@@ -171,6 +171,8 @@ properties: ...@@ -171,6 +171,8 @@ properties:
- qcom,kryo385 - qcom,kryo385
- qcom,kryo468 - qcom,kryo468
- qcom,kryo485 - qcom,kryo485
- qcom,kryo560
- qcom,kryo570
- qcom,kryo685 - qcom,kryo685
- qcom,scorpion - qcom,scorpion
......
...@@ -32,6 +32,7 @@ properties: ...@@ -32,6 +32,7 @@ properties:
- const: mediatek,mt6580 - const: mediatek,mt6580
- items: - items:
- enum: - enum:
- fairphone,fp1
- mundoreader,bq-aquaris5 - mundoreader,bq-aquaris5
- const: mediatek,mt6589 - const: mediatek,mt6589
- items: - items:
......
...@@ -43,6 +43,9 @@ properties: ...@@ -43,6 +43,9 @@ properties:
"#clock-cells": "#clock-cells":
const: 1 const: 1
'#reset-cells':
const: 1
required: required:
- compatible - compatible
- reg - reg
...@@ -56,4 +59,5 @@ examples: ...@@ -56,4 +59,5 @@ examples:
compatible = "mediatek,mt8173-mmsys", "syscon"; compatible = "mediatek,mt8173-mmsys", "syscon";
reg = <0x14000000 0x1000>; reg = <0x14000000 0x1000>;
#clock-cells = <1>; #clock-cells = <1>;
#reset-cells = <1>;
}; };
...@@ -25,6 +25,7 @@ description: | ...@@ -25,6 +25,7 @@ description: |
The 'SoC' element must be one of the following strings: The 'SoC' element must be one of the following strings:
apq8016 apq8016
apq8026
apq8074 apq8074
apq8084 apq8084
apq8096 apq8096
...@@ -44,6 +45,8 @@ description: | ...@@ -44,6 +45,8 @@ description: |
sdm660 sdm660
sdm845 sdm845
sdx55 sdx55
sdx65
sm7225
sm8150 sm8150
sm8250 sm8250
sm8350 sm8350
...@@ -94,6 +97,14 @@ properties: ...@@ -94,6 +97,14 @@ properties:
- items: - items:
- enum: - enum:
- lg,lenok
- const: qcom,apq8026
- items:
- enum:
- asus,nexus7-flo
- lg,nexus4-mako
- sony,xperia-yuga
- qcom,apq8064-cm-qs600 - qcom,apq8064-cm-qs600
- qcom,apq8064-ifc6410 - qcom,apq8064-ifc6410
- const: qcom,apq8064 - const: qcom,apq8064
...@@ -129,6 +140,7 @@ properties: ...@@ -129,6 +140,7 @@ properties:
- enum: - enum:
- fairphone,fp2 - fairphone,fp2
- lge,hammerhead - lge,hammerhead
- samsung,klte
- sony,xperia-amami - sony,xperia-amami
- sony,xperia-castor - sony,xperia-castor
- sony,xperia-honami - sony,xperia-honami
...@@ -163,6 +175,7 @@ properties: ...@@ -163,6 +175,7 @@ properties:
- items: - items:
- enum: - enum:
- qcom,ipq4019-ap-dk01.1-c1
- qcom,ipq4019-ap-dk04.1-c3 - qcom,ipq4019-ap-dk04.1-c3
- qcom,ipq4019-ap-dk07.1-c1 - qcom,ipq4019-ap-dk07.1-c1
- qcom,ipq4019-ap-dk07.1-c2 - qcom,ipq4019-ap-dk07.1-c2
...@@ -206,6 +219,11 @@ properties: ...@@ -206,6 +219,11 @@ properties:
- qcom,sdx55-t55 - qcom,sdx55-t55
- const: qcom,sdx55 - const: qcom,sdx55
- items:
- enum:
- qcom,sdx65-mtp
- const: qcom,sdx65
- items: - items:
- enum: - enum:
- qcom,ipq6018-cp01 - qcom,ipq6018-cp01
...@@ -217,6 +235,11 @@ properties: ...@@ -217,6 +235,11 @@ properties:
- qcom,sa8155p-adp - qcom,sa8155p-adp
- const: qcom,sa8155p - const: qcom,sa8155p
- items:
- enum:
- fairphone,fp4
- const: qcom,sm7225
- items: - items:
- enum: - enum:
- qcom,sm8150-mtp - qcom,sm8150-mtp
......
...@@ -255,12 +255,19 @@ properties: ...@@ -255,12 +255,19 @@ properties:
- enum: - enum:
- renesas,h3ulcb - renesas,h3ulcb
- renesas,m3ulcb - renesas,m3ulcb
- renesas,m3nulcb
- enum: - enum:
- renesas,r8a779m0
- renesas,r8a779m1 - renesas,r8a779m1
- renesas,r8a779m2
- renesas,r8a779m3 - renesas,r8a779m3
- renesas,r8a779m4
- renesas,r8a779m5
- renesas,r8a779m8
- enum: - enum:
- renesas,r8a7795 - renesas,r8a7795
- renesas,r8a77961 - renesas,r8a77961
- renesas,r8a77965
- description: R-Car M3-N (R8A77965) - description: R-Car M3-N (R8A77965)
items: items:
...@@ -308,6 +315,14 @@ properties: ...@@ -308,6 +315,14 @@ properties:
- const: renesas,falcon-cpu - const: renesas,falcon-cpu
- const: renesas,r8a779a0 - const: renesas,r8a779a0
- description: R-Car H3e (R8A779M0)
items:
- enum:
- renesas,h3ulcb # H3ULCB (R-Car Starter Kit Premier)
- renesas,salvator-xs # Salvator-XS (Salvator-X 2nd version)
- const: renesas,r8a779m0
- const: renesas,r8a7795
- description: R-Car H3e-2G (R8A779M1) - description: R-Car H3e-2G (R8A779M1)
items: items:
- enum: - enum:
...@@ -316,6 +331,14 @@ properties: ...@@ -316,6 +331,14 @@ properties:
- const: renesas,r8a779m1 - const: renesas,r8a779m1
- const: renesas,r8a7795 - const: renesas,r8a7795
- description: R-Car M3e (R8A779M2)
items:
- enum:
- renesas,m3ulcb # M3ULCB (R-Car Starter Kit Pro)
- renesas,salvator-xs # Salvator-XS (Salvator-X 2nd version)
- const: renesas,r8a779m2
- const: renesas,r8a77961
- description: R-Car M3e-2G (R8A779M3) - description: R-Car M3e-2G (R8A779M3)
items: items:
- enum: - enum:
...@@ -324,6 +347,44 @@ properties: ...@@ -324,6 +347,44 @@ properties:
- const: renesas,r8a779m3 - const: renesas,r8a779m3
- const: renesas,r8a77961 - const: renesas,r8a77961
- description: R-Car M3Ne (R8A779M4)
items:
- enum:
- renesas,m3nulcb # M3NULCB (R-Car Starter Kit Pro)
- renesas,salvator-xs # Salvator-XS (Salvator-X 2nd version)
- const: renesas,r8a779m4
- const: renesas,r8a77965
- description: R-Car M3Ne-2G (R8A779M5)
items:
- enum:
- renesas,m3nulcb # M3NULCB (R-Car Starter Kit Pro)
- renesas,salvator-xs # Salvator-XS (Salvator-X 2nd version)
- const: renesas,r8a779m5
- const: renesas,r8a77965
- description: R-Car E3e (R8A779M6)
items:
- enum:
- renesas,ebisu # Ebisu
- const: renesas,r8a779m6
- const: renesas,r8a77990
- description: R-Car D3e (R8A779M7)
items:
- enum:
- renesas,draak # Draak
- const: renesas,r8a779m7
- const: renesas,r8a77995
- description: R-Car H3Ne (R8A779M8)
items:
- enum:
- renesas,h3ulcb # H3ULCB (R-Car Starter Kit Premier)
- renesas,salvator-xs # Salvator-XS (Salvator-X 2nd version)
- const: renesas,r8a779m8
- const: renesas,r8a7795
- description: RZ/N1D (R9A06G032) - description: RZ/N1D (R9A06G032)
items: items:
- enum: - enum:
......
...@@ -115,6 +115,11 @@ properties: ...@@ -115,6 +115,11 @@ properties:
- const: firefly,roc-rk3328-cc - const: firefly,roc-rk3328-cc
- const: rockchip,rk3328 - const: rockchip,rk3328
- description: Firefly ROC-RK3328-PC
items:
- const: firefly,roc-rk3328-pc
- const: rockchip,rk3328
- description: Firefly ROC-RK3399-PC - description: Firefly ROC-RK3399-PC
items: items:
- enum: - enum:
...@@ -122,6 +127,12 @@ properties: ...@@ -122,6 +127,12 @@ properties:
- firefly,roc-rk3399-pc-mezzanine - firefly,roc-rk3399-pc-mezzanine
- const: rockchip,rk3399 - const: rockchip,rk3399
- description: Firefly ROC-RK3399-PC-PLUS
items:
- enum:
- firefly,roc-rk3399-pc-plus
- const: rockchip,rk3399
- description: FriendlyElec NanoPi R2S - description: FriendlyElec NanoPi R2S
items: items:
- const: friendlyarm,nanopi-r2s - const: friendlyarm,nanopi-r2s
...@@ -287,6 +298,34 @@ properties: ...@@ -287,6 +298,34 @@ properties:
- const: google,veyron - const: google,veyron
- const: rockchip,rk3288 - const: rockchip,rk3288
- description: Google Scarlet - Dumo (ASUS Chromebook Tablet CT100)
items:
- const: google,scarlet-rev15-sku0
- const: google,scarlet-rev15
- const: google,scarlet-rev14-sku0
- const: google,scarlet-rev14
- const: google,scarlet-rev13-sku0
- const: google,scarlet-rev13
- const: google,scarlet-rev12-sku0
- const: google,scarlet-rev12
- const: google,scarlet-rev11-sku0
- const: google,scarlet-rev11
- const: google,scarlet-rev10-sku0
- const: google,scarlet-rev10
- const: google,scarlet-rev9-sku0
- const: google,scarlet-rev9
- const: google,scarlet-rev8-sku0
- const: google,scarlet-rev8
- const: google,scarlet-rev7-sku0
- const: google,scarlet-rev7
- const: google,scarlet-rev6-sku0
- const: google,scarlet-rev6
- const: google,scarlet-rev5-sku0
- const: google,scarlet-rev5
- const: google,scarlet
- const: google,gru
- const: rockchip,rk3399
- description: Google Scarlet - Kingdisplay (Acer Chromebook Tab 10) - description: Google Scarlet - Kingdisplay (Acer Chromebook Tab 10)
items: items:
- const: google,scarlet-rev15-sku7 - const: google,scarlet-rev15-sku7
...@@ -455,16 +494,23 @@ properties: ...@@ -455,16 +494,23 @@ properties:
- const: pine64,rockpro64 - const: pine64,rockpro64
- const: rockchip,rk3399 - const: rockchip,rk3399
- description: Pine64 Quartz64 Model A
items:
- const: pine64,quartz64-a
- const: rockchip,rk3566
- description: Radxa Rock - description: Radxa Rock
items: items:
- const: radxa,rock - const: radxa,rock
- const: rockchip,rk3188 - const: rockchip,rk3188
- description: Radxa ROCK Pi 4A/B/C - description: Radxa ROCK Pi 4A/A+/B/B+/C
items: items:
- enum: - enum:
- radxa,rockpi4a - radxa,rockpi4a
- radxa,rockpi4a-plus
- radxa,rockpi4b - radxa,rockpi4b
- radxa,rockpi4b-plus
- radxa,rockpi4c - radxa,rockpi4c
- const: radxa,rockpi4 - const: radxa,rockpi4
- const: rockchip,rk3399 - const: rockchip,rk3399
......
...@@ -22,7 +22,9 @@ select: ...@@ -22,7 +22,9 @@ select:
- rockchip,px30-pmu - rockchip,px30-pmu
- rockchip,rk3066-pmu - rockchip,rk3066-pmu
- rockchip,rk3288-pmu - rockchip,rk3288-pmu
- rockchip,rk3368-pmu
- rockchip,rk3399-pmu - rockchip,rk3399-pmu
- rockchip,rk3568-pmu
required: required:
- compatible - compatible
...@@ -34,7 +36,9 @@ properties: ...@@ -34,7 +36,9 @@ properties:
- rockchip,px30-pmu - rockchip,px30-pmu
- rockchip,rk3066-pmu - rockchip,rk3066-pmu
- rockchip,rk3288-pmu - rockchip,rk3288-pmu
- rockchip,rk3368-pmu
- rockchip,rk3399-pmu - rockchip,rk3399-pmu
- rockchip,rk3568-pmu
- const: syscon - const: syscon
- const: simple-mfd - const: simple-mfd
......
...@@ -199,6 +199,12 @@ properties: ...@@ -199,6 +199,12 @@ properties:
- samsung,exynos7-espresso # Samsung Exynos7 Espresso - samsung,exynos7-espresso # Samsung Exynos7 Espresso
- const: samsung,exynos7 - const: samsung,exynos7
- description: Exynos Auto v9 based boards
items:
- enum:
- samsung,exynosautov9-sadk # Samsung Exynos Auto v9 SADK
- const: samsung,exynosautov9
required: required:
- compatible - compatible
......
...@@ -30,6 +30,11 @@ properties: ...@@ -30,6 +30,11 @@ properties:
- sprd,sp9863a-1h10 - sprd,sp9863a-1h10
- const: sprd,sc9863a - const: sprd,sc9863a
- items:
- enum:
- sprd,ums512-1h10
- const: sprd,ums512
additionalProperties: true additionalProperties: true
... ...
...@@ -55,6 +55,10 @@ properties: ...@@ -55,6 +55,10 @@ properties:
- enum: - enum:
- st,stm32h750i-art-pi - st,stm32h750i-art-pi
- const: st,stm32h750 - const: st,stm32h750
- items:
- enum:
- st,stm32mp135f-dk
- const: st,stm32mp135
- items: - items:
- enum: - enum:
- shiratech,stm32mp157a-iot-box # IoT Box - shiratech,stm32mp157a-iot-box # IoT Box
......
...@@ -30,6 +30,7 @@ properties: ...@@ -30,6 +30,7 @@ properties:
enum: enum:
- allwinner,sun5i-a13-mbus - allwinner,sun5i-a13-mbus
- allwinner,sun8i-h3-mbus - allwinner,sun8i-h3-mbus
- allwinner,sun8i-r40-mbus
- allwinner,sun50i-a64-mbus - allwinner,sun50i-a64-mbus
reg: reg:
......
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/sunxi/allwinner,sun6i-a31-cpuconfig.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner CPU Configuration Controller Device Tree Bindings
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
properties:
compatible:
enum:
- allwinner,sun6i-a31-cpuconfig
- allwinner,sun8i-a23-cpuconfig
- allwinner,sun8i-a83t-cpucfg
- allwinner,sun8i-a83t-r-cpucfg
- allwinner,sun9i-a80-cpucfg
reg:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
cpucfg@1f01c00 {
compatible = "allwinner,sun6i-a31-cpuconfig";
reg = <0x01f01c00 0x300>;
};
...
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/sunxi/allwinner,sun9i-a80-prcm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A80 PRCM Device Tree Bindings
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
properties:
compatible:
const: allwinner,sun9i-a80-prcm
reg:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
prcm@8001400 {
compatible = "allwinner,sun9i-a80-prcm";
reg = <0x08001400 0x200>;
};
...
...@@ -24,16 +24,27 @@ properties: ...@@ -24,16 +24,27 @@ properties:
- enum: - enum:
- ti,am654-evm - ti,am654-evm
- siemens,iot2050-basic - siemens,iot2050-basic
- siemens,iot2050-basic-pg2
- siemens,iot2050-advanced - siemens,iot2050-advanced
- siemens,iot2050-advanced-pg2
- const: ti,am654 - const: ti,am654
- description: K3 J721E SoC - description: K3 J721E SoC
items: oneOf:
- const: ti,j721e - const: ti,j721e
- items:
- enum:
- ti,j721e-evm
- ti,j721e-sk
- const: ti,j721e
- description: K3 J7200 SoC - description: K3 J7200 SoC
items: oneOf:
- const: ti,j7200 - const: ti,j7200
- items:
- enum:
- ti,j7200-evm
- const: ti,j7200
- description: K3 AM642 SoC - description: K3 AM642 SoC
items: items:
......
...@@ -18,6 +18,7 @@ properties: ...@@ -18,6 +18,7 @@ properties:
items: items:
- enum: - enum:
- toshiba,tmpv7708-rm-mbrc # TMPV7708 RM main board - toshiba,tmpv7708-rm-mbrc # TMPV7708 RM main board
- toshiba,tmpv7708-visrobo-vrb # TMPV7708 VisROBO VRB board
- const: toshiba,tmpv7708 - const: toshiba,tmpv7708
additionalProperties: true additionalProperties: true
......
...@@ -87,6 +87,7 @@ properties: ...@@ -87,6 +87,7 @@ properties:
- xlnx,zynqmp-zcu102-revA - xlnx,zynqmp-zcu102-revA
- xlnx,zynqmp-zcu102-revB - xlnx,zynqmp-zcu102-revB
- xlnx,zynqmp-zcu102-rev1.0 - xlnx,zynqmp-zcu102-rev1.0
- xlnx,zynqmp-zcu102-rev1.1
- const: xlnx,zynqmp-zcu102 - const: xlnx,zynqmp-zcu102
- const: xlnx,zynqmp - const: xlnx,zynqmp
...@@ -115,6 +116,22 @@ properties: ...@@ -115,6 +116,22 @@ properties:
- const: xlnx,zynqmp-zcu111 - const: xlnx,zynqmp-zcu111
- const: xlnx,zynqmp - const: xlnx,zynqmp
- description: Xilinx Kria SOMs
items:
- const: xlnx,zynqmp-sm-k26-rev1
- const: xlnx,zynqmp-sm-k26-revB
- const: xlnx,zynqmp-sm-k26-revA
- const: xlnx,zynqmp-sm-k26
- const: xlnx,zynqmp
- description: Xilinx Kria SOMs (starter)
items:
- const: xlnx,zynqmp-smk-k26-rev1
- const: xlnx,zynqmp-smk-k26-revB
- const: xlnx,zynqmp-smk-k26-revA
- const: xlnx,zynqmp-smk-k26
- const: xlnx,zynqmp
additionalProperties: true additionalProperties: true
... ...
...@@ -47,6 +47,9 @@ properties: ...@@ -47,6 +47,9 @@ properties:
interrupts: interrupts:
maxItems: 1 maxItems: 1
power-domains:
maxItems: 1
required: required:
- "#clock-cells" - "#clock-cells"
- compatible - compatible
......
...@@ -51,6 +51,9 @@ properties: ...@@ -51,6 +51,9 @@ properties:
dma-names: dma-names:
const: audio-rx const: audio-rx
power-domains:
maxItems: 1
required: required:
- compatible - compatible
- reg - reg
......
...@@ -24,6 +24,9 @@ properties: ...@@ -24,6 +24,9 @@ properties:
interrupts: interrupts:
maxItems: 1 maxItems: 1
power-domains:
maxItems: 1
required: required:
- compatible - compatible
- reg - reg
......
...@@ -24,6 +24,9 @@ properties: ...@@ -24,6 +24,9 @@ properties:
interrupts: interrupts:
maxItems: 1 maxItems: 1
power-domains:
maxItems: 1
required: required:
- compatible - compatible
- reg - reg
......
...@@ -19,6 +19,11 @@ Required properties: ...@@ -19,6 +19,11 @@ Required properties:
Documentation/devicetree/bindings/graph.txt. This port should be connected Documentation/devicetree/bindings/graph.txt. This port should be connected
to the input port of an attached DSI panel or DSI-to-eDP encoder chip. to the input port of an attached DSI panel or DSI-to-eDP encoder chip.
Optional properties:
- resets: list of phandle + reset specifier pair, as described in [1].
[1] Documentation/devicetree/bindings/reset/reset.txt
MIPI TX Configuration Module MIPI TX Configuration Module
============================ ============================
...@@ -45,6 +50,7 @@ dsi0: dsi@1401b000 { ...@@ -45,6 +50,7 @@ dsi0: dsi@1401b000 {
clocks = <&mmsys MM_DSI0_ENGINE>, <&mmsys MM_DSI0_DIGITAL>, clocks = <&mmsys MM_DSI0_ENGINE>, <&mmsys MM_DSI0_DIGITAL>,
<&mipi_tx0>; <&mipi_tx0>;
clock-names = "engine", "digital", "hs"; clock-names = "engine", "digital", "hs";
resets = <&mmsys MT8173_MMSYS_SW0_RST_B_DISP_DSI0>;
phys = <&mipi_tx0>; phys = <&mipi_tx0>;
phy-names = "dphy"; phy-names = "dphy";
......
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/gpu/host1x/nvidia,tegra210-nvdec.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Device tree binding for NVIDIA Tegra NVDEC
description: |
NVDEC is the hardware video decoder 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: "^nvdec@[0-9a-f]*$"
compatible:
enum:
- nvidia,tegra210-nvdec
- nvidia,tegra186-nvdec
- nvidia,tegra194-nvdec
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
items:
- const: nvdec
resets:
maxItems: 1
reset-names:
items:
- const: nvdec
power-domains:
maxItems: 1
iommus:
maxItems: 1
dma-coherent: true
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
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: 0xf0
$ref: /schemas/types.yaml#/definitions/uint32
required:
- compatible
- reg
- clocks
- clock-names
- resets
- reset-names
- power-domains
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/tegra186-clock.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/memory/tegra186-mc.h>
#include <dt-bindings/power/tegra186-powergate.h>
#include <dt-bindings/reset/tegra186-reset.h>
nvdec@15480000 {
compatible = "nvidia,tegra186-nvdec";
reg = <0x15480000 0x40000>;
clocks = <&bpmp TEGRA186_CLK_NVDEC>;
clock-names = "nvdec";
resets = <&bpmp TEGRA186_RESET_NVDEC>;
reset-names = "nvdec";
power-domains = <&bpmp TEGRA186_POWER_DOMAIN_NVDEC>;
interconnects = <&mc TEGRA186_MEMORY_CLIENT_NVDECSRD &emc>,
<&mc TEGRA186_MEMORY_CLIENT_NVDECSRD1 &emc>,
<&mc TEGRA186_MEMORY_CLIENT_NVDECSWR &emc>;
interconnect-names = "dma-mem", "read-1", "write";
iommus = <&smmu TEGRA186_SID_NVDEC>;
};
Device tree bindings for OMAP general purpose memory controllers (GPMC)
The actual devices are instantiated from the child nodes of a GPMC node.
Required properties:
- compatible: Should be set to one of the following:
ti,omap2420-gpmc (omap2420)
ti,omap2430-gpmc (omap2430)
ti,omap3430-gpmc (omap3430 & omap3630)
ti,omap4430-gpmc (omap4430 & omap4460 & omap543x)
ti,am3352-gpmc (am335x devices)
- reg: A resource specifier for the register space
(see the example below)
- ti,hwmods: Should be set to "ti,gpmc" until the DT transition is
completed.
- #address-cells: Must be set to 2 to allow memory address translation
- #size-cells: Must be set to 1 to allow CS address passing
- gpmc,num-cs: The maximum number of chip-select lines that controller
can support.
- gpmc,num-waitpins: The maximum number of wait pins that controller can
support.
- ranges: Must be set up to reflect the memory layout with four
integer values for each chip-select line in use:
<cs-number> 0 <physical address of mapping> <size>
Currently, calculated values derived from the contents
of the per-CS register GPMC_CONFIG7 (as set up by the
bootloader) are used for the physical address decoding.
As this will change in the future, filling correct
values here is a requirement.
- interrupt-controller: The GPMC driver implements and interrupt controller for
the NAND events "fifoevent" and "termcount" plus the
rising/falling edges on the GPMC_WAIT pins.
The interrupt number mapping is as follows
0 - NAND_fifoevent
1 - NAND_termcount
2 - GPMC_WAIT0 pin edge
3 - GPMC_WAIT1 pin edge, and so on.
- interrupt-cells: Must be set to 2
- gpio-controller: The GPMC driver implements a GPIO controller for the
GPMC WAIT pins that can be used as general purpose inputs.
0 maps to GPMC_WAIT0 pin.
- gpio-cells: Must be set to 2
Required properties when using NAND prefetch dma:
- dmas GPMC NAND prefetch dma channel
- dma-names Must be set to "rxtx"
Timing properties for child nodes. All are optional and default to 0.
- gpmc,sync-clk-ps: Minimum clock period for synchronous mode, in picoseconds
Chip-select signal timings (in nanoseconds) corresponding to GPMC_CONFIG2:
- gpmc,cs-on-ns: Assertion time
- gpmc,cs-rd-off-ns: Read deassertion time
- gpmc,cs-wr-off-ns: Write deassertion time
ADV signal timings (in nanoseconds) corresponding to GPMC_CONFIG3:
- gpmc,adv-on-ns: Assertion time
- gpmc,adv-rd-off-ns: Read deassertion time
- gpmc,adv-wr-off-ns: Write deassertion time
- gpmc,adv-aad-mux-on-ns: Assertion time for AAD
- gpmc,adv-aad-mux-rd-off-ns: Read deassertion time for AAD
- gpmc,adv-aad-mux-wr-off-ns: Write deassertion time for AAD
WE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4:
- gpmc,we-on-ns Assertion time
- gpmc,we-off-ns: Deassertion time
OE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4:
- gpmc,oe-on-ns: Assertion time
- gpmc,oe-off-ns: Deassertion time
- gpmc,oe-aad-mux-on-ns: Assertion time for AAD
- gpmc,oe-aad-mux-off-ns: Deassertion time for AAD
Access time and cycle time timings (in nanoseconds) corresponding to
GPMC_CONFIG5:
- gpmc,page-burst-access-ns: Multiple access word delay
- gpmc,access-ns: Start-cycle to first data valid delay
- gpmc,rd-cycle-ns: Total read cycle time
- gpmc,wr-cycle-ns: Total write cycle time
- gpmc,bus-turnaround-ns: Turn-around time between successive accesses
- gpmc,cycle2cycle-delay-ns: Delay between chip-select pulses
- gpmc,clk-activation-ns: GPMC clock activation time
- gpmc,wait-monitoring-ns: Start of wait monitoring with regard to valid
data
Boolean timing parameters. If property is present parameter enabled and
disabled if omitted:
- gpmc,adv-extra-delay: ADV signal is delayed by half GPMC clock
- gpmc,cs-extra-delay: CS signal is delayed by half GPMC clock
- gpmc,cycle2cycle-diffcsen: Add "cycle2cycle-delay" between successive
accesses to a different CS
- gpmc,cycle2cycle-samecsen: Add "cycle2cycle-delay" between successive
accesses to the same CS
- gpmc,oe-extra-delay: OE signal is delayed by half GPMC clock
- gpmc,we-extra-delay: WE signal is delayed by half GPMC clock
- gpmc,time-para-granularity: Multiply all access times by 2
The following are only applicable to OMAP3+ and AM335x:
- gpmc,wr-access-ns: In synchronous write mode, for single or
burst accesses, defines the number of
GPMC_FCLK cycles from start access time
to the GPMC_CLK rising edge used by the
memory device for the first data capture.
- gpmc,wr-data-mux-bus-ns: In address-data multiplex mode, specifies
the time when the first data is driven on
the address-data bus.
GPMC chip-select settings properties for child nodes. All are optional.
- gpmc,burst-length Page/burst length. Must be 4, 8 or 16.
- gpmc,burst-wrap Enables wrap bursting
- gpmc,burst-read Enables read page/burst mode
- gpmc,burst-write Enables write page/burst mode
- gpmc,device-width Total width of device(s) connected to a GPMC
chip-select in bytes. The GPMC supports 8-bit
and 16-bit devices and so this property must be
1 or 2.
- gpmc,mux-add-data Address and data multiplexing configuration.
Valid values are 1 for address-address-data
multiplexing mode and 2 for address-data
multiplexing mode.
- gpmc,sync-read Enables synchronous read. Defaults to asynchronous
is this is not set.
- gpmc,sync-write Enables synchronous writes. Defaults to asynchronous
is this is not set.
- gpmc,wait-pin Wait-pin used by client. Must be less than
"gpmc,num-waitpins".
- gpmc,wait-on-read Enables wait monitoring on reads.
- gpmc,wait-on-write Enables wait monitoring on writes.
Example for an AM33xx board:
gpmc: gpmc@50000000 {
compatible = "ti,am3352-gpmc";
ti,hwmods = "gpmc";
reg = <0x50000000 0x2000>;
interrupts = <100>;
dmas = <&edma 52 0>;
dma-names = "rxtx";
gpmc,num-cs = <8>;
gpmc,num-waitpins = <2>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0x08000000 0x10000000>; /* CS0 @addr 0x8000000, size 0x10000000 */
interrupt-controller;
#interrupt-cells = <2>;
gpio-controller;
#gpio-cells = <2>;
/* child nodes go here */
};
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/memory-controllers/ti,gpmc-child.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: device tree bindings for children of the Texas Instruments GPMC
maintainers:
- Tony Lindgren <tony@atomide.com>
- Roger Quadros <rogerq@kernel.org>
description:
This binding is meant for the child nodes of the GPMC node. The node
represents any device connected to the GPMC bus. It may be a Flash chip,
RAM chip or Ethernet controller, etc. These properties are meant for
configuring the GPMC settings/timings and will accompany the bindings
supported by the respective device.
properties:
reg: true
# GPMC Timing properties for child nodes. All are optional and default to 0.
gpmc,sync-clk-ps:
description: Minimum clock period for synchronous mode
default: 0
# Chip-select signal timings corresponding to GPMC_CONFIG2:
gpmc,cs-on-ns:
description: Assertion time
default: 0
gpmc,cs-rd-off-ns:
description: Read deassertion time
default: 0
gpmc,cs-wr-off-ns:
description: Write deassertion time
default: 0
# ADV signal timings corresponding to GPMC_CONFIG3:
gpmc,adv-on-ns:
description: Assertion time
default: 0
gpmc,adv-rd-off-ns:
description: Read deassertion time
default: 0
gpmc,adv-wr-off-ns:
description: Write deassertion time
default: 0
gpmc,adv-aad-mux-on-ns:
description: Assertion time for AAD
default: 0
gpmc,adv-aad-mux-rd-off-ns:
description: Read deassertion time for AAD
default: 0
gpmc,adv-aad-mux-wr-off-ns:
description: Write deassertion time for AAD
default: 0
# WE signals timings corresponding to GPMC_CONFIG4:
gpmc,we-on-ns:
description: Assertion time
default: 0
gpmc,we-off-ns:
description: Deassertion time
default: 0
# OE signals timings corresponding to GPMC_CONFIG4:
gpmc,oe-on-ns:
description: Assertion time
default: 0
gpmc,oe-off-ns:
description: Deassertion time
default: 0
gpmc,oe-aad-mux-on-ns:
description: Assertion time for AAD
default: 0
gpmc,oe-aad-mux-off-ns:
description: Deassertion time for AAD
default: 0
# Access time and cycle time timings (in nanoseconds) corresponding to
# GPMC_CONFIG5:
gpmc,page-burst-access-ns:
description: Multiple access word delay
default: 0
gpmc,access-ns:
description: Start-cycle to first data valid delay
default: 0
gpmc,rd-cycle-ns:
description: Total read cycle time
default: 0
gpmc,wr-cycle-ns:
description: Total write cycle time
default: 0
gpmc,bus-turnaround-ns:
description: Turn-around time between successive accesses
default: 0
gpmc,cycle2cycle-delay-ns:
description: Delay between chip-select pulses
default: 0
gpmc,clk-activation-ns:
description: GPMC clock activation time
default: 0
gpmc,wait-monitoring-ns:
description: Start of wait monitoring with regard to valid data
default: 0
# Boolean timing parameters. If property is present, parameter is enabled
# otherwise disabled.
gpmc,adv-extra-delay:
description: ADV signal is delayed by half GPMC clock
type: boolean
gpmc,cs-extra-delay:
description: CS signal is delayed by half GPMC clock
type: boolean
gpmc,cycle2cycle-diffcsen:
description: |
Add "cycle2cycle-delay" between successive accesses
to a different CS
type: boolean
gpmc,cycle2cycle-samecsen:
description: |
Add "cycle2cycle-delay" between successive accesses
to the same CS
type: boolean
gpmc,oe-extra-delay:
description: OE signal is delayed by half GPMC clock
type: boolean
gpmc,we-extra-delay:
description: WE signal is delayed by half GPMC clock
type: boolean
gpmc,time-para-granularity:
description: Multiply all access times by 2
type: boolean
# The following two properties are applicable only to OMAP3+ and AM335x:
gpmc,wr-access-ns:
description: |
In synchronous write mode, for single or
burst accesses, defines the number of
GPMC_FCLK cycles from start access time
to the GPMC_CLK rising edge used by the
memory device for the first data capture.
default: 0
gpmc,wr-data-mux-bus-ns:
description: |
In address-data multiplex mode, specifies
the time when the first data is driven on
the address-data bus.
default: 0
# GPMC chip-select settings properties for child nodes. All are optional.
gpmc,burst-length:
description: Page/burst length.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 4, 8, 16]
default: 0
gpmc,burst-wrap:
description: Enables wrap bursting
type: boolean
gpmc,burst-read:
description: Enables read page/burst mode
type: boolean
gpmc,burst-write:
description: Enables write page/burst mode
type: boolean
gpmc,device-width:
description: |
Total width of device(s) connected to a GPMC
chip-select in bytes. The GPMC supports 8-bit
and 16-bit devices and so this property must be
1 or 2.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2]
default: 1
gpmc,mux-add-data:
description: |
Address and data multiplexing configuration.
Valid values are
0 for Non multiplexed mode
1 for address-address-data multiplexing mode and
2 for address-data multiplexing mode.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1, 2]
gpmc,sync-read:
description: |
Enables synchronous read. Defaults to asynchronous
is this is not set.
type: boolean
gpmc,sync-write:
description: |
Enables synchronous writes. Defaults to asynchronous
is this is not set.
type: boolean
gpmc,wait-pin:
description: |
Wait-pin used by client. Must be less than "gpmc,num-waitpins".
$ref: /schemas/types.yaml#/definitions/uint32
gpmc,wait-on-read:
description: Enables wait monitoring on reads.
type: boolean
gpmc,wait-on-write:
description: Enables wait monitoring on writes.
type: boolean
required:
- reg
# the GPMC child will have its own native properties
additionalProperties: true
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/memory-controllers/ti,gpmc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments GPMC Memory Controller device-tree bindings
maintainers:
- Tony Lindgren <tony@atomide.com>
- Roger Quadros <rogerq@kernel.org>
description:
The GPMC is a unified memory controller dedicated for interfacing
with external memory devices like
- Asynchronous SRAM-like memories and ASICs
- Asynchronous, synchronous, and page mode burst NOR flash
- NAND flash
- Pseudo-SRAM devices
properties:
compatible:
items:
- enum:
- ti,am3352-gpmc
- ti,omap2420-gpmc
- ti,omap2430-gpmc
- ti,omap3430-gpmc
- ti,omap4430-gpmc
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
description: |
Functional clock. Used for bus timing calculations and
GPMC configuration.
clock-names:
items:
- const: fck
dmas:
items:
- description: DMA channel for GPMC NAND prefetch
dma-names:
items:
- const: rxtx
"#address-cells": true
"#size-cells": true
gpmc,num-cs:
description: maximum number of supported chip-select lines.
$ref: /schemas/types.yaml#/definitions/uint32
gpmc,num-waitpins:
description: maximum number of supported wait pins.
$ref: /schemas/types.yaml#/definitions/uint32
ranges:
minItems: 1
description: |
Must be set up to reflect the memory layout with four
integer values for each chip-select line in use,
<cs-number> 0 <physical address of mapping> <size>
items:
- description: NAND bank 0
- description: NOR/SRAM bank 0
- description: NOR/SRAM bank 1
'#interrupt-cells':
const: 2
interrupt-controller:
description: |
The GPMC driver implements and interrupt controller for
the NAND events "fifoevent" and "termcount" plus the
rising/falling edges on the GPMC_WAIT pins.
The interrupt number mapping is as follows
0 - NAND_fifoevent
1 - NAND_termcount
2 - GPMC_WAIT0 pin edge
3 - GPMC_WAIT1 pin edge, and so on.
'#gpio-cells':
const: 2
gpio-controller:
description: |
The GPMC driver implements a GPIO controller for the
GPMC WAIT pins that can be used as general purpose inputs.
0 maps to GPMC_WAIT0 pin.
ti,hwmods:
description:
Name of the HWMOD associated with GPMC. This is for legacy
omap2/3 platforms only.
$ref: /schemas/types.yaml#/definitions/string
deprecated: true
ti,no-idle-on-init:
description:
Prevent idling the module at init. This is for legacy omap2/3
platforms only.
type: boolean
deprecated: true
patternProperties:
"@[0-7],[a-f0-9]+$":
type: object
description: |
The child device node represents the device connected to the GPMC
bus. The device can be a NAND chip, SRAM device, NOR device
or an ASIC.
allOf:
- $ref: "ti,gpmc-child.yaml"
unevaluatedProperties: false
required:
- compatible
- reg
- gpmc,num-cs
- gpmc,num-waitpins
- "#address-cells"
- "#size-cells"
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/gpio/gpio.h>
gpmc: memory-controller@50000000 {
compatible = "ti,am3352-gpmc";
reg = <0x50000000 0x2000>;
interrupts = <100>;
clocks = <&l3s_clkctrl>;
clock-names = "fck";
dmas = <&edma 52 0>;
dma-names = "rxtx";
gpmc,num-cs = <8>;
gpmc,num-waitpins = <2>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0x08000000 0x10000000>; /* CS0 @addr 0x8000000, size 0x10000000 */
interrupt-controller;
#interrupt-cells = <2>;
gpio-controller;
#gpio-cells = <2>;
nand@0,0 {
compatible = "ti,omap2-nand";
reg = <0 0 4>;
interrupt-parent = <&gpmc>;
interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
<1 IRQ_TYPE_NONE>; /* termcount */
ti,nand-xfer-type = "prefetch-dma";
ti,nand-ecc-opt = "bch16";
ti,elm-id = <&elm>;
rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 pin */
};
};
Device tree bindings for GPMC connected NANDs
GPMC connected NAND (found on OMAP boards) are represented as child nodes of
the GPMC controller with a name of "nand".
All timing relevant properties as well as generic gpmc child properties are
explained in a separate documents - please refer to
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
For NAND specific properties such as ECC modes or bus width, please refer to
Documentation/devicetree/bindings/mtd/nand-controller.yaml
Required properties:
- compatible: "ti,omap2-nand"
- reg: range id (CS number), base offset and length of the
NAND I/O space
- interrupts: Two interrupt specifiers, one for fifoevent, one for termcount.
Optional properties:
- nand-bus-width: Set this numeric value to 16 if the hardware
is wired that way. If not specified, a bus
width of 8 is assumed.
- ti,nand-ecc-opt: A string setting the ECC layout to use. One of:
"sw" 1-bit Hamming ecc code via software
"hw" <deprecated> use "ham1" instead
"hw-romcode" <deprecated> use "ham1" instead
"ham1" 1-bit Hamming ecc code
"bch4" 4-bit BCH ecc code
"bch8" 8-bit BCH ecc code
"bch16" 16-bit BCH ECC code
Refer below "How to select correct ECC scheme for your device ?"
- ti,nand-xfer-type: A string setting the data transfer type. One of:
"prefetch-polled" Prefetch polled mode (default)
"polled" Polled mode, without prefetch
"prefetch-dma" Prefetch enabled DMA mode
"prefetch-irq" Prefetch enabled irq mode
- elm_id: <deprecated> use "ti,elm-id" instead
- ti,elm-id: Specifies phandle of the ELM devicetree node.
ELM is an on-chip hardware engine on TI SoC which is used for
locating ECC errors for BCHx algorithms. SoC devices which have
ELM hardware engines should specify this device node in .dtsi
Using ELM for ECC error correction frees some CPU cycles.
- rb-gpios: GPIO specifier for the ready/busy# pin.
For inline partition table parsing (optional):
- #address-cells: should be set to 1
- #size-cells: should be set to 1
Example for an AM33xx board:
gpmc: gpmc@50000000 {
compatible = "ti,am3352-gpmc";
ti,hwmods = "gpmc";
reg = <0x50000000 0x36c>;
interrupts = <100>;
gpmc,num-cs = <8>;
gpmc,num-waitpins = <2>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0x08000000 0x1000000>; /* CS0 space, 16MB */
elm_id = <&elm>;
interrupt-controller;
#interrupt-cells = <2>;
nand@0,0 {
compatible = "ti,omap2-nand";
reg = <0 0 4>; /* CS0, offset 0, NAND I/O window 4 */
interrupt-parent = <&gpmc>;
interrupts = <0 IRQ_TYPE_NONE>, <1 IRQ_TYPE NONE>;
nand-bus-width = <16>;
ti,nand-ecc-opt = "bch8";
ti,nand-xfer-type = "polled";
rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
gpmc,sync-clk-ps = <0>;
gpmc,cs-on-ns = <0>;
gpmc,cs-rd-off-ns = <44>;
gpmc,cs-wr-off-ns = <44>;
gpmc,adv-on-ns = <6>;
gpmc,adv-rd-off-ns = <34>;
gpmc,adv-wr-off-ns = <44>;
gpmc,we-off-ns = <40>;
gpmc,oe-off-ns = <54>;
gpmc,access-ns = <64>;
gpmc,rd-cycle-ns = <82>;
gpmc,wr-cycle-ns = <82>;
gpmc,wr-access-ns = <40>;
gpmc,wr-data-mux-bus-ns = <0>;
#address-cells = <1>;
#size-cells = <1>;
/* partitions go here */
};
};
How to select correct ECC scheme for your device ?
--------------------------------------------------
Higher ECC scheme usually means better protection against bit-flips and
increased system lifetime. However, selection of ECC scheme is dependent
on various other factors also like;
(1) support of built in hardware engines.
Some legacy OMAP SoC do not have ELM harware engine, so those SoC cannot
support ecc-schemes with hardware error-correction (BCHx_HW). However
such SoC can use ecc-schemes with software library for error-correction
(BCHx_HW_DETECTION_SW). The error correction capability with software
library remains equivalent to their hardware counter-part, but there is
slight CPU penalty when too many bit-flips are detected during reads.
(2) Device parameters like OOBSIZE.
Other factor which governs the selection of ecc-scheme is oob-size.
Higher ECC schemes require more OOB/Spare area to store ECC syndrome,
so the device should have enough free bytes available its OOB/Spare
area to accommodate ECC for entire page. In general following expression
helps in determining if given device can accommodate ECC syndrome:
"2 + (PAGESIZE / 512) * ECC_BYTES" <= OOBSIZE"
where
OOBSIZE number of bytes in OOB/spare area
PAGESIZE number of bytes in main-area of device page
ECC_BYTES number of ECC bytes generated to protect
512 bytes of data, which is:
'3' for HAM1_xx ecc schemes
'7' for BCH4_xx ecc schemes
'14' for BCH8_xx ecc schemes
'26' for BCH16_xx ecc schemes
Example(a): For a device with PAGESIZE = 2048 and OOBSIZE = 64 and
trying to use BCH16 (ECC_BYTES=26) ecc-scheme.
Number of ECC bytes per page = (2 + (2048 / 512) * 26) = 106 B
which is greater than capacity of NAND device (OOBSIZE=64)
Hence, BCH16 cannot be supported on given device. But it can
probably use lower ecc-schemes like BCH8.
Example(b): For a device with PAGESIZE = 2048 and OOBSIZE = 128 and
trying to use BCH16 (ECC_BYTES=26) ecc-scheme.
Number of ECC bytes per page = (2 + (2048 / 512) * 26) = 106 B
which can be accommodated in the OOB/Spare area of this device
(OOBSIZE=128). So this device can use BCH16 ecc-scheme.
Device tree bindings for NOR flash connect to TI GPMC
NOR flash connected to the TI GPMC (found on OMAP boards) are represented as
child nodes of the GPMC controller with a name of "nor".
All timing relevant properties as well as generic GPMC child properties are
explained in a separate documents. Please refer to
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
Required properties:
- bank-width: Width of NOR flash in bytes. GPMC supports 8-bit and
16-bit devices and so must be either 1 or 2 bytes.
- compatible: Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
- gpmc,cs-on-ns: Chip-select assertion time
- gpmc,cs-rd-off-ns: Chip-select de-assertion time for reads
- gpmc,cs-wr-off-ns: Chip-select de-assertion time for writes
- gpmc,oe-on-ns: Output-enable assertion time
- gpmc,oe-off-ns: Output-enable de-assertion time
- gpmc,we-on-ns Write-enable assertion time
- gpmc,we-off-ns: Write-enable de-assertion time
- gpmc,access-ns: Start cycle to first data capture (read access)
- gpmc,rd-cycle-ns: Total read cycle time
- gpmc,wr-cycle-ns: Total write cycle time
- linux,mtd-name: Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
- reg: Chip-select, base address (relative to chip-select)
and size of NOR flash. Note that base address will be
typically 0 as this is the start of the chip-select.
Optional properties:
- gpmc,XXX Additional GPMC timings and settings parameters. See
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
Optional properties for partition table parsing:
- #address-cells: should be set to 1
- #size-cells: should be set to 1
Example:
gpmc: gpmc@6e000000 {
compatible = "ti,omap3430-gpmc", "simple-bus";
ti,hwmods = "gpmc";
reg = <0x6e000000 0x1000>;
interrupts = <20>;
gpmc,num-cs = <8>;
gpmc,num-waitpins = <4>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0x10000000 0x08000000>;
nor@0,0 {
compatible = "cfi-flash";
linux,mtd-name= "intel,pf48f6000m0y1be";
#address-cells = <1>;
#size-cells = <1>;
reg = <0 0 0x08000000>;
bank-width = <2>;
gpmc,mux-add-data;
gpmc,cs-on-ns = <0>;
gpmc,cs-rd-off-ns = <186>;
gpmc,cs-wr-off-ns = <186>;
gpmc,adv-on-ns = <12>;
gpmc,adv-rd-off-ns = <48>;
gpmc,adv-wr-off-ns = <48>;
gpmc,oe-on-ns = <54>;
gpmc,oe-off-ns = <168>;
gpmc,we-on-ns = <54>;
gpmc,we-off-ns = <168>;
gpmc,rd-cycle-ns = <186>;
gpmc,wr-cycle-ns = <186>;
gpmc,access-ns = <114>;
gpmc,page-burst-access-ns = <6>;
gpmc,bus-turnaround-ns = <12>;
gpmc,cycle2cycle-delay-ns = <18>;
gpmc,wr-data-mux-bus-ns = <90>;
gpmc,wr-access-ns = <186>;
gpmc,cycle2cycle-samecsen;
gpmc,cycle2cycle-diffcsen;
partition@0 {
label = "bootloader-nor";
reg = <0 0x40000>;
};
partition@40000 {
label = "params-nor";
reg = <0x40000 0x40000>;
};
partition@80000 {
label = "kernel-nor";
reg = <0x80000 0x200000>;
};
partition@280000 {
label = "filesystem-nor";
reg = <0x240000 0x7d80000>;
};
};
};
Device tree bindings for GPMC connected OneNANDs
GPMC connected OneNAND (found on OMAP boards) are represented as child nodes of
the GPMC controller with a name of "onenand".
All timing relevant properties as well as generic gpmc child properties are
explained in a separate documents - please refer to
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
Required properties:
- compatible: "ti,omap2-onenand"
- reg: The CS line the peripheral is connected to
- gpmc,device-width: Width of the ONENAND device connected to the GPMC
in bytes. Must be 1 or 2.
Optional properties:
- int-gpios: GPIO specifier for the INT pin.
For inline partition table parsing (optional):
- #address-cells: should be set to 1
- #size-cells: should be set to 1
Example for an OMAP3430 board:
gpmc: gpmc@6e000000 {
compatible = "ti,omap3430-gpmc";
ti,hwmods = "gpmc";
reg = <0x6e000000 0x1000000>;
interrupts = <20>;
gpmc,num-cs = <8>;
gpmc,num-waitpins = <4>;
#address-cells = <2>;
#size-cells = <1>;
onenand@0 {
compatible = "ti,omap2-onenand";
reg = <0 0 0>; /* CS0, offset 0 */
gpmc,device-width = <2>;
#address-cells = <1>;
#size-cells = <1>;
/* partitions go here */
};
};
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mtd/ti,gpmc-nand.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments GPMC NAND Flash controller.
maintainers:
- Tony Lindgren <tony@atomide.com>
- Roger Quadros <rogerq@kernel.org>
description:
GPMC NAND controller/Flash is represented as a child of the
GPMC controller node.
properties:
compatible:
const: ti,omap2-nand
reg:
maxItems: 1
interrupts:
items:
- description: Interrupt for fifoevent
- description: Interrupt for termcount
"#address-cells": true
"#size-cells": true
ti,nand-ecc-opt:
description: Desired ECC algorithm
$ref: /schemas/types.yaml#/definitions/string
enum: [sw, ham1, bch4, bch8, bch16]
ti,nand-xfer-type:
description: Data transfer method between controller and chip.
$ref: /schemas/types.yaml#/definitions/string
enum: [prefetch-polled, polled, prefetch-dma, prefetch-irq]
default: prefetch-polled
ti,elm-id:
description:
phandle to the ELM (Error Location Module).
$ref: /schemas/types.yaml#/definitions/phandle
nand-bus-width:
description:
Bus width to the NAND chip
$ref: /schemas/types.yaml#/definitions/uint32
enum: [8, 16]
default: 8
patternProperties:
"@[0-9a-f]+$":
$ref: "/schemas/mtd/partitions/partition.yaml"
allOf:
- $ref: "/schemas/memory-controllers/ti,gpmc-child.yaml"
required:
- compatible
- reg
- ti,nand-ecc-opt
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/gpio/gpio.h>
gpmc: memory-controller@50000000 {
compatible = "ti,am3352-gpmc";
dmas = <&edma 52 0>;
dma-names = "rxtx";
clocks = <&l3s_gclk>;
clock-names = "fck";
reg = <0x50000000 0x2000>;
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
gpmc,num-cs = <7>;
gpmc,num-waitpins = <2>;
#address-cells = <2>;
#size-cells = <1>;
interrupt-controller;
#interrupt-cells = <2>;
gpio-controller;
#gpio-cells = <2>;
ranges = <0 0 0x08000000 0x01000000>; /* CS0 space. Min partition = 16MB */
nand@0,0 {
compatible = "ti,omap2-nand";
reg = <0 0 4>; /* device IO registers */
interrupt-parent = <&gpmc>;
interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
<1 IRQ_TYPE_NONE>; /* termcount */
ti,nand-xfer-type = "prefetch-dma";
ti,nand-ecc-opt = "bch16";
ti,elm-id = <&elm>;
#address-cells = <1>;
#size-cells = <1>;
/* NAND generic properties */
nand-bus-width = <8>;
rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
/* GPMC properties*/
gpmc,device-width = <1>;
partition@0 {
label = "NAND.SPL";
reg = <0x00000000 0x00040000>;
};
partition@1 {
label = "NAND.SPL.backup1";
reg = <0x00040000 0x00040000>;
};
};
};
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mtd/ti,gpmc-onenand.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: OneNAND over Texas Instruments GPMC bus.
maintainers:
- Tony Lindgren <tony@atomide.com>
- Roger Quadros <rogerq@kernel.org>
description:
GPMC connected OneNAND (found on OMAP boards) are represented
as child nodes of the GPMC controller.
properties:
compatible:
const: ti,omap2-onenand
reg:
items:
- description: |
Chip Select number, register offset and size of
OneNAND register window.
"#address-cells": true
"#size-cells": true
int-gpios:
description: GPIO specifier for the INT pin.
patternProperties:
"@[0-9a-f]+$":
$ref: "/schemas/mtd/partitions/partition.yaml"
allOf:
- $ref: "/schemas/memory-controllers/ti,gpmc-child.yaml"
required:
- compatible
- reg
- "#address-cells"
- "#size-cells"
unevaluatedProperties: false
examples:
- |
gpmc: memory-controller@6e000000 {
compatible = "ti,omap3430-gpmc";
reg = <0x6e000000 0x02d0>;
interrupts = <20>;
gpmc,num-cs = <8>;
gpmc,num-waitpins = <4>;
clocks = <&l3s_clkctrl>;
clock-names = "fck";
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0x01000000 0x01000000>, /* 16 MB for OneNAND */
<1 0 0x02000000 0x01000000>; /* 16 MB for smc91c96 */
onenand@0,0 {
compatible = "ti,omap2-onenand";
reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "bootloader";
reg = <0x00000000 0x00100000>;
};
partition@100000 {
label = "config";
reg = <0x00100000 0x002c0000>;
};
};
};
Device tree bindings for Ethernet chip connected to TI GPMC
Besides being used to interface with external memory devices, the
General-Purpose Memory Controller can be used to connect Pseudo-SRAM devices
such as ethernet controllers to processors using the TI GPMC as a data bus.
Ethernet controllers connected to TI GPMC are represented as child nodes of
the GPMC controller with an "ethernet" name.
All timing relevant properties as well as generic GPMC child properties are
explained in a separate documents. Please refer to
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
For the properties relevant to the ethernet controller connected to the GPMC
refer to the binding documentation of the device. For example, the documentation
for the SMSC 911x is Documentation/devicetree/bindings/net/smsc,lan9115.yaml
Child nodes need to specify the GPMC bus address width using the "bank-width"
property but is possible that an ethernet controller also has a property to
specify the I/O registers address width. Even when the GPMC has a maximum 16-bit
address width, it supports devices with 32-bit word registers.
For example with an SMSC LAN911x/912x controller connected to the TI GPMC on an
OMAP2+ board, "bank-width = <2>;" and "reg-io-width = <4>;".
Required properties:
- bank-width: Address width of the device in bytes. GPMC supports 8-bit
and 16-bit devices and so must be either 1 or 2 bytes.
- compatible: Compatible string property for the ethernet child device.
- gpmc,cs-on-ns: Chip-select assertion time
- gpmc,cs-rd-off-ns: Chip-select de-assertion time for reads
- gpmc,cs-wr-off-ns: Chip-select de-assertion time for writes
- gpmc,oe-on-ns: Output-enable assertion time
- gpmc,oe-off-ns: Output-enable de-assertion time
- gpmc,we-on-ns: Write-enable assertion time
- gpmc,we-off-ns: Write-enable de-assertion time
- gpmc,access-ns: Start cycle to first data capture (read access)
- gpmc,rd-cycle-ns: Total read cycle time
- gpmc,wr-cycle-ns: Total write cycle time
- reg: Chip-select, base address (relative to chip-select)
and size of the memory mapped for the device.
Note that base address will be typically 0 as this
is the start of the chip-select.
Optional properties:
- gpmc,XXX Additional GPMC timings and settings parameters. See
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
Example:
gpmc: gpmc@6e000000 {
compatible = "ti,omap3430-gpmc";
ti,hwmods = "gpmc";
reg = <0x6e000000 0x1000>;
interrupts = <20>;
gpmc,num-cs = <8>;
gpmc,num-waitpins = <4>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <5 0 0x2c000000 0x1000000>;
ethernet@5,0 {
compatible = "smsc,lan9221", "smsc,lan9115";
reg = <5 0 0xff>;
bank-width = <2>;
gpmc,mux-add-data;
gpmc,cs-on-ns = <0>;
gpmc,cs-rd-off-ns = <186>;
gpmc,cs-wr-off-ns = <186>;
gpmc,adv-on-ns = <12>;
gpmc,adv-rd-off-ns = <48>;
gpmc,adv-wr-off-ns = <48>;
gpmc,oe-on-ns = <54>;
gpmc,oe-off-ns = <168>;
gpmc,we-on-ns = <54>;
gpmc,we-off-ns = <168>;
gpmc,rd-cycle-ns = <186>;
gpmc,wr-cycle-ns = <186>;
gpmc,access-ns = <114>;
gpmc,page-burst-access-ns = <6>;
gpmc,bus-turnaround-ns = <12>;
gpmc,cycle2cycle-delay-ns = <18>;
gpmc,wr-data-mux-bus-ns = <90>;
gpmc,wr-access-ns = <186>;
gpmc,cycle2cycle-samecsen;
gpmc,cycle2cycle-diffcsen;
interrupt-parent = <&gpio6>;
interrupts = <16>;
vmmc-supply = <&vddvario>;
vmmc_aux-supply = <&vdd33a>;
reg-io-width = <4>;
smsc,save-mac-address;
};
};
...@@ -197,7 +197,7 @@ Tegra194 RC mode: ...@@ -197,7 +197,7 @@ Tegra194 RC mode:
Tegra194 EP mode: Tegra194 EP mode:
----------------- -----------------
pcie_ep@141a0000 { pcie-ep@141a0000 {
compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep"; compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>; power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
reg = <0x00 0x141a0000 0x0 0x00020000 /* appl registers (128K) */ reg = <0x00 0x141a0000 0x0 0x00020000 /* appl registers (128K) */
......
* Freescale LINFlexD UART
The LINFlexD controller implements several LIN protocol versions, as well as
support for full-duplex UART communication through 8-bit and 9-bit frames.
See chapter 47 ("LINFlexD") in the reference manual[1].
Required properties:
- compatible :
- "fsl,s32v234-linflexuart" for LINFlexD configured in UART mode, which
is compatible with the one integrated on S32V234 SoC
- reg : Address and length of the register set for the device
- interrupts : Should contain uart interrupt
Example:
uart0: serial@40053000 {
compatible = "fsl,s32v234-linflexuart";
reg = <0x0 0x40053000 0x0 0x1000>;
interrupts = <0 59 4>;
};
[1] https://www.nxp.com/webapp/Download?colCode=S32V234RM
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/serial/fsl,s32-linflexuart.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale LINFlexD UART
description: |
The LINFlexD controller implements several LIN protocol versions, as well
as support for full-duplex UART communication through 8-bit and 9-bit
frames. See chapter 47 ("LINFlexD") in the reference manual
https://www.nxp.com/webapp/Download?colCode=S32V234RM.
maintainers:
- Chester Lin <clin@suse.com>
allOf:
- $ref: "serial.yaml"
properties:
compatible:
oneOf:
- const: fsl,s32v234-linflexuart
- items:
- const: nxp,s32g2-linflexuart
- const: fsl,s32v234-linflexuart
reg:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
- interrupts
unevaluatedProperties: false
examples:
- |
serial@40053000 {
compatible = "fsl,s32v234-linflexuart";
reg = <0x40053000 0x1000>;
interrupts = <0 59 4>;
};
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/imx/fsl,imx8mm-disp-blk-ctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP i.MX8MM DISP blk-ctrl
maintainers:
- Lucas Stach <l.stach@pengutronix.de>
description:
The i.MX8MM 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,imx8mm-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: csi-bridge
- const: lcdif
- const: mipi-dsi
- const: mipi-csi
clocks:
minItems: 10
maxItems: 10
clock-names:
items:
- const: csi-bridge-axi
- const: csi-bridge-apb
- const: csi-bridge-core
- 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/imx8mm-clock.h>
#include <dt-bindings/power/imx8mm-power.h>
disp_blk_ctl: blk_ctrl@32e28000 {
compatible = "fsl,imx8mm-disp-blk-ctrl", "syscon";
reg = <0x32e28000 0x100>;
power-domains = <&pgc_dispmix>, <&pgc_dispmix>, <&pgc_dispmix>,
<&pgc_mipi>, <&pgc_mipi>;
power-domain-names = "bus", "csi-bridge", "lcdif",
"mipi-dsi", "mipi-csi";
clocks = <&clk IMX8MM_CLK_DISP_AXI_ROOT>,
<&clk IMX8MM_CLK_DISP_APB_ROOT>,
<&clk IMX8MM_CLK_CSI1_ROOT>,
<&clk IMX8MM_CLK_DISP_AXI_ROOT>,
<&clk IMX8MM_CLK_DISP_APB_ROOT>,
<&clk IMX8MM_CLK_DISP_ROOT>,
<&clk IMX8MM_CLK_DSI_CORE>,
<&clk IMX8MM_CLK_DSI_PHY_REF>,
<&clk IMX8MM_CLK_CSI1_CORE>,
<&clk IMX8MM_CLK_CSI1_PHY_REF>;
clock-names = "csi-bridge-axi", "csi-bridge-apb", "csi-bridge-core",
"lcdif-axi", "lcdif-apb", "lcdif-pix", "dsi-pclk",
"dsi-ref", "csi-aclk", "csi-pclk";
#power-domain-cells = <1>;
};
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/imx/fsl,imx8mm-vpu-blk-ctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP i.MX8MM VPU blk-ctrl
maintainers:
- Lucas Stach <l.stach@pengutronix.de>
description:
The i.MX8MM VPU blk-ctrl is a top-level peripheral providing access to
the NoC and ensuring proper power sequencing of the VPU peripherals
located in the VPU domain of the SoC.
properties:
compatible:
items:
- const: fsl,imx8mm-vpu-blk-ctrl
- const: syscon
reg:
maxItems: 1
'#power-domain-cells':
const: 1
power-domains:
minItems: 4
maxItems: 4
power-domain-names:
items:
- const: bus
- const: g1
- const: g2
- const: h1
clocks:
minItems: 3
maxItems: 3
clock-names:
items:
- const: g1
- const: g2
- const: h1
required:
- compatible
- reg
- power-domains
- power-domain-names
- clocks
- clock-names
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/imx8mm-clock.h>
#include <dt-bindings/power/imx8mm-power.h>
vpu_blk_ctrl: blk-ctrl@38330000 {
compatible = "fsl,imx8mm-vpu-blk-ctrl", "syscon";
reg = <0x38330000 0x100>;
power-domains = <&pgc_vpumix>, <&pgc_vpu_g1>,
<&pgc_vpu_g2>, <&pgc_vpu_h1>;
power-domain-names = "bus", "g1", "g2", "h1";
clocks = <&clk IMX8MM_CLK_VPU_G1_ROOT>,
<&clk IMX8MM_CLK_VPU_G2_ROOT>,
<&clk IMX8MM_CLK_VPU_H1_ROOT>;
clock-names = "g1", "g2", "h1";
#power-domain-cells = <1>;
};
...@@ -20,6 +20,9 @@ properties: ...@@ -20,6 +20,9 @@ properties:
- const: allwinner,sun6i-a31-i2s - const: allwinner,sun6i-a31-i2s
- const: allwinner,sun8i-a83t-i2s - const: allwinner,sun8i-a83t-i2s
- const: allwinner,sun8i-h3-i2s - const: allwinner,sun8i-h3-i2s
- items:
- const: allwinner,sun8i-r40-i2s
- const: allwinner,sun8i-h3-i2s
- items: - items:
- const: allwinner,sun8i-v3-i2s - const: allwinner,sun8i-v3-i2s
- const: allwinner,sun8i-h3-i2s - const: allwinner,sun8i-h3-i2s
......
...@@ -193,6 +193,8 @@ patternProperties: ...@@ -193,6 +193,8 @@ patternProperties:
description: B&R Industrial Automation GmbH description: B&R Industrial Automation GmbH
"^bticino,.*": "^bticino,.*":
description: Bticino International description: Bticino International
"^calamp,.*":
description: CalAmp Corp.
"^calaosystems,.*": "^calaosystems,.*":
description: CALAO Systems SAS description: CALAO Systems SAS
"^calxeda,.*": "^calxeda,.*":
...@@ -337,6 +339,8 @@ patternProperties: ...@@ -337,6 +339,8 @@ patternProperties:
description: EBV Elektronik description: EBV Elektronik
"^eckelmann,.*": "^eckelmann,.*":
description: Eckelmann AG description: Eckelmann AG
"^edimax,.*":
description: EDIMAX Technology Co., Ltd
"^edt,.*": "^edt,.*":
description: Emerging Display Technologies description: Emerging Display Technologies
"^eeti,.*": "^eeti,.*":
...@@ -397,6 +401,8 @@ patternProperties: ...@@ -397,6 +401,8 @@ patternProperties:
description: Exar Corporation description: Exar Corporation
"^excito,.*": "^excito,.*":
description: Excito description: Excito
"^exegin,.*":
description: Exegin Technologies Limited
"^ezchip,.*": "^ezchip,.*":
description: EZchip Semiconductor description: EZchip Semiconductor
"^facebook,.*": "^facebook,.*":
...@@ -581,6 +587,8 @@ patternProperties: ...@@ -581,6 +587,8 @@ patternProperties:
description: JEDEC Solid State Technology Association description: JEDEC Solid State Technology Association
"^jesurun,.*": "^jesurun,.*":
description: Shenzhen Jesurun Electronics Business Dept. description: Shenzhen Jesurun Electronics Business Dept.
"^jethome,.*":
description: JetHome (IP Sokolov P.A.)
"^jianda,.*": "^jianda,.*":
description: Jiandangjing Technology Co., Ltd. description: Jiandangjing Technology Co., Ltd.
"^kam,.*": "^kam,.*":
...@@ -1108,6 +1116,8 @@ patternProperties: ...@@ -1108,6 +1116,8 @@ patternProperties:
description: SpinalHDL description: SpinalHDL
"^sprd,.*": "^sprd,.*":
description: Spreadtrum Communications Inc. description: Spreadtrum Communications Inc.
"^ssi,.*":
description: SSI Computer Corp
"^sst,.*": "^sst,.*":
description: Silicon Storage Technology, Inc. description: Silicon Storage Technology, Inc.
"^sstar,.*": "^sstar,.*":
......
...@@ -6352,6 +6352,7 @@ L: linux-tegra@vger.kernel.org ...@@ -6352,6 +6352,7 @@ L: linux-tegra@vger.kernel.org
S: Supported S: Supported
T: git git://anongit.freedesktop.org/tegra/linux.git T: git git://anongit.freedesktop.org/tegra/linux.git
F: Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt F: Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
F: Documentation/devicetree/bindings/gpu/host1x/
F: drivers/gpu/drm/tegra/ F: drivers/gpu/drm/tegra/
F: drivers/gpu/host1x/ F: drivers/gpu/host1x/
F: include/linux/host1x.h F: include/linux/host1x.h
......
...@@ -25,6 +25,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \ ...@@ -25,6 +25,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
usb_a9263.dtb \ usb_a9263.dtb \
at91-foxg20.dtb \ at91-foxg20.dtb \
at91-kizbox.dtb \ at91-kizbox.dtb \
at91-lmu5000.dtb \
at91sam9g20ek.dtb \ at91sam9g20ek.dtb \
at91sam9g20ek_2mmc.dtb \ at91sam9g20ek_2mmc.dtb \
tny_a9g20.dtb \ tny_a9g20.dtb \
...@@ -40,6 +41,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \ ...@@ -40,6 +41,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
at91-kizboxmini-base.dtb \ at91-kizboxmini-base.dtb \
at91-kizboxmini-mb.dtb \ at91-kizboxmini-mb.dtb \
at91-kizboxmini-rd.dtb \ at91-kizboxmini-rd.dtb \
at91-q5xr5.dtb \
at91-smartkiz.dtb \ at91-smartkiz.dtb \
at91-wb45n.dtb \ at91-wb45n.dtb \
at91sam9g15ek.dtb \ at91sam9g15ek.dtb \
...@@ -92,6 +94,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ ...@@ -92,6 +94,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2837-rpi-cm3-io3.dtb \ bcm2837-rpi-cm3-io3.dtb \
bcm2711-rpi-400.dtb \ bcm2711-rpi-400.dtb \
bcm2711-rpi-4-b.dtb \ bcm2711-rpi-4-b.dtb \
bcm2711-rpi-cm4-io.dtb \
bcm2835-rpi-zero.dtb \ bcm2835-rpi-zero.dtb \
bcm2835-rpi-zero-w.dtb bcm2835-rpi-zero-w.dtb
dtb-$(CONFIG_ARCH_BCM_5301X) += \ dtb-$(CONFIG_ARCH_BCM_5301X) += \
...@@ -117,6 +120,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ ...@@ -117,6 +120,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
bcm4709-netgear-r7000.dtb \ bcm4709-netgear-r7000.dtb \
bcm4709-netgear-r8000.dtb \ bcm4709-netgear-r8000.dtb \
bcm4709-tplink-archer-c9-v1.dtb \ bcm4709-tplink-archer-c9-v1.dtb \
bcm47094-asus-rt-ac88u.dtb \
bcm47094-dlink-dir-885l.dtb \ bcm47094-dlink-dir-885l.dtb \
bcm47094-linksys-panamera.dtb \ bcm47094-linksys-panamera.dtb \
bcm47094-luxul-abr-4500.dtb \ bcm47094-luxul-abr-4500.dtb \
...@@ -157,6 +161,12 @@ dtb-$(CONFIG_ARCH_BCM_NSP) += \ ...@@ -157,6 +161,12 @@ dtb-$(CONFIG_ARCH_BCM_NSP) += \
bcm958525xmc.dtb \ bcm958525xmc.dtb \
bcm958622hr.dtb \ bcm958622hr.dtb \
bcm958623hr.dtb \ bcm958623hr.dtb \
bcm958625-meraki-mx64.dtb \
bcm958625-meraki-mx64-a0.dtb \
bcm958625-meraki-mx64w.dtb \
bcm958625-meraki-mx64w-a0.dtb \
bcm958625-meraki-mx65.dtb \
bcm958625-meraki-mx65w.dtb \
bcm958625hr.dtb \ bcm958625hr.dtb \
bcm988312hr.dtb \ bcm988312hr.dtb \
bcm958625k.dtb bcm958625k.dtb
...@@ -219,9 +229,11 @@ dtb-$(CONFIG_ARCH_GEMINI) += \ ...@@ -219,9 +229,11 @@ dtb-$(CONFIG_ARCH_GEMINI) += \
gemini-dlink-dir-685.dtb \ gemini-dlink-dir-685.dtb \
gemini-dlink-dns-313.dtb \ gemini-dlink-dns-313.dtb \
gemini-nas4220b.dtb \ gemini-nas4220b.dtb \
gemini-ns2502.dtb \
gemini-rut1xx.dtb \ gemini-rut1xx.dtb \
gemini-sl93512r.dtb \ gemini-sl93512r.dtb \
gemini-sq201.dtb \ gemini-sq201.dtb \
gemini-ssi1328.dtb \
gemini-wbd111.dtb \ gemini-wbd111.dtb \
gemini-wbd222.dtb gemini-wbd222.dtb
dtb-$(CONFIG_ARCH_HI3xxx) += \ dtb-$(CONFIG_ARCH_HI3xxx) += \
...@@ -635,10 +647,12 @@ dtb-$(CONFIG_SOC_IMX6SL) += \ ...@@ -635,10 +647,12 @@ dtb-$(CONFIG_SOC_IMX6SL) += \
imx6sl-evk.dtb \ imx6sl-evk.dtb \
imx6sl-tolino-shine2hd.dtb \ imx6sl-tolino-shine2hd.dtb \
imx6sl-tolino-shine3.dtb \ imx6sl-tolino-shine3.dtb \
imx6sl-tolino-vision5.dtb \
imx6sl-warp.dtb imx6sl-warp.dtb
dtb-$(CONFIG_SOC_IMX6SLL) += \ dtb-$(CONFIG_SOC_IMX6SLL) += \
imx6sll-evk.dtb \ imx6sll-evk.dtb \
imx6sll-kobo-clarahd.dtb imx6sll-kobo-clarahd.dtb \
imx6sll-kobo-librah2o.dtb
dtb-$(CONFIG_SOC_IMX6SX) += \ dtb-$(CONFIG_SOC_IMX6SX) += \
imx6sx-nitrogen6sx.dtb \ imx6sx-nitrogen6sx.dtb \
imx6sx-sabreauto.dtb \ imx6sx-sabreauto.dtb \
...@@ -671,6 +685,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \ ...@@ -671,6 +685,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ul-tx6ul-0011.dtb \ imx6ul-tx6ul-0011.dtb \
imx6ul-tx6ul-mainboard.dtb \ imx6ul-tx6ul-mainboard.dtb \
imx6ull-14x14-evk.dtb \ imx6ull-14x14-evk.dtb \
imx6ull-colibri-emmc-eval-v3.dtb \
imx6ull-colibri-eval-v3.dtb \ imx6ull-colibri-eval-v3.dtb \
imx6ull-colibri-wifi-eval-v3.dtb \ imx6ull-colibri-wifi-eval-v3.dtb \
imx6ull-myir-mys-6ulx-eval.dtb \ imx6ull-myir-mys-6ulx-eval.dtb \
...@@ -939,6 +954,7 @@ dtb-$(CONFIG_ARCH_OXNAS) += \ ...@@ -939,6 +954,7 @@ dtb-$(CONFIG_ARCH_OXNAS) += \
ox810se-wd-mbwe.dtb \ ox810se-wd-mbwe.dtb \
ox820-cloudengines-pogoplug-series-3.dtb ox820-cloudengines-pogoplug-series-3.dtb
dtb-$(CONFIG_ARCH_QCOM) += \ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-apq8026-lg-lenok.dtb \
qcom-apq8060-dragonboard.dtb \ qcom-apq8060-dragonboard.dtb \
qcom-apq8064-cm-qs600.dtb \ qcom-apq8064-cm-qs600.dtb \
qcom-apq8064-ifc6410.dtb \ qcom-apq8064-ifc6410.dtb \
...@@ -959,6 +975,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \ ...@@ -959,6 +975,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-ipq8064-rb3011.dtb \ qcom-ipq8064-rb3011.dtb \
qcom-msm8226-samsung-s3ve3g.dtb \ qcom-msm8226-samsung-s3ve3g.dtb \
qcom-msm8660-surf.dtb \ qcom-msm8660-surf.dtb \
qcom-msm8916-samsung-serranove.dtb \
qcom-msm8960-cdp.dtb \ qcom-msm8960-cdp.dtb \
qcom-msm8974-fairphone-fp2.dtb \ qcom-msm8974-fairphone-fp2.dtb \
qcom-msm8974-lge-nexus5-hammerhead.dtb \ qcom-msm8974-lge-nexus5-hammerhead.dtb \
...@@ -1075,6 +1092,7 @@ dtb-$(CONFIG_ARCH_S5PV210) += \ ...@@ -1075,6 +1092,7 @@ dtb-$(CONFIG_ARCH_S5PV210) += \
s5pv210-torbreck.dtb s5pv210-torbreck.dtb
dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += \ dtb-$(CONFIG_ARCH_INTEL_SOCFPGA) += \
socfpga_arria5_socdk.dtb \ socfpga_arria5_socdk.dtb \
socfpga_arria10_mercury_aa1.dtb \
socfpga_arria10_socdk_nand.dtb \ socfpga_arria10_socdk_nand.dtb \
socfpga_arria10_socdk_qspi.dtb \ socfpga_arria10_socdk_qspi.dtb \
socfpga_arria10_socdk_sdmmc.dtb \ socfpga_arria10_socdk_sdmmc.dtb \
...@@ -1113,6 +1131,7 @@ dtb-$(CONFIG_ARCH_STM32) += \ ...@@ -1113,6 +1131,7 @@ dtb-$(CONFIG_ARCH_STM32) += \
stm32h743i-eval.dtb \ stm32h743i-eval.dtb \
stm32h743i-disco.dtb \ stm32h743i-disco.dtb \
stm32h750i-art-pi.dtb \ stm32h750i-art-pi.dtb \
stm32mp135f-dk.dtb \
stm32mp153c-dhcom-drc02.dtb \ stm32mp153c-dhcom-drc02.dtb \
stm32mp157a-avenger96.dtb \ stm32mp157a-avenger96.dtb \
stm32mp157a-dhcor-avenger96.dtb \ stm32mp157a-dhcor-avenger96.dtb \
...@@ -1387,6 +1406,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \ ...@@ -1387,6 +1406,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \
dtb-$(CONFIG_MACH_ARMADA_375) += \ dtb-$(CONFIG_MACH_ARMADA_375) += \
armada-375-db.dtb armada-375-db.dtb
dtb-$(CONFIG_MACH_ARMADA_38X) += \ dtb-$(CONFIG_MACH_ARMADA_38X) += \
armada-381-netgear-gs110emx.dtb \
armada-382-rd-ac3x-48g4x2xl.dtb \ armada-382-rd-ac3x-48g4x2xl.dtb \
armada-385-atl-x530.dtb\ armada-385-atl-x530.dtb\
armada-385-clearfog-gtr-s4.dtb \ armada-385-clearfog-gtr-s4.dtb \
...@@ -1497,4 +1517,6 @@ dtb-$(CONFIG_ARCH_ASPEED) += \ ...@@ -1497,4 +1517,6 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-opp-zaius.dtb \ aspeed-bmc-opp-zaius.dtb \
aspeed-bmc-portwell-neptune.dtb \ aspeed-bmc-portwell-neptune.dtb \
aspeed-bmc-quanta-q71l.dtb \ aspeed-bmc-quanta-q71l.dtb \
aspeed-bmc-supermicro-x11spi.dtb aspeed-bmc-supermicro-x11spi.dtb \
aspeed-bmc-inventec-transformers.dtb \
aspeed-bmc-tyan-s7106.dtb
...@@ -205,6 +205,7 @@ &gpio3 { ...@@ -205,6 +205,7 @@ &gpio3 {
&am33xx_pinmux { &am33xx_pinmux {
compatible = "pinconf-single";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = < &P2_03_gpio &P1_34_gpio &P2_19_gpio &P2_24_gpio pinctrl-0 = < &P2_03_gpio &P1_34_gpio &P2_19_gpio &P2_24_gpio
......
...@@ -198,96 +198,112 @@ fpga { ...@@ -198,96 +198,112 @@ fpga {
syscon: syscon@10000000 { syscon: syscon@10000000 {
compatible = "arm,realview-eb-syscon", "syscon", "simple-mfd"; compatible = "arm,realview-eb-syscon", "syscon", "simple-mfd";
reg = <0x10000000 0x1000>; reg = <0x10000000 0x1000>;
ranges = <0x0 0x10000000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
led@08.0 { led@8,0 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x01>; mask = <0x01>;
label = "versatile:0"; label = "versatile:0";
linux,default-trigger = "heartbeat"; linux,default-trigger = "heartbeat";
default-state = "on"; default-state = "on";
}; };
led@08.1 { led@8,1 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x02>; mask = <0x02>;
label = "versatile:1"; label = "versatile:1";
linux,default-trigger = "mmc0"; linux,default-trigger = "mmc0";
default-state = "off"; default-state = "off";
}; };
led@08.2 { led@8,2 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x04>; mask = <0x04>;
label = "versatile:2"; label = "versatile:2";
linux,default-trigger = "cpu0"; linux,default-trigger = "cpu0";
default-state = "off"; default-state = "off";
}; };
led@08.3 { led@8,3 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x08>; mask = <0x08>;
label = "versatile:3"; label = "versatile:3";
default-state = "off"; default-state = "off";
}; };
led@08.4 { led@8,4 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x10>; mask = <0x10>;
label = "versatile:4"; label = "versatile:4";
default-state = "off"; default-state = "off";
}; };
led@08.5 { led@8,5 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x20>; mask = <0x20>;
label = "versatile:5"; label = "versatile:5";
default-state = "off"; default-state = "off";
}; };
led@08.6 { led@8,6 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x40>; mask = <0x40>;
label = "versatile:6"; label = "versatile:6";
default-state = "off"; default-state = "off";
}; };
led@08.7 { led@8,7 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x80>; mask = <0x80>;
label = "versatile:7"; label = "versatile:7";
default-state = "off"; default-state = "off";
}; };
oscclk0: osc0@0c { oscclk0: clock-controller@c {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x0c 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x0C>; vco-offset = <0x0C>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk1: osc1@10 { oscclk1: clock-controller@10 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x10 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x10>; vco-offset = <0x10>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk2: osc2@14 { oscclk2: clock-controller@14 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x14 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x14>; vco-offset = <0x14>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk3: osc3@18 { oscclk3: clock-controller@18 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x18 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x18>; vco-offset = <0x18>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk4: osc4@1c { oscclk4: clock-controller@1c {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x1c 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x1c>; vco-offset = <0x1c>;
......
...@@ -216,96 +216,112 @@ soc { ...@@ -216,96 +216,112 @@ soc {
syscon: syscon@10000000 { syscon: syscon@10000000 {
compatible = "arm,realview-pb1176-syscon", "syscon", "simple-mfd"; compatible = "arm,realview-pb1176-syscon", "syscon", "simple-mfd";
reg = <0x10000000 0x1000>; reg = <0x10000000 0x1000>;
ranges = <0x0 0x10000000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
led@08.0 { led@8,0 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x01>; mask = <0x01>;
label = "versatile:0"; label = "versatile:0";
linux,default-trigger = "heartbeat"; linux,default-trigger = "heartbeat";
default-state = "on"; default-state = "on";
}; };
led@08.1 { led@8,1 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x02>; mask = <0x02>;
label = "versatile:1"; label = "versatile:1";
linux,default-trigger = "mmc0"; linux,default-trigger = "mmc0";
default-state = "off"; default-state = "off";
}; };
led@08.2 { led@8,2 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x04>; mask = <0x04>;
label = "versatile:2"; label = "versatile:2";
linux,default-trigger = "cpu0"; linux,default-trigger = "cpu0";
default-state = "off"; default-state = "off";
}; };
led@08.3 { led@8,3 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x08>; mask = <0x08>;
label = "versatile:3"; label = "versatile:3";
default-state = "off"; default-state = "off";
}; };
led@08.4 { led@8,4 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x10>; mask = <0x10>;
label = "versatile:4"; label = "versatile:4";
default-state = "off"; default-state = "off";
}; };
led@08.5 { led@8,5 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x20>; mask = <0x20>;
label = "versatile:5"; label = "versatile:5";
default-state = "off"; default-state = "off";
}; };
led@08.6 { led@8,6 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x40>; mask = <0x40>;
label = "versatile:6"; label = "versatile:6";
default-state = "off"; default-state = "off";
}; };
led@08.7 { led@8,7 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x80>; mask = <0x80>;
label = "versatile:7"; label = "versatile:7";
default-state = "off"; default-state = "off";
}; };
oscclk0: osc0@0c { oscclk0: clock-controller@c {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x0c 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x0C>; vco-offset = <0x0C>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk1: osc1@10 { oscclk1: clock-controller@10 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x10 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x10>; vco-offset = <0x10>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk2: osc2@14 { oscclk2: clock-controller@14 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x14 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x14>; vco-offset = <0x14>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk3: osc3@18 { oscclk3: clock-controller@18 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x18 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x18>; vco-offset = <0x18>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk4: osc4@1c { oscclk4: clock-controller@1c {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x1c 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x1c>; vco-offset = <0x1c>;
......
...@@ -303,114 +303,132 @@ soc { ...@@ -303,114 +303,132 @@ soc {
pb11mp_syscon: syscon@10000000 { pb11mp_syscon: syscon@10000000 {
compatible = "arm,realview-pb11mp-syscon", "syscon", "simple-mfd"; compatible = "arm,realview-pb11mp-syscon", "syscon", "simple-mfd";
reg = <0x10000000 0x1000>; reg = <0x10000000 0x1000>;
ranges = <0x0 0x10000000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
led@08.0 { led@8,0 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x01>; mask = <0x01>;
label = "versatile:0"; label = "versatile:0";
linux,default-trigger = "heartbeat"; linux,default-trigger = "heartbeat";
default-state = "on"; default-state = "on";
}; };
led@08.1 { led@8,1 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x02>; mask = <0x02>;
label = "versatile:1"; label = "versatile:1";
linux,default-trigger = "mmc0"; linux,default-trigger = "mmc0";
default-state = "off"; default-state = "off";
}; };
led@08.2 { led@8,2 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x04>; mask = <0x04>;
label = "versatile:2"; label = "versatile:2";
linux,default-trigger = "cpu0"; linux,default-trigger = "cpu0";
default-state = "off"; default-state = "off";
}; };
led@08.3 { led@8,3 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x08>; mask = <0x08>;
label = "versatile:3"; label = "versatile:3";
linux,default-trigger = "cpu1"; linux,default-trigger = "cpu1";
default-state = "off"; default-state = "off";
}; };
led@08.4 { led@8,4 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x10>; mask = <0x10>;
label = "versatile:4"; label = "versatile:4";
linux,default-trigger = "cpu2"; linux,default-trigger = "cpu2";
default-state = "off"; default-state = "off";
}; };
led@08.5 { led@8,5 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x20>; mask = <0x20>;
label = "versatile:5"; label = "versatile:5";
linux,default-trigger = "cpu3"; linux,default-trigger = "cpu3";
default-state = "off"; default-state = "off";
}; };
led@08.6 { led@8,6 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x40>; mask = <0x40>;
label = "versatile:6"; label = "versatile:6";
default-state = "off"; default-state = "off";
}; };
led@08.7 { led@8,7 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x80>; mask = <0x80>;
label = "versatile:7"; label = "versatile:7";
default-state = "off"; default-state = "off";
}; };
oscclk0: osc0@0c { oscclk0: clock-controller@c {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x0c 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x0C>; vco-offset = <0x0C>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk1: osc1@10 { oscclk1: clock-controller@10 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x10 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x10>; vco-offset = <0x10>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk2: osc2@14 { oscclk2: clock-controller@14 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x14 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x14>; vco-offset = <0x14>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk3: osc3@18 { oscclk3: clock-controller@18 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x18 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x18>; vco-offset = <0x18>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk4: osc4@1c { oscclk4: clock-controller@1c {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x1c 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x1c>; vco-offset = <0x1c>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk5: osc5@d4 { oscclk5: clock-controller@d4 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0xd4 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0xd4>; vco-offset = <0xd4>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk6: osc6@d8 { oscclk6: clock-controller@d8 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0xd8 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0xd8>; vco-offset = <0xd8>;
......
...@@ -220,96 +220,112 @@ soc: soc { ...@@ -220,96 +220,112 @@ soc: soc {
syscon: syscon@10000000 { syscon: syscon@10000000 {
compatible = "arm,realview-pbx-syscon", "syscon", "simple-mfd"; compatible = "arm,realview-pbx-syscon", "syscon", "simple-mfd";
reg = <0x10000000 0x1000>; reg = <0x10000000 0x1000>;
ranges = <0x0 0x10000000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
led@08.0 { led@8,0 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x01>; mask = <0x01>;
label = "versatile:0"; label = "versatile:0";
linux,default-trigger = "heartbeat"; linux,default-trigger = "heartbeat";
default-state = "on"; default-state = "on";
}; };
led@08.1 { led@8,1 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x02>; mask = <0x02>;
label = "versatile:1"; label = "versatile:1";
linux,default-trigger = "mmc0"; linux,default-trigger = "mmc0";
default-state = "off"; default-state = "off";
}; };
led@08.2 { led@8,2 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x04>; mask = <0x04>;
label = "versatile:2"; label = "versatile:2";
linux,default-trigger = "cpu0"; linux,default-trigger = "cpu0";
default-state = "off"; default-state = "off";
}; };
led@08.3 { led@8,3 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x08>; mask = <0x08>;
label = "versatile:3"; label = "versatile:3";
default-state = "off"; default-state = "off";
}; };
led@08.4 { led@8,4 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x10>; mask = <0x10>;
label = "versatile:4"; label = "versatile:4";
default-state = "off"; default-state = "off";
}; };
led@08.5 { led@8,5 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x20>; mask = <0x20>;
label = "versatile:5"; label = "versatile:5";
default-state = "off"; default-state = "off";
}; };
led@08.6 { led@8,6 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x40>; mask = <0x40>;
label = "versatile:6"; label = "versatile:6";
default-state = "off"; default-state = "off";
}; };
led@08.7 { led@8,7 {
compatible = "register-bit-led"; compatible = "register-bit-led";
reg = <0x08 0x04>;
offset = <0x08>; offset = <0x08>;
mask = <0x80>; mask = <0x80>;
label = "versatile:7"; label = "versatile:7";
default-state = "off"; default-state = "off";
}; };
oscclk0: osc0@0c { oscclk0: clock-controller@c {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x0c 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x0C>; vco-offset = <0x0C>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk1: osc1@10 { oscclk1: clock-controller@10 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x10 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x10>; vco-offset = <0x10>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk2: osc2@14 { oscclk2: clock-controller@14 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x14 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x14>; vco-offset = <0x14>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk3: osc3@18 { oscclk3: clock-controller@18 {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x18 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x18>; vco-offset = <0x18>;
clocks = <&xtal24mhz>; clocks = <&xtal24mhz>;
}; };
oscclk4: osc4@1c { oscclk4: clock-controller@1c {
compatible = "arm,syscon-icst307"; compatible = "arm,syscon-icst307";
reg = <0x1c 0x04>;
#clock-cells = <0>; #clock-cells = <0>;
lock-offset = <0x20>; lock-offset = <0x20>;
vco-offset = <0x1c>; vco-offset = <0x1c>;
......
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/* Copyright (c) 2021, Marcel Ziswiler <marcel@ziswiler.com> */
/dts-v1/;
#include "armada-385.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
model = "Netgear GS110EMX";
compatible = "netgear,gs110emx", "marvell,armada380";
aliases {
/* So that mvebu u-boot can update the MAC addresses */
ethernet1 = &eth0;
};
chosen {
stdout-path = "serial0:115200n8";
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&front_button_pins>;
pinctrl-names = "default";
factory_default {
label = "Factory Default";
gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
memory {
device_type = "memory";
reg = <0x00000000 0x08000000>; /* 128 MB */
};
soc {
ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
internal-regs {
rtc@a3800 {
/*
* If the rtc doesn't work, run "date reset"
* twice in u-boot.
*/
status = "okay";
};
};
};
};
&eth0 {
/* ethernet@70000 */
bm,pool-long = <0>;
bm,pool-short = <1>;
buffer-manager = <&bm>;
phy-mode = "rgmii-id";
pinctrl-0 = <&ge0_rgmii_pins>;
pinctrl-names = "default";
status = "okay";
fixed-link {
full-duplex;
pause;
speed = <1000>;
};
};
&mdio {
pinctrl-names = "default";
pinctrl-0 = <&mdio_pins>;
status = "okay";
switch@0 {
compatible = "marvell,mv88e6190";
#address-cells = <1>;
#interrupt-cells = <2>;
interrupt-controller;
interrupt-parent = <&gpio1>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
pinctrl-0 = <&switch_interrupt_pins>;
pinctrl-names = "default";
#size-cells = <0>;
reg = <0>;
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>;
};
};
mdio-external {
compatible = "marvell,mv88e6xxx-mdio-external";
#address-cells = <1>;
#size-cells = <0>;
phy1: ethernet-phy@b {
reg = <0xb>;
compatible = "ethernet-phy-ieee802.3-c45";
};
phy2: ethernet-phy@c {
reg = <0xc>;
compatible = "ethernet-phy-ieee802.3-c45";
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
ethernet = <&eth0>;
label = "cpu";
reg = <0>;
fixed-link {
full-duplex;
pause;
speed = <1000>;
};
};
port@1 {
label = "lan1";
phy-handle = <&switch0phy1>;
reg = <1>;
};
port@2 {
label = "lan2";
phy-handle = <&switch0phy2>;
reg = <2>;
};
port@3 {
label = "lan3";
phy-handle = <&switch0phy3>;
reg = <3>;
};
port@4 {
label = "lan4";
phy-handle = <&switch0phy4>;
reg = <4>;
};
port@5 {
label = "lan5";
phy-handle = <&switch0phy5>;
reg = <5>;
};
port@6 {
label = "lan6";
phy-handle = <&switch0phy6>;
reg = <6>;
};
port@7 {
label = "lan7";
phy-handle = <&switch0phy7>;
reg = <7>;
};
port@8 {
label = "lan8";
phy-handle = <&switch0phy8>;
reg = <8>;
};
port@9 {
/* 88X3310P external phy */
label = "lan9";
phy-handle = <&phy1>;
phy-mode = "xaui";
reg = <9>;
};
port@a {
/* 88X3310P external phy */
label = "lan10";
phy-handle = <&phy2>;
phy-mode = "xaui";
reg = <0xa>;
};
};
};
};
&pinctrl {
front_button_pins: front-button-pins {
marvell,pins = "mpp38";
marvell,function = "gpio";
};
switch_interrupt_pins: switch-interrupt-pins {
marvell,pins = "mpp39";
marvell,function = "gpio";
};
};
&spi0 {
pinctrl-0 = <&spi0_pins>;
pinctrl-names = "default";
status = "okay";
spi-flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>; /* Chip select 0 */
spi-max-frequency = <3000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "boot";
read-only;
reg = <0x00000000 0x00100000>;
};
partition@100000 {
label = "env";
reg = <0x00100000 0x00010000>;
};
partition@200000 {
label = "rsv";
reg = <0x00110000 0x00010000>;
};
partition@300000 {
label = "image0";
reg = <0x00120000 0x00900000>;
};
partition@400000 {
label = "config";
reg = <0x00a20000 0x00300000>;
};
partition@480000 {
label = "debug";
reg = <0x00d20000 0x002e0000>;
};
};
};
};
&uart0 {
pinctrl-0 = <&uart0_pins>;
pinctrl-names = "default";
status = "okay";
};
...@@ -159,6 +159,11 @@ &i2c2 { ...@@ -159,6 +159,11 @@ &i2c2 {
//24LC128 EEPROM //24LC128 EEPROM
&i2c3 { &i2c3 {
status = "okay"; status = "okay";
eeprom@50 {
compatible = "atmel,24c256";
reg = <0x50>;
pagesize = <64>;
};
}; };
//P0 Power regulators //P0 Power regulators
......
...@@ -86,6 +86,18 @@ S0_cpu_fault { ...@@ -86,6 +86,18 @@ S0_cpu_fault {
linux,code = <ASPEED_GPIO(J, 1)>; linux,code = <ASPEED_GPIO(J, 1)>;
}; };
S0_scp_auth_fail {
label = "S0_SCP_AUTH_FAIL";
gpios = <&gpio ASPEED_GPIO(J, 2) GPIO_ACTIVE_LOW>;
linux,code = <ASPEED_GPIO(J, 2)>;
};
S1_scp_auth_fail {
label = "S1_SCP_AUTH_FAIL";
gpios = <&gpio ASPEED_GPIO(Z, 5) GPIO_ACTIVE_LOW>;
linux,code = <ASPEED_GPIO(Z, 5)>;
};
S1_overtemp { S1_overtemp {
label = "S1_OVERTEMP"; label = "S1_OVERTEMP";
gpios = <&gpio ASPEED_GPIO(Z, 6) GPIO_ACTIVE_LOW>; gpios = <&gpio ASPEED_GPIO(Z, 6) GPIO_ACTIVE_LOW>;
...@@ -590,7 +602,7 @@ &gpio { ...@@ -590,7 +602,7 @@ &gpio {
/*Q0-Q7*/ "","","","","","UID_BUTTON","","", /*Q0-Q7*/ "","","","","","UID_BUTTON","","",
/*R0-R7*/ "","","BMC_EXT_HIGHTEMP_L","OCP_AUX_PWREN", /*R0-R7*/ "","","BMC_EXT_HIGHTEMP_L","OCP_AUX_PWREN",
"OCP_MAIN_PWREN","RESET_BUTTON","","", "OCP_MAIN_PWREN","RESET_BUTTON","","",
/*S0-S7*/ "","","","","","","","", /*S0-S7*/ "","","","","RTC_BAT_SEN_EN","","","",
/*T0-T7*/ "","","","","","","","", /*T0-T7*/ "","","","","","","","",
/*U0-U7*/ "","","","","","","","", /*U0-U7*/ "","","","","","","","",
/*V0-V7*/ "","","","","","","","", /*V0-V7*/ "","","","","","","","",
...@@ -604,4 +616,11 @@ &gpio { ...@@ -604,4 +616,11 @@ &gpio {
"S1_BMC_DDR_ADR","","","","", "S1_BMC_DDR_ADR","","","","",
/*AC0-AC7*/ "SYS_PWR_GD","","","","","BMC_READY","SLAVE_PRESENT_L", /*AC0-AC7*/ "SYS_PWR_GD","","","","","BMC_READY","SLAVE_PRESENT_L",
"BMC_OCP_PG"; "BMC_OCP_PG";
i2c4_o_en {
gpio-hog;
gpios = <ASPEED_GPIO(Y, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_I2C4_O_EN";
};
}; };
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include "aspeed-g5.dtsi" #include "aspeed-g5.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h> #include <dt-bindings/gpio/aspeed-gpio.h>
#include <dt-bindings/leds/leds-pca955x.h> #include <dt-bindings/leds/leds-pca955x.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ { / {
model = "FP5280G2 BMC"; model = "FP5280G2 BMC";
...@@ -245,7 +246,7 @@ flash@0 { ...@@ -245,7 +246,7 @@ flash@0 {
label = "bmc"; label = "bmc";
m25p,fast-read; m25p,fast-read;
spi-max-frequency = <50000000>; spi-max-frequency = <50000000>;
#include "openbmc-flash-layout.dtsi" #include "openbmc-flash-layout-64.dtsi"
}; };
}; };
...@@ -902,4 +903,10 @@ fan@7 { ...@@ -902,4 +903,10 @@ fan@7 {
}; };
&kcs3 {
status = "okay";
aspeed,lpc-io-reg = <0xca2>;
aspeed,lpc-interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
};
#include "ibm-power9-dual.dtsi" #include "ibm-power9-dual.dtsi"
// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright 2021 Inventec Corp.
/dts-v1/;
#include "aspeed-g6.dtsi"
#include "aspeed-g6-pinctrl.dtsi"
#include <dt-bindings/i2c/i2c.h>
#include <dt-bindings/gpio/aspeed-gpio.h>
/ {
model = "TRANSFORMERS BMC";
compatible = "inventec,transformer-bmc", "aspeed,ast2600";
aliases {
serial4 = &uart5;
};
chosen {
stdout-path = &uart5;
bootargs = "console=ttyS4,115200n8";
};
memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x80000000>;
};
leds {
compatible = "gpio-leds";
// UID led
uid {
label = "UID_LED";
gpios = <&gpio0 ASPEED_GPIO(X, 0) GPIO_ACTIVE_LOW>;
};
// Heart beat led
heartbeat {
label = "HB_LED";
gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
};
};
};
&mdio0 {
status = "okay";
ethphy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
};
};
&mac3 {
status = "okay";
phy-mode = "rgmii";
phy-handle = <&ethphy0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rgmii4_default>;
};
&fmc {
status = "okay";
flash@0 {
status = "okay";
m25p,fast-read;
label = "bmc";
spi-max-frequency = <33000000>;
spi-tx-bus-width = <2>;
spi-rx-bus-width = <2>;
#include "openbmc-flash-layout.dtsi"
};
flash@1 {
status = "okay";
m25p,fast-read;
label = "bmc2";
spi-max-frequency = <33000000>;
spi-tx-bus-width = <2>;
spi-rx-bus-width = <2>;
};
};
&spi1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spi1_default>;
flash@0 {
status = "okay";
m25p,fast-read;
label = "bios";
spi-max-frequency = <33000000>;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <1>;
};
};
&wdt1 {
status = "okay";
};
&uart1 {
status = "okay";
};
&uart5 {
status = "okay";
};
&i2c0 {
status = "okay";
//Set bmc' slave address;
bmc_slave@10 {
compatible = "ipmb-dev";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
i2c-protocol;
};
};
&i2c2 {
status = "okay";
};
&i2c3 {
// FRU AT24C512C-SSHM-T
status = "okay";
eeprom@50 {
compatible = "atmel,24c512";
reg = <0x50>;
pagesize = <128>;
};
};
&i2c5 {
status = "okay";
};
&i2c6 {
status = "okay";
tmp75@49 {
compatible = "ti,tmp75";
reg = <0x49>;
};
tmp75@4f {
compatible = "ti,tmp75";
reg = <0x4f>;
};
tmp468@48 {
compatible = "ti,tmp468";
reg = <0x48>;
};
};
&i2c7 {
status = "okay";
adm1278@40 {
compatible = "adi,adm1278";
reg = <0x40>;
};
};
&i2c8 {
// FRU AT24C512C-SSHM-T
status = "okay";
eeprom@51 {
compatible = "atmel,24c512";
reg = <0x51>;
pagesize = <128>;
};
eeprom@53 {
compatible = "atmel,24c512";
reg = <0x53>;
pagesize = <128>;
};
};
&i2c9 {
// M.2
status = "okay";
};
&i2c10 {
// I2C EXPANDER
status = "okay";
i2c-switch@71 {
compatible = "nxp,pca9544";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x71>;
};
i2c-switch@73 {
compatible = "nxp,pca9544";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x73>;
};
};
&i2c11 {
// I2C EXPANDER
status = "okay";
i2c-switch@70 {
compatible = "nxp,pca9544";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
pcie_eeprom_riser1: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
eeprom@55 {
compatible = "atmel,24c512";
reg = <0x55>;
pagesize = <128>;
};
};
pcie_eeprom_riser2: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
eeprom@55 {
compatible = "atmel,24c512";
reg = <0x55>;
pagesize = <128>;
};
};
pcie_eeprom_riser3: i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
eeprom@55 {
compatible = "atmel,24c512";
reg = <0x55>;
pagesize = <128>;
};
};
};
};
&i2c12 {
status = "okay";
psu0:psu0@58 {
compatible = "pmbus";
reg = <0x58>;
};
};
&gpio0 {
status = "okay";
gpio-line-names =
/*A0-A7*/ "","","","","","","","",
/*B0-B7*/ "presence-ps0","power-chassis-good","","","","","presence-ps1","",
/*C0-C7*/ "","","","","","","","",
/*D0-D7*/ "","","","","","","","",
/*E0-E7*/ "","","","","","","","",
/*F0-F7*/ "","","","","power-chassis-control","","","",
/*G0-G7*/ "","","jtag-mux","","","","","",
/*H0-H7*/ "","","","","reset-button","power-button","","",
/*I0-I7*/ "","","","","","","","",
/*J0-J7*/ "","","","","","","","",
/*K0-K7*/ "","","","","","","","",
/*L0-L7*/ "","","","","","","","",
/*M0-M7*/ "","","","","","","","",
/*N0-N7*/ "","","","","","","","",
/*O0-O7*/ "","","","","","","","",
/*P0-P7*/ "","","","tck-mux","","","","",
/*Q0-Q7*/ "","","","","","","","",
/*R0-R7*/ "","","","","","","","",
/*S0-S7*/ "","","","","","","","",
/*T0-T7*/ "","","","","","","","",
/*U0-U7*/ "","nmi-button","","","","","","",
/*V0-V7*/ "","","","","power-config-full-load","","","",
/*W0-W7*/ "","","","","","","","",
/*X0-X7*/ "","","","","","","","",
/*Y0-Y7*/ "","","","","","","","",
/*Z0-Z7*/ "","","","","","","","",
/*AA0-AA7*/ "","","","","","","","",
/*AB0-AB7*/ "","","","","","","","",
/*AC0-AC7*/ "","","","","","","","";
};
&lpc_snoop {
status = "okay";
snoop-ports = <0x80>;
};
&emmc_controller {
status = "okay";
};
&emmc {
status = "okay";
non-removable;
max-frequency = <52000000>;
bus-width = <8>;
};
&vhub {
status = "okay";
aspeed,vhub-downstream-ports = <7>;
aspeed,vhub-generic-endpoints = <21>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb2ad_default>;
};
&rtc {
status = "okay";
};
This diff is collapsed.
...@@ -383,6 +383,12 @@ ibt: ibt@140 { ...@@ -383,6 +383,12 @@ ibt: ibt@140 {
interrupts = <8>; interrupts = <8>;
status = "disabled"; status = "disabled";
}; };
uart_routing: uart-routing@9c {
compatible = "aspeed,ast2400-uart-routing";
reg = <0x9c 0x4>;
status = "disabled";
};
}; };
uart2: serial@1e78d000 { uart2: serial@1e78d000 {
......
...@@ -491,6 +491,12 @@ lpc_reset: reset-controller@98 { ...@@ -491,6 +491,12 @@ lpc_reset: reset-controller@98 {
#reset-cells = <1>; #reset-cells = <1>;
}; };
uart_routing: uart-routing@9c {
compatible = "aspeed,ast2500-uart-routing";
reg = <0x9c 0x4>;
status = "disabled";
};
lhc: lhc@a0 { lhc: lhc@a0 {
compatible = "aspeed,ast2500-lhc"; compatible = "aspeed,ast2500-lhc";
reg = <0xa0 0x24 0xc8 0x8>; reg = <0xa0 0x24 0xc8 0x8>;
......
...@@ -364,6 +364,26 @@ xdma: xdma@1e6e7000 { ...@@ -364,6 +364,26 @@ xdma: xdma@1e6e7000 {
status = "disabled"; status = "disabled";
}; };
adc0: adc@1e6e9000 {
compatible = "aspeed,ast2600-adc0";
reg = <0x1e6e9000 0x100>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_ADC>;
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
#io-channel-cells = <1>;
status = "disabled";
};
adc1: adc@1e6e9100 {
compatible = "aspeed,ast2600-adc1";
reg = <0x1e6e9100 0x100>;
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_ADC>;
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
#io-channel-cells = <1>;
status = "disabled";
};
gpio0: gpio@1e780000 { gpio0: gpio@1e780000 {
#gpio-cells = <2>; #gpio-cells = <2>;
gpio-controller; gpio-controller;
...@@ -551,6 +571,12 @@ lpc_reset: reset-controller@98 { ...@@ -551,6 +571,12 @@ lpc_reset: reset-controller@98 {
#reset-cells = <1>; #reset-cells = <1>;
}; };
uart_routing: uart-routing@98 {
compatible = "aspeed,ast2600-uart-routing";
reg = <0x98 0x8>;
status = "disabled";
};
ibt: ibt@140 { ibt: ibt@140 {
compatible = "aspeed,ast2600-ibt-bmc"; compatible = "aspeed,ast2600-ibt-bmc";
reg = <0x140 0x18>; reg = <0x140 0x18>;
......
This diff is collapsed.
This diff is collapsed.
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
*/ */
#include "sama5d2.dtsi" #include "sama5d2.dtsi"
#include "sama5d2-pinfunc.h" #include "sama5d2-pinfunc.h"
#include <dt-bindings/gpio/gpio.h>
/ { / {
model = "Atmel SAMA5D27 SoM1"; model = "Atmel SAMA5D27 SoM1";
...@@ -95,8 +96,11 @@ ethernet-phy@7 { ...@@ -95,8 +96,11 @@ ethernet-phy@7 {
i2c0: i2c@f8028000 { i2c0: i2c@f8028000 {
dmas = <0>, <0>; dmas = <0>, <0>;
pinctrl-names = "default"; pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c0_default>; pinctrl-0 = <&pinctrl_i2c0_default>;
pinctrl-1 = <&pinctrl_i2c0_gpio>;
sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay"; status = "okay";
at24@50 { at24@50 {
...@@ -113,6 +117,12 @@ pinctrl_i2c0_default: i2c0_default { ...@@ -113,6 +117,12 @@ pinctrl_i2c0_default: i2c0_default {
bias-disable; bias-disable;
}; };
pinctrl_i2c0_gpio: i2c0_gpio {
pinmux = <PIN_PD21__GPIO>,
<PIN_PD22__GPIO>;
bias-disable;
};
pinctrl_qspi1_default: qspi1_default { pinctrl_qspi1_default: qspi1_default {
sck_cs { sck_cs {
pinmux = <PIN_PB5__QSPI1_SCK>, pinmux = <PIN_PB5__QSPI1_SCK>,
......
...@@ -130,8 +130,11 @@ i2c3: i2c@600 { ...@@ -130,8 +130,11 @@ i2c3: i2c@600 {
i2c-analog-filter; i2c-analog-filter;
i2c-digital-filter; i2c-digital-filter;
i2c-digital-filter-width-ns = <35>; i2c-digital-filter-width-ns = <35>;
pinctrl-names = "default"; pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_mikrobus_i2c>; pinctrl-0 = <&pinctrl_mikrobus_i2c>;
pinctrl-1 = <&pinctrl_i2c3_gpio>;
sda-gpios = <&pioA PIN_PA24 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA PIN_PA23 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay"; status = "okay";
}; };
}; };
...@@ -215,8 +218,11 @@ i2c1: i2c@fc028000 { ...@@ -215,8 +218,11 @@ i2c1: i2c@fc028000 {
i2c-analog-filter; i2c-analog-filter;
i2c-digital-filter; i2c-digital-filter;
i2c-digital-filter-width-ns = <35>; i2c-digital-filter-width-ns = <35>;
pinctrl-names = "default"; pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c1_default>; pinctrl-0 = <&pinctrl_i2c1_default>;
pinctrl-1 = <&pinctrl_i2c1_gpio>;
sda-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA PIN_PD5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay"; status = "okay";
}; };
...@@ -252,6 +258,13 @@ pinctrl_i2c1_default: i2c1_default { ...@@ -252,6 +258,13 @@ pinctrl_i2c1_default: i2c1_default {
bias-disable; bias-disable;
}; };
pinctrl_i2c1_gpio: i2c1_gpio {
pinmux = <PIN_PD4__GPIO>,
<PIN_PD5__GPIO>;
bias-disable;
};
pinctrl_isc_base: isc_base { pinctrl_isc_base: isc_base {
pinmux = <PIN_PC21__ISC_PCK>, pinmux = <PIN_PC21__ISC_PCK>,
<PIN_PC22__ISC_VSYNC>, <PIN_PC22__ISC_VSYNC>,
...@@ -441,6 +454,12 @@ pinctrl_mikrobus_i2c: mikrobus1_i2c { ...@@ -441,6 +454,12 @@ pinctrl_mikrobus_i2c: mikrobus1_i2c {
bias-disable; bias-disable;
}; };
pinctrl_i2c3_gpio: i2c3_gpio {
pinmux = <PIN_PA24__GPIO>,
<PIN_PA23__GPIO>;
bias-disable;
};
pinctrl_flx4_default: flx4_uart_default { pinctrl_flx4_default: flx4_uart_default {
pinmux = <PIN_PC28__FLEXCOM4_IO0>, pinmux = <PIN_PC28__FLEXCOM4_IO0>,
<PIN_PC29__FLEXCOM4_IO1>, <PIN_PC29__FLEXCOM4_IO1>,
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -262,7 +262,7 @@ &pwm0 { ...@@ -262,7 +262,7 @@ &pwm0 {
&macb1 { &macb1 {
status = "okay"; status = "okay";
phy-mode = "rgmii"; phy-mode = "rmii";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -166,7 +166,7 @@ tcb1: timer@fffdc000 { ...@@ -166,7 +166,7 @@ tcb1: timer@fffdc000 {
clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk"; clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
}; };
pinctrl@fffff400 { pinctrl: pinctrl@fffff400 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
compatible = "atmel,at91rm9200-pinctrl", "simple-bus"; compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -19,7 +19,7 @@ chosen { ...@@ -19,7 +19,7 @@ chosen {
bootargs = "console=ttyS0,115200"; bootargs = "console=ttyS0,115200";
}; };
memory { memory@0 {
device_type = "memory"; device_type = "memory";
reg = <0x00000000 0x08000000>, reg = <0x00000000 0x08000000>,
<0x88000000 0x08000000>; <0x88000000 0x08000000>;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment