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

Pull SoC devicetree updates from Arnd Bergmann:
 "There are fewer devicetree updates this time that the last few ones,
  with five SoC types getting added:

   - Qualcomm Dragonwing IPQ9650 is a new wireless networking SoC using
     four Cortex-A55 and one Cortex-A78 core, which is a significant
     upgrade from older generations

   - ZTE zx297520v3 is an older low-end wireless SoC using a single
     Cortex-A53 core, which so far can only run 32-bit kernels. This
     brings back the ZX family of chips that was removed in 2021 after
     support for the original zx296702 and zx296718 chips was never
     completed.

   - Renesas R-Car M3Le (R8A779MD) is a variant of the R-Car M3-N
     (R8A77965) automotive SoC.

   - Apple t8122 (M3) is the 2023 generation of their laptop SoCs, which
     has now been reverse-engineered to the point of having initial
     kernel support for five laptop models.

   - ASPEED AST27xx is their first baseboard managment controller using
     a 64-bit core, the Cortex-A35, following earlier generations using
     ARMv5/v6/v7 CPUs.

  These all come with one or more initial boards, and in total there are
  39 new boards getting added across SoC families, including:

   - Two NAS boxes using the old Cortina Systems Gemini SoC based on an
     ARMv4 FA526 CPU core

   - 18 industrial embedded boards using NXP i.MX6/8/9 and LX2160A SoCs
     from Variscite, Toradex and SolidRun, plus a number of overlays for
     combinations with additional boards

   - One new carrier board and SoM using TI K3 AM62x, in addition to new
     overlays for older SoMs

   - Two new boards using Spacemit K3 (no relation with TI) RISC-V SoCs.

   - Three phones from Google, Nothing and Motorola, all using Qualcomm
     Snapdragon SoCs

   - AST26xx BMC support for two server boards

  While there is still a significant number of patches improving
  hardware support for the existing boards across vendors (NXP,
  Qualcomm, Renesas, Rockchips, Mediatek, ...), a much smaller number
  of cleanups and warning fixes have made it in this time"

* tag 'soc-dt-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (665 commits)
  arm64: dts: aspeed: Fix duplicate pinctrl labels and address scheme
  arm64: dts: bst: enable eMMC controller in C1200
  dt-bindings: display/lvds-codec: add ti,sn65lvds93
  arm64: dts: allwinner: a523: Add missing GPIO interrupt
  arm64: dts: lx2160a-rev2: avoid 32-bit pcie window system ram overlap
  arm64: dts: aspeed: Add initial AST27xx SoC device tree
  arm64: Kconfig: Add ASPEED SoC family Kconfig support
  dt-bindings: arm: aspeed: Add AST2700 board compatible
  arm64: dts: allwinner: a523: add gpadc node
  arm64: dts: allwinner: Add EL2 virtual timer interrupt
  ARM: dts: sun8i: a83t: Add MIPI CSI-2 controller node
  dt-bindings: media: sun6i-a31-isp: Add optional interconnect properties
  dt-bindings: media: sun6i-a31-csi: Add optional interconnect properties
  arm64: dts: imx{91,93}-phyboard-segin: Add peb-av-18 overlays
  arm64: dts: imx93-var-som-symphony: enable ADC
  arm64: dts: imx93-var-som-symphony: enable TPM3 PWM
  arm64: dts: imx93-var-som-symphony: keep RGB_SEL low
  arm64: dts: imx93-var-som-symphony: enable UART7
  arm64: dts: imx93-var-som-symphony: add TPM support
  arm64: dts: imx91-var-som-symphony: fix RGB_SEL handling
  ...
This commit is contained in:
Linus Torvalds
2026-06-17 11:16:56 -07:00
611 changed files with 47686 additions and 3651 deletions

View File

@@ -111,10 +111,17 @@ properties:
- enum:
- intel,socfpga-agilex5-socdk
- intel,socfpga-agilex5-socdk-013b
- intel,socfpga-agilex5-socdk-debug
- intel,socfpga-agilex5-socdk-modular
- intel,socfpga-agilex5-socdk-nand
- const: intel,socfpga-agilex5
- description: Agilex7m boards
items:
- enum:
- altr,socfpga-agilex7m-socdk
- const: altr,socfpga-agilex7m
- description: SoCFPGA VT
items:
- const: altr,socfpga-vt

View File

@@ -96,6 +96,13 @@ description: |
- MacBook Pro (13-inch, M2, 2022)
- Mac mini (M2, 2023)
Devices based on the "M3" SoC:
- MacBook Air (13-inch, M3, 2024)
- MacBook Air (15-inch, M3, 2024)
- MacBook Pro (14-inch, M3, 2023)
- iMac (24-inch, M3, 2023)
Devices based on the "M1 Pro", "M1 Max" and "M1 Ultra" SoCs:
- MacBook Pro (14-inch, M1 Pro, 2021)
@@ -297,6 +304,17 @@ properties:
- const: apple,t8112
- const: apple,arm-platform
- description: Apple M3 SoC based platforms
items:
- enum:
- apple,j433 # iMac (24-inch, 2x USB-C, M3, 2023)
- apple,j434 # iMac (24-inch, 4x USB-C, M3, 2023)
- apple,j504 # MacBook Pro (14-inch, M3, 2023)
- apple,j613 # MacBook Air (13-inch, M3, 2024)
- apple,j615 # MacBook Air (15-inch, M3, 2024)
- const: apple,t8122
- const: apple,arm-platform
- description: Apple M1 Pro SoC based platforms
items:
- enum:

View File

@@ -36,7 +36,9 @@ properties:
- const: syscon
- const: simple-mfd
- items:
- const: apple,t6020-pmgr
- enum:
- apple,t6020-pmgr
- apple,t8122-pmgr
- const: apple,t8103-pmgr
- const: syscon
- const: simple-mfd

View File

@@ -95,6 +95,8 @@ properties:
- facebook,greatlakes-bmc
- facebook,harma-bmc
- facebook,minerva-cmc
- facebook,rainiera6-bmc
- facebook,sanmiguel-bmc
- facebook,santabarbara-bmc
- facebook,yosemite4-bmc
- facebook,yosemite5-bmc
@@ -117,4 +119,10 @@ properties:
- ufispace,ncplite-bmc
- const: aspeed,ast2600
- description: AST2700 based boards
items:
- enum:
- aspeed,ast2700-evb
- const: aspeed,ast2700
additionalProperties: true

View File

@@ -688,7 +688,7 @@ properties:
- const: phytec,imx6ul-pcl063 # PHYTEC phyCORE-i.MX 6UL
- const: fsl,imx6ul
- description: i.MX6UL Variscite VAR-SOM-MX6 Boards
- description: i.MX6UL Variscite VAR-SOM-6UL Boards
items:
- const: variscite,mx6ulconcerto
- const: variscite,var-som-imx6ul
@@ -797,6 +797,12 @@ properties:
- const: phytec,imx6ull-pcl063 # PHYTEC phyCORE-i.MX 6ULL
- const: fsl,imx6ull
- description: i.MX6ULL Variscite VAR-SOM-6UL Boards
items:
- const: variscite,mx6ullconcerto # Variscite VAR-SOM-6UL dev kit board
- const: variscite,var-som-imx6ull # Variscite VAR-SOM-6UL SoM (6ULL variant)
- const: fsl,imx6ull
- description: i.MX6ULL Boards with Toradex Colibri iMX6ULL Modules
items:
- enum:
@@ -1025,6 +1031,7 @@ properties:
- toradex,verdin-imx8mm-nonwifi-ivy # Verdin iMX8M Mini Module on Ivy
- toradex,verdin-imx8mm-nonwifi-mallow # Verdin iMX8M Mini Module on Mallow
- toradex,verdin-imx8mm-nonwifi-yavia # Verdin iMX8M Mini Module on Yavia
- toradex,verdin-imx8mm-nonwifi-zinnia # Verdin iMX8M Mini Module on Zinnia
- const: toradex,verdin-imx8mm-nonwifi # Verdin iMX8M Mini Module without Wi-Fi / BT
- const: toradex,verdin-imx8mm # Verdin iMX8M Mini Module
- const: fsl,imx8mm
@@ -1037,6 +1044,7 @@ properties:
- toradex,verdin-imx8mm-wifi-ivy # Verdin iMX8M Mini Wi-Fi / BT Module on Ivy
- toradex,verdin-imx8mm-wifi-mallow # Verdin iMX8M Mini Wi-Fi / BT Module on Mallow
- toradex,verdin-imx8mm-wifi-yavia # Verdin iMX8M Mini Wi-Fi / BT Module on Yavia
- toradex,verdin-imx8mm-wifi-zinnia # Verdin iMX8M Mini Wi-Fi / BT Module on Zinnia
- const: toradex,verdin-imx8mm-wifi # Verdin iMX8M Mini Wi-Fi / BT Module
- const: toradex,verdin-imx8mm # Verdin iMX8M Mini Module
- const: fsl,imx8mm
@@ -1271,6 +1279,7 @@ properties:
- toradex,verdin-imx8mp-nonwifi-ivy # Verdin iMX8M Plus Module on Ivy
- toradex,verdin-imx8mp-nonwifi-mallow # Verdin iMX8M Plus Module on Mallow
- toradex,verdin-imx8mp-nonwifi-yavia # Verdin iMX8M Plus Module on Yavia
- toradex,verdin-imx8mp-nonwifi-zinnia # Verdin iMX8M Plus Module on Zinnia
- const: toradex,verdin-imx8mp-nonwifi # Verdin iMX8M Plus Module without Wi-Fi / BT
- const: toradex,verdin-imx8mp # Verdin iMX8M Plus Module
- const: fsl,imx8mp
@@ -1283,6 +1292,7 @@ properties:
- toradex,verdin-imx8mp-wifi-ivy # Verdin iMX8M Plus Wi-Fi / BT Module on Ivy
- toradex,verdin-imx8mp-wifi-mallow # Verdin iMX8M Plus Wi-Fi / BT Module on Mallow
- toradex,verdin-imx8mp-wifi-yavia # Verdin iMX8M Plus Wi-Fi / BT Module on Yavia
- toradex,verdin-imx8mp-wifi-zinnia # Verdin iMX8M Plus Wi-Fi / BT Module on Zinnia
- const: toradex,verdin-imx8mp-wifi # Verdin iMX8M Plus Wi-Fi / BT Module
- const: toradex,verdin-imx8mp # Verdin iMX8M Plus Module
- const: fsl,imx8mp
@@ -1394,6 +1404,13 @@ properties:
- fsl,imx8dxl-evk # i.MX8DXL EVK Board
- const: fsl,imx8dxl
- description: SolidRun i.MX8DXL SoM based boards
items:
- enum:
- solidrun,imx8dxl-hummingboard-telematics # SolidRun i.MX8DXL SoM EVK Board
- const: solidrun,imx8dxl-sr-som
- const: fsl,imx8dxl
- description: i.MX8QXP/i.MX8DX Boards with Toradex Colibri iMX8X Modules
items:
- enum:
@@ -1458,6 +1475,7 @@ properties:
- description: i.MX91 based Boards
items:
- enum:
- fsl,imx91-9x9-qsb # i.MX91 9x9 QSB Board
- fsl,imx91-11x11-evk # i.MX91 11x11 EVK Board
- fsl,imx91-11x11-frdm # FRDM i.MX91 Development Board
- fsl,imx91-11x11-frdm-s # FRDM i.MX91S Development Board
@@ -1482,9 +1500,11 @@ properties:
- description: i.MX95 based Boards
items:
- enum:
- fsl,imx95-15x15-ab2 # i.MX95 15x15 Audio Board V2
- fsl,imx95-15x15-evk # i.MX95 15x15 EVK Board
- fsl,imx95-15x15-frdm # i.MX95 15x15 FRDM Board
- fsl,imx95-19x19-evk # i.MX95 19x19 EVK Board
- fsl,imx95-19x19-frdm-pro # i.MX95 19x19 FRDM PRO Board
- toradex,verdin-imx95-19x19-evk # i.MX95 Verdin Evaluation Kit (EVK)
- const: fsl,imx95
@@ -1501,6 +1521,14 @@ properties:
- const: phytec,imx95-phycore-fpsc # phyCORE-i.MX 95 FPSC
- const: fsl,imx95
- description: Toradex Boards with Aquila iMX95 Modules
items:
- enum:
- toradex,aquila-imx95-clover # Aquila iMX95 Module on Clover Board
- toradex,aquila-imx95-dev # Aquila iMX95 Module on Aquila Development Board
- const: toradex,aquila-imx95 # Aquila iMX95 Module
- const: fsl,imx95
- description: Toradex Boards with SMARC iMX95 Modules
items:
- const: toradex,smarc-imx95-dev # Toradex SMARC iMX95 on Toradex SMARC Development Board
@@ -1515,6 +1543,7 @@ properties:
- toradex,verdin-imx95-nonwifi-ivy # Verdin iMX95 Module on Ivy
- toradex,verdin-imx95-nonwifi-mallow # Verdin iMX95 Module on Mallow
- toradex,verdin-imx95-nonwifi-yavia # Verdin iMX95 Module on Yavia
- toradex,verdin-imx95-nonwifi-zinnia # Verdin iMX95 Module on Zinnia
- const: toradex,verdin-imx95-nonwifi # Verdin iMX95 Module without Wi-Fi / BT
- const: toradex,verdin-imx95 # Verdin iMX95 Module
- const: fsl,imx95
@@ -1527,6 +1556,7 @@ properties:
- toradex,verdin-imx95-wifi-ivy # Verdin iMX95 Wi-Fi / BT Module on Ivy
- toradex,verdin-imx95-wifi-mallow # Verdin iMX95 Wi-Fi / BT Module on Mallow
- toradex,verdin-imx95-wifi-yavia # Verdin iMX95 Wi-Fi / BT Module on Yavia
- toradex,verdin-imx95-wifi-zinnia # Verdin iMX95 Wi-Fi / BT Module on Zinnia
- const: toradex,verdin-imx95-wifi # Verdin iMX95 Wi-Fi / BT Module
- const: toradex,verdin-imx95 # Verdin iMX95 Module
- const: fsl,imx95
@@ -1614,6 +1644,18 @@ properties:
- const: variscite,var-dart-mx91 # Variscite DART-MX91 SOM
- const: fsl,imx91
- description: Variscite VAR-SOM-MX91 based boards
items:
- const: variscite,var-som-mx91-symphony # Variscite VAR-SOM-MX91 on Symphony
- const: variscite,var-som-mx91 # Variscite VAR-SOM-MX91
- const: fsl,imx91
- description: Variscite DART-MX93 based boards
items:
- const: variscite,var-dart-mx93-sonata # Variscite DART-MX93 on Sonata Development Board
- const: variscite,var-dart-mx93 # Variscite DART-MX93 SOM
- const: fsl,imx93
- description: Variscite VAR-SOM-MX93 based boards
items:
- const: variscite,var-som-mx93-symphony
@@ -1868,6 +1910,7 @@ properties:
- enum:
- solidrun,clearfog-cx
- solidrun,honeycomb
- solidrun,twins-single
- const: solidrun,lx2160a-cex7
- const: fsl,lx2160a

View File

@@ -55,6 +55,11 @@ properties:
- const: itian,sq201
- const: cortina,gemini
- description: Raidsonic NAS IB-4210-B
items:
- const: raidsonic,ib-4210-b
- const: cortina,gemini
- description: Raidsonic NAS IB-4220-B
items:
- const: raidsonic,ib-4220-b
@@ -70,6 +75,11 @@ properties:
- const: teltonika,rut1xx
- const: cortina,gemini
- description: Verbatim S08V1901-D1 NAS
items:
- const: verbatim,s08v1901-d1
- const: cortina,gemini
- description: Wiligear Wiliboard WBD-111
items:
- const: wiligear,wiliboard-wbd111

View File

@@ -79,6 +79,7 @@ properties:
- items:
- enum:
- fairphone,fp6
- nothing,asteroids
- const: qcom,milos
- items:
@@ -365,6 +366,11 @@ properties:
- qcom,ipq9574-ap-al02-c9
- const: qcom,ipq9574
- items:
- enum:
- qcom,ipq9650-rdp488
- const: qcom,ipq9650
- items:
- enum:
- qcom,kaanapali-mtp
@@ -822,6 +828,14 @@ properties:
- const: google,zombie-sku514
- const: qcom,sc7280
- description: Xiaomi Poco F1
items:
- enum:
- xiaomi,beryllium-ebbg
- xiaomi,beryllium-tianma
- const: xiaomi,beryllium
- const: qcom,sdm845
- items:
- enum:
- lenovo,flex-5g
@@ -972,8 +986,6 @@ properties:
- sony,akatsuki-row
- sony,apollo-row
- thundercomm,db845c
- xiaomi,beryllium
- xiaomi,beryllium-ebbg
- xiaomi,polaris
- const: qcom,sdm845
@@ -1040,6 +1052,7 @@ properties:
- items:
- enum:
- motorola,dubai
- nothing,spacewar
- const: qcom,sm7325
@@ -1168,6 +1181,10 @@ properties:
- const: microsoft,denali
- const: qcom,x1e80100
- items:
- const: microsoft,surface-pro-12in
- const: qcom,x1p42100
- items:
- enum:
- qcom,purwa-iot-evk

View File

@@ -16,6 +16,7 @@ properties:
- nvidia,tegra186-pmc
- nvidia,tegra194-pmc
- nvidia,tegra234-pmc
- nvidia,tegra238-pmc
- nvidia,tegra264-pmc
reg:
@@ -76,6 +77,7 @@ allOf:
contains:
enum:
- nvidia,tegra234-pmc
- nvidia,tegra238-pmc
- nvidia,tegra264-pmc
then:
properties:

View File

@@ -97,6 +97,13 @@ properties:
- const: toradex,verdin-am62 # Verdin AM62 Module
- const: ti,am625
- description: K3 AM625 SoC on TQ-Systems TQMa62xx SoM
items:
- enum:
- tq,am625-tqma6254-mba62xx # MBa62xx base board
- const: tq,am625-tqma6254
- const: ti,am625
- description: K3 AM62P5 SoC Toradex Verdin Modules and Carrier Boards
items:
- enum:

View File

@@ -0,0 +1,26 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/zte.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ZTE zx platforms
maintainers:
- Stefan Dösinger <stefandoesinger@gmail.com>
description: |
ARM platforms using SoCs designed by ZTE. Currently this supports devices
based on the zx297520v3 SoC which is found in LTE routers.
properties:
$nodename:
const: "/"
compatible:
oneOf:
- items:
- enum:
- dlink,dwr932m
- const: zte,zx297520v3
additionalProperties: true

View File

@@ -26,8 +26,10 @@ select:
compatible:
contains:
enum:
- fsl,aipi-bus
- fsl,aips
- fsl,emi
- fsl,emi-bus
- fsl,spba-bus
required:
- compatible
@@ -39,8 +41,10 @@ properties:
compatible:
items:
- enum:
- fsl,aipi-bus
- fsl,aips
- fsl,emi
- fsl,emi-bus
- fsl,spba-bus
- const: simple-bus

View File

@@ -11,14 +11,19 @@ maintainers:
description: |
The CS2000-CP is an extremely versatile system clocking device that
utilizes a programmable phase lock loop.
utilizes a programmable phase lock loop. CS2500 is a compatible
drop-in replacement for CS2000-CP.
Link: https://www.cirrus.com/products/cs2000/
Link: https://www.cirrus.com/products/cs2500/
properties:
compatible:
enum:
- cirrus,cs2000-cp
oneOf:
- items:
- const: cirrus,cs2500
- const: cirrus,cs2000-cp
- const: cirrus,cs2000-cp
clocks:
description:

View File

@@ -0,0 +1,68 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/qcom,ipq9650-gcc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Global Clock & Reset Controller on IPQ9650
maintainers:
- Bjorn Andersson <andersson@kernel.org>
- Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
description: |
Qualcomm global clock control module provides the clocks, resets and power
domains on IPQ9650
See also:
include/dt-bindings/clock/qcom,ipq9650-gcc.h
include/dt-bindings/reset/qcom,ipq9650-gcc.h
properties:
compatible:
const: qcom,ipq9650-gcc
clocks:
items:
- description: Board XO source
- description: Sleep clock source
- description: PCIE30 PHY0 pipe clock source
- description: PCIE30 PHY1 pipe clock source
- description: PCIE30 PHY2 pipe clock source
- description: PCIE30 PHY3 pipe clock source
- description: PCIE30 PHY4 pipe clock source
- description: USB PCIE wrapper pipe clock source
- description: NSS common clock source
'#power-domain-cells': false
'#interconnect-cells':
const: 1
required:
- compatible
- clocks
allOf:
- $ref: qcom,gcc.yaml#
unevaluatedProperties: false
examples:
- |
clock-controller@1800000 {
compatible = "qcom,ipq9650-gcc";
reg = <0x01800000 0x40000>;
clocks = <&xo_board_clk>,
<&sleep_clk>,
<&pcie30_phy0_pipe_clk>,
<&pcie30_phy1_pipe_clk>,
<&pcie30_phy2_pipe_clk>,
<&pcie30_phy3_pipe_clk>,
<&pcie30_phy4_pipe_clk>,
<&usb3phy_0_cc_pipe_clk>,
<&nss_cmn_clk>;
#clock-cells = <1>;
#reset-cells = <1>;
};
...

View File

@@ -41,7 +41,7 @@ properties:
clock-output-names:
minItems: 3
maxItems: 17
maxItems: 19
renesas,mode:
description: Board-specific settings of the MD_CK* bits on R-Mobile A1
@@ -90,6 +90,8 @@ allOf:
- const: zx
- const: zs
- const: hp
- const: ztr
- const: zt
- if:
properties:
@@ -123,6 +125,8 @@ allOf:
- const: zb
- const: m3
- const: cp
- const: ztr
- const: zt
required:
- renesas,mode
@@ -240,6 +244,6 @@ examples:
#clock-cells = <1>;
clock-output-names = "system", "pllc0", "pllc1", "pllc2", "r",
"usb24s", "i", "zg", "b", "m1", "hp", "hpp",
"usbp", "s", "zb", "m3", "cp";
"usbp", "s", "zb", "m3", "cp", "ztr", "zt";
renesas,mode = <0x05>;
};

View File

@@ -39,6 +39,7 @@ properties:
- ti,ds90c185 # For the TI DS90C185 FPD-Link Serializer
- ti,ds90c187 # For the TI DS90C187 FPD-Link Serializer
- ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter
- ti,sn75lvds93 # For the TI SN75LVDS93 FlatLink transmitter
- const: lvds-encoder # Generic LVDS encoder compatible fallback
- items:
- enum:

View File

@@ -73,6 +73,7 @@ properties:
- allwinner,sun20i-d1-plic
- sophgo,cv1800b-plic
- sophgo,cv1812h-plic
- sophgo,sg2000-plic
- sophgo,sg2002-plic
- sophgo,sg2042-plic
- sophgo,sg2044-plic

View File

@@ -32,22 +32,35 @@ properties:
# should be specified along with 'reg' property providing MMIO location.
compatible:
oneOf:
- items:
- description: Platform (non-PCIe) IOMMU implementations
items:
- enum:
- qemu,riscv-iommu
- tenstorrent,riscv-iommu
- const: riscv,iommu
- items:
- description: PCIe IOMMU implementations
items:
- enum:
- pci1efd,edf1
- const: riscv,pci-iommu
reg:
maxItems: 1
description:
For non-PCI devices this represents base address and size of for the
IOMMU memory mapped registers interface.
For PCI IOMMU hardware implementation this should represent an address
of the IOMMU, as defined in the PCI Bus Binding reference.
minItems: 1
items:
- description:
For non-PCI devices, base address and size of the IOMMU memory
mapped registers interface. For PCI IOMMU hardware
implementation, an address of the IOMMU, as defined in the PCI
Bus Binding reference.
- description:
Region containing platform specific MMRs for machine-mode
configuration, such as PMA and PMP registers.
reg-names:
minItems: 1
items:
- const: base
- const: machine
'#iommu-cells':
const: 1
@@ -75,6 +88,26 @@ required:
additionalProperties: false
allOf:
- if:
properties:
compatible:
contains:
enum:
- tenstorrent,riscv-iommu
then:
properties:
reg:
minItems: 2
reg-names:
minItems: 2
else:
properties:
reg:
maxItems: 1
reg-names:
maxItems: 1
examples:
- |+
/* Example 1 (IOMMU device with wired interrupts) */
@@ -145,3 +178,13 @@ examples:
};
};
};
- |+
/* Example 5 (Tenstorrent IOMMU device with MSIs) */
iommu5: iommu@d2020000 {
compatible = "tenstorrent,riscv-iommu", "riscv,iommu";
reg = <0xd2020000 0x10000>, <0xaa000000 0x10000>;
reg-names = "base", "machine";
msi-parent = <&imsics_smode>;
#iommu-cells = <1>;
};

View File

@@ -40,6 +40,12 @@ properties:
resets:
maxItems: 1
interconnects:
maxItems: 1
interconnect-names:
const: dma-mem
port:
$ref: /schemas/graph.yaml#/$defs/port-base
description: Parallel input port, connect to a parallel sensor

View File

@@ -36,6 +36,12 @@ properties:
resets:
maxItems: 1
interconnects:
maxItems: 1
interconnect-names:
const: dma-mem
ports:
$ref: /schemas/graph.yaml#/properties/ports

View File

@@ -16,7 +16,9 @@ description: |
properties:
compatible:
const: nvidia,tegra124-emc
enum:
- nvidia,tegra114-emc
- nvidia,tegra124-emc
reg:
maxItems: 1
@@ -29,6 +31,9 @@ properties:
items:
- const: emc
interrupts:
maxItems: 1
"#interconnect-cells":
const: 0
@@ -164,153 +169,12 @@ patternProperties:
nvidia,emc-configuration:
description:
EMC timing characterization data. These are the registers (see
section "15.6.2 EMC Registers" in the TRM) whose values need to
section "20.11.2 EMC Registers" in the Tegra114 TRM or section
"15.6.2 EMC Registers" in the Tegra124 TRM) whose values need to
be specified, according to the board documentation.
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
- description: EMC_RC
- description: EMC_RFC
- description: EMC_RFC_SLR
- description: EMC_RAS
- description: EMC_RP
- description: EMC_R2W
- description: EMC_W2R
- description: EMC_R2P
- description: EMC_W2P
- description: EMC_RD_RCD
- description: EMC_WR_RCD
- description: EMC_RRD
- description: EMC_REXT
- description: EMC_WEXT
- description: EMC_WDV
- description: EMC_WDV_MASK
- description: EMC_QUSE
- description: EMC_QUSE_WIDTH
- description: EMC_IBDLY
- description: EMC_EINPUT
- description: EMC_EINPUT_DURATION
- description: EMC_PUTERM_EXTRA
- description: EMC_PUTERM_WIDTH
- description: EMC_PUTERM_ADJ
- description: EMC_CDB_CNTL_1
- description: EMC_CDB_CNTL_2
- description: EMC_CDB_CNTL_3
- description: EMC_QRST
- description: EMC_QSAFE
- description: EMC_RDV
- description: EMC_RDV_MASK
- description: EMC_REFRESH
- description: EMC_BURST_REFRESH_NUM
- description: EMC_PRE_REFRESH_REQ_CNT
- description: EMC_PDEX2WR
- description: EMC_PDEX2RD
- description: EMC_PCHG2PDEN
- description: EMC_ACT2PDEN
- description: EMC_AR2PDEN
- description: EMC_RW2PDEN
- description: EMC_TXSR
- description: EMC_TXSRDLL
- description: EMC_TCKE
- description: EMC_TCKESR
- description: EMC_TPD
- description: EMC_TFAW
- description: EMC_TRPAB
- description: EMC_TCLKSTABLE
- description: EMC_TCLKSTOP
- description: EMC_TREFBW
- description: EMC_FBIO_CFG6
- description: EMC_ODT_WRITE
- description: EMC_ODT_READ
- description: EMC_FBIO_CFG5
- description: EMC_CFG_DIG_DLL
- description: EMC_CFG_DIG_DLL_PERIOD
- description: EMC_DLL_XFORM_DQS0
- description: EMC_DLL_XFORM_DQS1
- description: EMC_DLL_XFORM_DQS2
- description: EMC_DLL_XFORM_DQS3
- description: EMC_DLL_XFORM_DQS4
- description: EMC_DLL_XFORM_DQS5
- description: EMC_DLL_XFORM_DQS6
- description: EMC_DLL_XFORM_DQS7
- description: EMC_DLL_XFORM_DQS8
- description: EMC_DLL_XFORM_DQS9
- description: EMC_DLL_XFORM_DQS10
- description: EMC_DLL_XFORM_DQS11
- description: EMC_DLL_XFORM_DQS12
- description: EMC_DLL_XFORM_DQS13
- description: EMC_DLL_XFORM_DQS14
- description: EMC_DLL_XFORM_DQS15
- description: EMC_DLL_XFORM_QUSE0
- description: EMC_DLL_XFORM_QUSE1
- description: EMC_DLL_XFORM_QUSE2
- description: EMC_DLL_XFORM_QUSE3
- description: EMC_DLL_XFORM_QUSE4
- description: EMC_DLL_XFORM_QUSE5
- description: EMC_DLL_XFORM_QUSE6
- description: EMC_DLL_XFORM_QUSE7
- description: EMC_DLL_XFORM_ADDR0
- description: EMC_DLL_XFORM_ADDR1
- description: EMC_DLL_XFORM_ADDR2
- description: EMC_DLL_XFORM_ADDR3
- description: EMC_DLL_XFORM_ADDR4
- description: EMC_DLL_XFORM_ADDR5
- description: EMC_DLL_XFORM_QUSE8
- description: EMC_DLL_XFORM_QUSE9
- description: EMC_DLL_XFORM_QUSE10
- description: EMC_DLL_XFORM_QUSE11
- description: EMC_DLL_XFORM_QUSE12
- description: EMC_DLL_XFORM_QUSE13
- description: EMC_DLL_XFORM_QUSE14
- description: EMC_DLL_XFORM_QUSE15
- description: EMC_DLI_TRIM_TXDQS0
- description: EMC_DLI_TRIM_TXDQS1
- description: EMC_DLI_TRIM_TXDQS2
- description: EMC_DLI_TRIM_TXDQS3
- description: EMC_DLI_TRIM_TXDQS4
- description: EMC_DLI_TRIM_TXDQS5
- description: EMC_DLI_TRIM_TXDQS6
- description: EMC_DLI_TRIM_TXDQS7
- description: EMC_DLI_TRIM_TXDQS8
- description: EMC_DLI_TRIM_TXDQS9
- description: EMC_DLI_TRIM_TXDQS10
- description: EMC_DLI_TRIM_TXDQS11
- description: EMC_DLI_TRIM_TXDQS12
- description: EMC_DLI_TRIM_TXDQS13
- description: EMC_DLI_TRIM_TXDQS14
- description: EMC_DLI_TRIM_TXDQS15
- description: EMC_DLL_XFORM_DQ0
- description: EMC_DLL_XFORM_DQ1
- description: EMC_DLL_XFORM_DQ2
- description: EMC_DLL_XFORM_DQ3
- description: EMC_DLL_XFORM_DQ4
- description: EMC_DLL_XFORM_DQ5
- description: EMC_DLL_XFORM_DQ6
- description: EMC_DLL_XFORM_DQ7
- description: EMC_XM2CMDPADCTRL
- description: EMC_XM2CMDPADCTRL4
- description: EMC_XM2CMDPADCTRL5
- description: EMC_XM2DQPADCTRL2
- description: EMC_XM2DQPADCTRL3
- description: EMC_XM2CLKPADCTRL
- description: EMC_XM2CLKPADCTRL2
- description: EMC_XM2COMPPADCTRL
- description: EMC_XM2VTTGENPADCTRL
- description: EMC_XM2VTTGENPADCTRL2
- description: EMC_XM2VTTGENPADCTRL3
- description: EMC_XM2DQSPADCTRL3
- description: EMC_XM2DQSPADCTRL4
- description: EMC_XM2DQSPADCTRL5
- description: EMC_XM2DQSPADCTRL6
- description: EMC_DSR_VTTGEN_DRV
- description: EMC_TXDSRVTTGEN
- description: EMC_FBIO_SPARE
- description: EMC_ZCAL_WAIT_CNT
- description: EMC_MRS_WAIT_CNT2
- description: EMC_CTT
- description: EMC_CTT_DURATION
- description: EMC_CFG_PIPE
- description: EMC_DYN_SELF_REF_CONTROL
- description: EMC_QPOP
minItems: 97
maxItems: 143
required:
- clock-frequency
@@ -318,9 +182,7 @@ patternProperties:
- nvidia,emc-auto-cal-config2
- nvidia,emc-auto-cal-config3
- nvidia,emc-auto-cal-interval
- nvidia,emc-bgbias-ctl0
- nvidia,emc-cfg
- nvidia,emc-cfg-2
- nvidia,emc-ctt-term-ctrl
- nvidia,emc-mode-1
- nvidia,emc-mode-2
@@ -344,6 +206,22 @@ required:
- "#interconnect-cells"
- operating-points-v2
allOf:
- if:
properties:
compatible:
contains:
enum:
- nvidia,tegra124-emc
then:
patternProperties:
"^emc-timings-[0-9]+$":
patternProperties:
"^timing-[0-9]+$":
required:
- nvidia,emc-bgbias-ctl0
- nvidia,emc-cfg-2
additionalProperties: false
examples:

View File

@@ -19,7 +19,9 @@ description: |
properties:
compatible:
const: nvidia,tegra124-mc
enum:
- nvidia,tegra114-mc
- nvidia,tegra124-mc
reg:
maxItems: 1
@@ -64,29 +66,12 @@ patternProperties:
nvidia,emem-configuration:
$ref: /schemas/types.yaml#/definitions/uint32-array
description: |
description:
Values to be written to the EMEM register block. See section
"15.6.1 MC Registers" in the TRM.
items:
- description: MC_EMEM_ARB_CFG
- description: MC_EMEM_ARB_OUTSTANDING_REQ
- description: MC_EMEM_ARB_TIMING_RCD
- description: MC_EMEM_ARB_TIMING_RP
- description: MC_EMEM_ARB_TIMING_RC
- description: MC_EMEM_ARB_TIMING_RAS
- description: MC_EMEM_ARB_TIMING_FAW
- description: MC_EMEM_ARB_TIMING_RRD
- description: MC_EMEM_ARB_TIMING_RAP2PRE
- description: MC_EMEM_ARB_TIMING_WAP2PRE
- description: MC_EMEM_ARB_TIMING_R2R
- description: MC_EMEM_ARB_TIMING_W2W
- description: MC_EMEM_ARB_TIMING_R2W
- description: MC_EMEM_ARB_TIMING_W2R
- description: MC_EMEM_ARB_DA_TURNS
- description: MC_EMEM_ARB_DA_COVERS
- description: MC_EMEM_ARB_MISC0
- description: MC_EMEM_ARB_MISC1
- description: MC_EMEM_ARB_RING1_THROTTLE
"20.11.1 MC Registers" in the Tegea114 TRM or
"15.6.1 MC Registers" in the Tegra124 TRM.
minItems: 18
maxItems: 19
required:
- clock-frequency

View File

@@ -50,9 +50,6 @@ properties:
description: VDD_RFA_1P7 supply regulator handle
deprecated: true
vddrfa1p8-supply:
description: VDD_RFA_1P8 supply regulator handle
vddrfacmn-supply:
description: VDD_RFA_CMN supply regulator handle
@@ -68,7 +65,7 @@ required:
- vddbtcmx-supply
- vddrfa0p8-supply
- vddrfa1p2-supply
- vddrfa1p8-supply
- vddrfa1p7-supply
- vddrfacmn-supply
- vddwlcx-supply
- vddwlmx-supply
@@ -91,7 +88,7 @@ examples:
vddbtcmx-supply = <&vreg_pmu_btcmx_0p8>;
vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;

View File

@@ -26,6 +26,7 @@ properties:
- renesas,r9a07g043-pinctrl # RZ/G2UL{Type-1,Type-2} and RZ/Five
- renesas,r9a07g044-pinctrl # RZ/G2{L,LC}
- renesas,r9a08g045-pinctrl # RZ/G3S
- renesas,r9a08g046-pinctrl # RZ/G3L
- renesas,r9a09g047-pinctrl # RZ/G3E
- renesas,r9a09g056-pinctrl # RZ/V2N
- renesas,r9a09g057-pinctrl # RZ/V2H(P)
@@ -78,6 +79,26 @@ properties:
- description: PFC main reset
- description: Reset for the control register related to WDTUDFCA and WDTUDFFCM pins
reset-names:
oneOf:
- items:
- const: rstn
- const: port
- const: spare
- items:
- const: main
- const: error
renesas,clonech:
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: phandle to system controller
- description: offset of clone channel control register
description:
Phandle and offset to the system controller containing the clone channel
control values.
additionalProperties:
anyOf:
- type: object
@@ -140,6 +161,15 @@ additionalProperties:
allOf:
- $ref: pinctrl.yaml#
- if:
properties:
compatible:
contains:
const: renesas,r9a08g046-pinctrl
then:
required:
- renesas,clonech
- if:
properties:
compatible:
@@ -152,10 +182,14 @@ allOf:
properties:
resets:
maxItems: 2
reset-names:
maxItems: 2
else:
properties:
resets:
minItems: 3
reset-names:
minItems: 3
required:
- compatible
@@ -187,6 +221,7 @@ examples:
resets = <&cpg R9A07G044_GPIO_RSTN>,
<&cpg R9A07G044_GPIO_PORT_RESETN>,
<&cpg R9A07G044_GPIO_SPARE_RESETN>;
reset-names = "rstn", "port", "spare";
power-domains = <&cpg>;
scif0_pins: serial0 {

View File

@@ -43,7 +43,9 @@ properties:
- apple,t6000-pmgr-pwrstate
- const: apple,pmgr-pwrstate
- items:
- const: apple,t6020-pmgr-pwrstate
- enum:
- apple,t6020-pmgr-pwrstate
- apple,t8122-pmgr-pwrstate
- const: apple,t8103-pmgr-pwrstate
reg:

View File

@@ -18,6 +18,7 @@ properties:
- enum:
- apple,t8103-fpwm
- apple,t8112-fpwm
- apple,t8122-fpwm
- apple,t6000-fpwm
- apple,t6020-fpwm
- const: apple,s5l-fpwm

View File

@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Tegra CPU-NS - BPMP IPC reserved memory
maintainers:
- Peter De Schrijver <pdeschrijver@nvidia.com>
- Thierry Reding <thierry.reding@kernel.org>
- Jonathan Hunter <jonathanh@nvidia.com>
description: |
Define a memory region used for communication between CPU-NS and BPMP.

View File

@@ -29,8 +29,14 @@ properties:
- const: spacemit,k1
- items:
- enum:
- deepcomputing,fml13v05
- spacemit,k3-pico-itx
- const: spacemit,k3
- items:
- enum:
- spacemit,k3-com260-ifx
- const: spacemit,k3-com260
- const: spacemit,k3
additionalProperties: true

View File

@@ -0,0 +1,187 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/renesas/renesas,r8a78000-mfis.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas MFIS (Multifunctional Interface) controller
maintainers:
- Wolfram Sang <wsa+renesas@sang-engineering.com>
description:
The Renesas Multifunctional Interface (MFIS) provides various functionality
like mailboxes, hardware spinlocks, product identification, error injection,
error detection and such. Parts of it can be used for communication between
different CPU cores. Those cores can be in various domains like AP, RT, or
SCP. Often multiple domain-specific MFIS instances exist in one SoC.
properties:
compatible:
enum:
- renesas,r8a78000-mfis # R-Car X5H (AP<->AP, with PRR)
- renesas,r8a78000-mfis-scp # R-Car X5H (AP<->SCP, without PRR)
reg:
maxItems: 2
reg-names:
items:
- const: common
- const: mboxes
interrupts:
minItems: 32
maxItems: 128
description:
The interrupts raised by the remote doorbells.
interrupt-names:
minItems: 32
maxItems: 128
description:
An interrupt name is constructed with the prefix 'ch'. Then, the
channel number as specified in the documentation of the SoC. Finally,
the letter 'i' if the interrupt is raised by the IICR register. Or 'e'
if it is raised by the EICR register.
"#hwlock-cells":
const: 1
"#mbox-cells":
const: 2
description:
The first cell is the channel number as specified in the documentation
of the SoC. The second cell may specify flags as described in the file
<dt-bindings/soc/renesas,r8a78000-mfis.h>.
allOf:
- if:
properties:
compatible:
contains:
const: renesas,r8a78000-mfis
then:
properties:
interrupts:
minItems: 128
interrupt-names:
minItems: 128
items:
pattern: "^ch[0-9]+[ie]$"
- if:
properties:
compatible:
contains:
const: renesas,r8a78000-mfis-scp
then:
properties:
interrupts:
maxItems: 32
interrupt-names:
maxItems: 32
items:
pattern: "^ch[0-9]+i$"
required:
- compatible
- reg
- reg-names
- interrupts
- interrupt-names
- "#hwlock-cells"
- "#mbox-cells"
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
system-controller@189e0000 {
compatible = "renesas,r8a78000-mfis";
reg = <0x189e0000 0x1000>, <0x18800000 0x40000>;
reg-names = "common", "mboxes";
interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "ch0i", "ch0e", "ch1i", "ch1e", "ch2i", "ch2e", "ch3i", "ch3e",
"ch4i", "ch4e", "ch5i", "ch5e", "ch6i", "ch6e", "ch7i", "ch7e",
"ch8i", "ch8e", "ch9i", "ch9e", "ch10i", "ch10e", "ch11i", "ch11e",
"ch12i", "ch12e", "ch13i", "ch13e", "ch14i", "ch14e", "ch15i", "ch15e",
"ch16i", "ch16e", "ch17i", "ch17e", "ch18i", "ch18e", "ch19i", "ch19e",
"ch20i", "ch20e", "ch21i", "ch21e", "ch22i", "ch22e", "ch23i", "ch23e",
"ch24i", "ch24e", "ch25i", "ch25e", "ch26i", "ch26e", "ch27i", "ch27e",
"ch28i", "ch28e", "ch29i", "ch29e", "ch30i", "ch30e", "ch31i", "ch31e",
"ch32i", "ch32e", "ch33i", "ch33e", "ch34i", "ch34e", "ch35i", "ch35e",
"ch36i", "ch36e", "ch37i", "ch37e", "ch38i", "ch38e", "ch39i", "ch39e",
"ch40i", "ch40e", "ch41i", "ch41e", "ch42i", "ch42e", "ch43i", "ch43e",
"ch44i", "ch44e", "ch45i", "ch45e", "ch46i", "ch46e", "ch47i", "ch47e",
"ch48i", "ch48e", "ch49i", "ch49e", "ch50i", "ch50e", "ch51i", "ch51e",
"ch52i", "ch52e", "ch53i", "ch53e", "ch54i", "ch54e", "ch55i", "ch55e",
"ch56i", "ch56e", "ch57i", "ch57e", "ch58i", "ch58e", "ch59i", "ch59e",
"ch60i", "ch60e", "ch61i", "ch61e", "ch62i", "ch62e", "ch63i", "ch63e";
#hwlock-cells = <1>;
#mbox-cells = <2>;
};

View File

@@ -473,6 +473,12 @@ properties:
- const: renesas,r8a779mb
- const: renesas,r8a7795
- description: R-Car M3Le (R8A779MD)
items:
- const: renesas,geist # M3Le Geist (RTP8A779MDASKB0F10S)
- const: renesas,r8a779md
- const: renesas,r8a77965
- description: R-Car X5H (R8A78000)
items:
- enum:

View File

@@ -31,6 +31,10 @@ properties:
- milkv,duo-module-01-evb
- const: milkv,duo-module-01
- const: sophgo,sg2000
- items:
- enum:
- milkv,duo-s
- const: sophgo,sg2000
- items:
- enum:
- sipeed,licheerv-nano-b

View File

@@ -52,6 +52,7 @@ properties:
- allwinner,sun20i-d1-clint
- sophgo,cv1800b-clint
- sophgo,cv1812h-clint
- sophgo,sg2000-clint
- sophgo,sg2002-clint
- thead,th1520-clint
- const: thead,c900-clint

View File

@@ -1787,6 +1787,8 @@ patternProperties:
description: Variscite Ltd.
"^vdl,.*":
description: Van der Laan b.v.
"^verbatim,.*":
description: Verbatim Corporation
"^verisilicon,.*":
description: VeriSilicon Microelectronics (Shanghai) Co., Ltd.
"^vertexcom,.*":

View File

@@ -2639,6 +2639,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux.git
F: Documentation/devicetree/bindings/arm/aspeed/
F: arch/arm/boot/dts/aspeed/
F: arch/arm/mach-aspeed/
F: arch/arm64/boot/dts/aspeed/
N: aspeed
ARM/AXIADO ARCHITECTURE
@@ -3456,9 +3457,12 @@ F: drivers/i2c/busses/i2c-rk3x.c
F: drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
F: sound/soc/rockchip/
N: rockchip
K: \b[Rr]ock[Cc]hip\b
K: (?:\b|_)ROCKCHIP(?:\b|_)
ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES
M: Krzysztof Kozlowski <krzk@kernel.org>
M: Peter Griffin <peter.griffin@linaro.org>
R: Alim Akhtar <alim.akhtar@samsung.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: linux-samsung-soc@vger.kernel.org
@@ -23951,6 +23955,7 @@ SAMSUNG SOC CLOCK DRIVERS
M: Krzysztof Kozlowski <krzk@kernel.org>
M: Sylwester Nawrocki <s.nawrocki@samsung.com>
M: Chanwoo Choi <cw00.choi@samsung.com>
M: Peter Griffin <peter.griffin@linaro.org>
R: Alim Akhtar <alim.akhtar@samsung.com>
L: linux-samsung-soc@vger.kernel.org
S: Maintained
@@ -25088,7 +25093,7 @@ F: drivers/char/sonypi.c
F: drivers/platform/x86/sony-laptop.c
SOPHGO DEVICETREES and DRIVERS
M: Chen Wang <unicorn_wang@outlook.com>
M: Chen Wang <chen.wang@linux.dev>
M: Inochi Amaoto <inochiama@gmail.com>
L: sophgo@lists.linux.dev
W: https://github.com/sophgo/linux/wiki

View File

@@ -39,3 +39,4 @@ subdir-y += unisoc
subdir-y += vt8500
subdir-y += xen
subdir-y += xilinx
subdir-y += zte

View File

@@ -1062,6 +1062,49 @@ csi: camera@1cb0000 {
clock-names = "bus", "mod", "ram";
resets = <&ccu RST_BUS_CSI>;
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@1 {
reg = <1>;
csi_in_mipi_csi2: endpoint {
remote-endpoint = <&mipi_csi2_out_csi>;
};
};
};
};
mipi_csi2: csi@1cb1000 {
compatible = "allwinner,sun8i-a83t-mipi-csi2";
reg = <0x01cb1000 0x1000>;
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CSI>,
<&ccu CLK_CSI_SCLK>,
<&ccu CLK_MIPI_CSI>,
<&ccu CLK_CSI_MISC>;
clock-names = "bus", "mod", "mipi", "misc";
resets = <&ccu RST_BUS_CSI>;
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_in: port@0 {
reg = <0>;
};
mipi_csi2_out: port@1 {
reg = <1>;
mipi_csi2_out_csi: endpoint {
remote-endpoint = <&csi_in_mipi_csi2>;
};
};
};
};
hdmi: hdmi@1ee0000 {

View File

@@ -90,3 +90,7 @@ cpu-crit {
};
};
};
&wdt {
status = "okay";
};

View File

@@ -34,6 +34,8 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-facebook-harma.dtb \
aspeed-bmc-facebook-minerva.dtb \
aspeed-bmc-facebook-minipack.dtb \
aspeed-bmc-facebook-rainiera6.dtb \
aspeed-bmc-facebook-sanmiguel.dtb \
aspeed-bmc-facebook-santabarbara.dtb \
aspeed-bmc-facebook-tiogapass.dtb \
aspeed-bmc-facebook-wedge40.dtb \

View File

@@ -107,6 +107,24 @@ &gpio1 {
/*18E0 32*/ "","","","","","","","";
};
&mac2 {
status = "okay";
phy-mode = "rgmii-id";
phy-handle = <&ethphy2>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rgmii3_default>;
};
&mdio2 {
status = "okay";
ethphy2: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0>;
};
};
&vhub {
status = "okay";
};

View File

@@ -481,6 +481,9 @@ gpio@22 {
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"RPDB_FAN_FULL_SPEED_R_N", "RPDB_I2C_TEMP75_U8_ALERT_R_N",
"RPDB_I2C_TMP432_U29_ALERT_R_N", "RPDB_GLOBAL_WP",
@@ -500,6 +503,9 @@ gpio@24 {
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"RPDB_EAM2_PRSNT_MOS_N_R", "RPDB_EAM3_PRSNT_MOS_N_R",
"RPDB_PWRGD_P50V_HSC4_SYS_R",
@@ -529,6 +535,9 @@ gpio@22 {
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"LPDB_FAN_FULL_SPEED_R_N","LPDB_I2C_TEMP75_U8_ALERT_R_N",
"LPDB_I2C_TMP432_U29_ALERT_R_N","LPDB_GLOBAL_WP",
@@ -546,6 +555,9 @@ gpio@24 {
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"LPDB_P50V_FAN1_R2_PG","LPDB_P50V_FAN2_R2_PG",
"LPDB_P50V_FAN3_R2_PG","LPDB_P50V_FAN4_R2_PG",
@@ -882,7 +894,7 @@ &sgpiom0 {
/* C0-C7 line 32-47 */
"RSVD_RMC_GPIO3", "", "", "",
"", "", "", "",
"LEAK_DETECT_RMC_N", "", "", "",
"LEAK_DETECT_RMC_N", "JTAG_CPLD_TRST_R_N", "", "",
"", "", "", "",
/* D0-D7 line 48-63 */
@@ -908,11 +920,11 @@ &sgpiom0 {
"", "", "", "",
/* G0-G7 line 96-111 */
"PWRGD_PVDDCR_SOC_P0", "",
"PWRGD_PVDDIO_P0", "",
"PWRGD_PVDDIO_MEM_S3_P0", "",
"PWRGD_CHMP_CPU0_FPGA", "",
"PWRGD_CHIL_CPU0_FPGA", "",
"L_PRSNT_EDSFF0_N", "",
"L_PRSNT_EDSFF1_N", "",
"R_PRSNT_EDSFF2_N", "",
"R_PRSNT_EDSFF3_N", "",
"HPM_EDSFF_PG", "",
"PWRGD_CHEH_CPU0_FPGA", "",
"PWRGD_CHAD_CPU0_FPGA", "FM_BMC_READY_PLD",
"", "",
@@ -934,7 +946,7 @@ &sgpiom0 {
"EAM3_BRD_PRSNT_R_L", "",
"EAM0_CPU_MOD_PWR_GD_R", "",
"EAM1_CPU_MOD_PWR_GD_R", "",
"EAM2_CPU_MOD_PWR_GD_R", "",
"PRSNT_EDSFF_BOOT_N", "",
"EAM3_CPU_MOD_PWR_GD_R", "",
/* J0-J7 line 144-159 */
@@ -957,8 +969,8 @@ &sgpiom0 {
"PDB_ALERT_R_N", "",
/* L0-L7 line 176-191 */
"CPU0_SP7R1", "", "CPU0_SP7R2", "",
"CPU0_SP7R3", "", "CPU0_SP7R4", "",
"L_EDSFF0_PG", "", "L_EDSFF1_PG", "",
"R_EDSFF2_PG", "", "R_EDSFF3_PG", "",
"CPU0_CORETYPE0", "", "CPU0_CORETYPE1", "",
"CPU0_CORETYPE2", "", "FM_BIOS_POST_CMPLT_R_N", "",
@@ -984,8 +996,8 @@ &sgpiom0 {
"HPM_PWR_FAIL", "Port80_b0",
"FM_DIMM_IP_FAIL", "Port80_b1",
"FM_DIMM_AH_FAIL", "Port80_b2",
"HPM_AMC_THERMTRIP_R_L", "Port80_b3",
"FM_CPU0_THERMTRIP_N", "Port80_b4",
"AMC_THERMTRIP_ASSERT", "Port80_b3",
"CPU_THERMTRIP_ASSERT", "Port80_b4",
"PVDDCR_SOC_P0_OCP_L", "Port80_b5",
"CPLD_SGPIO_RDY", "Port80_b6",
"", "Port80_b7",

View File

@@ -443,11 +443,6 @@ i2c0mux2ch0: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
// IOB0 NIC0 TEMP
temperature-sensor@1f {
compatible = "ti,tmp421";
reg = <0x1f>;
};
};
i2c0mux2ch1: i2c@1 {
@@ -466,11 +461,6 @@ i2c0mux2ch3: i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
// IOB0 NIC1 TEMP
temperature-sensor@1f {
compatible = "ti,tmp421";
reg = <0x1f>;
};
};
};
@@ -637,11 +627,6 @@ i2c0mux5ch0: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
// IOB1 NIC0 TEMP
temperature-sensor@1f {
compatible = "ti,tmp421";
reg = <0x1f>;
};
};
i2c0mux5ch1: i2c@1 {
@@ -666,11 +651,6 @@ i2c0mux5ch3: i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
// IOB1 NIC1 TEMP
temperature-sensor@1f {
compatible = "ti,tmp421";
reg = <0x1f>;
};
};
};
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,672 @@
// SPDX-License-Identifier: GPL-2.0+
// Copyright (c) 2025 Facebook Inc.
/dts-v1/;
#include "aspeed-g6.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h>
#include <dt-bindings/i2c/i2c.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/leds/leds-pca955x.h>
#include <dt-bindings/usb/pd.h>
/ {
model = "Facebook SanMiguel BMC";
compatible = "facebook,sanmiguel-bmc", "aspeed,ast2600";
aliases {
serial0 = &uart1;
serial1 = &uart2;
serial2 = &uart3;
serial3 = &uart4;
serial4 = &uart5;
i2c16 = &imux16;
i2c17 = &imux17;
i2c18 = &imux18;
i2c19 = &imux19;
};
chosen {
stdout-path = "serial4:57600n8";
};
iio-hwmon {
compatible = "iio-hwmon";
io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
<&adc0 4>, <&adc0 5>, <&adc0 6>;
};
leds-fio {
compatible = "gpio-leds";
led-0 {
label = "power_blue";
gpios = <&fio_ioexp 4 GPIO_ACTIVE_HIGH>;
};
led-1 {
label = "power_amber";
gpios = <&fio_ioexp 5 GPIO_ACTIVE_LOW>;
};
led-2 {
label = "id_blue";
gpios = <&fio_ioexp 6 GPIO_ACTIVE_HIGH>;
};
led-3 {
label = "id_amber";
gpios = <&fio_ioexp 7 GPIO_ACTIVE_LOW>;
};
};
leds-smm {
compatible = "gpio-leds";
led-0 {
label = "bmc_heartbeat_amber";
gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat";
};
};
memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x80000000>;
};
spi2_gpio: spi {
compatible = "spi-gpio";
#address-cells = <1>;
#size-cells = <0>;
sck-gpios = <&gpio0 ASPEED_GPIO(X, 3) GPIO_ACTIVE_HIGH>;
mosi-gpios = <&gpio0 ASPEED_GPIO(X, 4) GPIO_ACTIVE_HIGH>;
miso-gpios = <&gpio0 ASPEED_GPIO(X, 5) GPIO_ACTIVE_HIGH>;
cs-gpios = <&gpio0 ASPEED_GPIO(X, 2) GPIO_ACTIVE_LOW>;
num-chipselects = <1>;
tpm@0 {
compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
spi-max-frequency = <33000000>;
reg = <0>;
};
};
standby_power_regulator: standby-power-regulator {
compatible = "regulator-fixed";
gpio = <&gpio0 ASPEED_GPIO(M, 3) GPIO_ACTIVE_HIGH>;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "standby_power";
enable-active-high;
regulator-always-on;
regulator-boot-on;
status = "okay";
};
};
&adc0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
&pinctrl_adc2_default &pinctrl_adc3_default
&pinctrl_adc4_default &pinctrl_adc5_default
&pinctrl_adc6_default>;
aspeed,int-vref-microvolt = <2500000>;
status = "okay";
};
&fmc {
status = "okay";
flash@0 {
label = "bmc";
spi-max-frequency = <50000000>;
m25p,fast-read;
status = "okay";
#include "openbmc-flash-layout-128.dtsi"
};
flash@1 {
label = "alt-bmc";
spi-max-frequency = <50000000>;
m25p,fast-read;
status = "okay";
#include "openbmc-flash-layout-128-alt.dtsi"
};
};
&gpio0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpiom4_unbiased_default
&pinctrl_gpiom5_unbiased_default
&pinctrl_gpiov4_unbiased_default
&pinctrl_gpiov7_unbiased_default>;
gpio-line-names =
/*A0-A7*/ "", "", "", "", "", "", "", "",
/*B0-B7*/ "", "", "", "", "", "", "", "",
/*C0-C7*/ "", "", "", "", "", "", "", "",
/*D0-D7*/ "", "", "", "", "", "FPGA_PEX_RST_L", "", "",
/*E0-E7*/ "RTL8221_PHY_RST_L-O", "RTL8211_PHY_INT_L-I", "", "",
"", "", "", "MUX_SGPIO_SEL-O",
/*F0-F7*/ "", "", "", "", "", "", "", "",
/*G0-G7*/ "", "", "", "", "", "", "", "",
/*H0-H7*/ "", "", "", "", "", "", "", "",
/*I0-I7*/ "", "", "", "",
"", "QSPI2_RST_L-O",
"GLOBAL_WP_BMC-I", "BMC_DDR4_TEN-O",
/*J0-J7*/ "", "", "", "", "", "", "", "",
/*K0-K7*/ "", "", "", "", "", "", "", "",
/*L0-L7*/ "", "", "", "", "", "", "", "",
/*M0-M7*/ "USB_HUB_RST_N-O", "BMC_FRU_WP-O",
"", "HMC_STBY_POWER_EN-O",
"STBY_POWER_PG-I", "PCIE_EP_RST_L-O", "", "",
/*N0-N7*/ "", "", "", "", "", "", "", "",
/*O0-O7*/ "", "", "", "", "", "", "", "",
/*P0-P7*/ "", "", "", "", "", "", "", "",
/*Q0-Q7*/ "", "", "", "", "", "", "", "",
/*R0-R7*/ "", "SP0_AP_INTR_N-I", "", "", "", "", "", "",
/*S0-S7*/ "", "", "", "", "", "", "", "",
/*T0-T7*/ "", "", "", "", "", "", "", "",
/*U0-U7*/ "", "", "", "", "", "", "", "",
/*V0-V7*/ "", "", "", "", "PCB_TEMP_ALERT-I", "", "", "",
/*W0-W7*/ "", "", "", "", "", "", "", "CPU_RST_L-I",
/*X0-X7*/ "", "", "", "", "", "", "", "",
/*Y0-Y7*/ "", "", "", "EMMC_RST-O", "", "", "", "",
/*Z0-Z7*/ "HMC_EROT_SPI_INT_L-I", "", "", "", "", "", "", "";
};
&gpio1 {
/* 36 1.8V GPIOs */
gpio-line-names =
/*A0-A7*/ "", "", "", "", "", "", "", "",
/*B0-B7*/ "", "", "", "",
"AP_EROT_REQ-O", "EROT_AP_GNT-I",
"IO_EXPANDER_INT_L-I", "",
/*C0-C7*/ "", "", "", "", "", "", "", "",
/*D0-D7*/ "", "", "", "", "", "", "", "I2C_SSIF_ALERT_L-I",
/*E0-E7*/ "", "", "", "", "", "", "", "";
};
&i2c0 {
status = "okay";
ssif-bmc@10 {
compatible = "ssif-bmc";
reg = <0x10>;
};
};
&i2c1 {
status = "okay";
};
&i2c2 {
status = "okay";
hpm0_ioexp_20: gpio@20 {
compatible = "nxp,pca9555";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
vcc-supply = <&standby_power_regulator>;
gpio-line-names =
"B0_M0_SHDN_FORCE_L-O",
"B0_M0_STBY_POWER_PG-I",
"B0_M0_THERM_OVERT_L-I",
"B0_M0_THERM_WARN_L-I",
"B0_M0_GLOBAL_WP-O",
"B0_M0_USB_HUB0_RST_L-O",
"B0_M0_PRE_SYS_RST_L-O",
"B0_M0_LEAK_DETECT_ALERT_L-I",
"B0_M0_RUN_POWER_EN-O",
"B0_M0_RUN_POWER_PG-I",
"B0_M0_CPU_CHIPTHROT_L-I",
"B0_M0_SHDN_REQ_L-O",
"B0_M0_CPU_SHDN_OK_L-I",
"B0_M0_CPLD_READY-I",
"B0_M0_PWR_BRAKE_L-O",
"B0_M0_PWR_BRAKE_STATUS_L-I";
};
hpm0_ioexp_21: gpio@21 {
compatible = "nxp,pca9555";
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
vcc-supply = <&standby_power_regulator>;
gpio-line-names =
"B0_M0_I2C_BUS_MUX_RESET_L-O",
"B0_M0_HPM_MCU_OK-I",
"B0_M0_CPU_L0_RST_IND_L-O",
"B0_M0_C0_SOCAMM_DAC_SEL0-O",
"B0_M0_C1_SOCAMM_DAC_SEL1-O",
"B0_M0_C0_SOCAMM_I2C_SEL_R-O",
"B0_M0_C1_SOCAMM_I2C_SEL_R-O",
"B0_M0_EEPROM_POWER_DISABLE-O",
"B0_M0_L0L1_RST_L-I",
"B0_M0_L2_RST_L-I",
"B0_M0_BRD_ID_0-I",
"B0_M0_BRD_ID_1-I",
"B0_M0_BMC_LEAK_TEST_L-O",
"B0_M0_MCU_BMC_ALERT_L-I",
"B0_M0_CPU_BOOT_COMPLETE_3V3-I",
"B0_M0_BMC_TO_GPU_MCU_I2C_EN-O";
};
};
&i2c3 {
status = "okay";
};
&i2c4 {
status = "okay";
};
&i2c5 {
status = "okay";
smm_ioexp_20: gpio@20 {
compatible = "nxp,pca9555";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"HMC_RST_R_L-O", "HMC_RECOVERY_R-O",
"HMC_SPI_MUX_R_SEL-O", "GLOBAL_WP-O",
"HMC_READY-I", "HMC_PRSNT_R-I",
"BMC_SELF_PWR_CYCLE-O", "EEDO_LED2-O",
"PWR_LED_L-O", "PWR_BTN_L-I",
"UID_LED_L-O", "UID_BTN_L-I",
"FAULT_LED_L-O", "USB2_HUB_RST_L-O",
"USB2_BMC_HUB2_RST_L-O", "WARN_LED_L-O";
};
smm_ioexp_21: gpio@21 {
compatible = "nxp,pca9555";
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"BMC_HMC_MUX_SEL-O", "BMC_TPM_MUX_SEL-O",
"BMC_USB2_MUX_SEL-O", "HMC_PGOOD_3V3-I",
"", "HDR_SPI_PRSNT_L-I",
"SW_NRESET_R_L-O", "MUX_I2C_ESPI_SEL-O",
"I2C_BUS_MUX_RESET_L-O", "USB_MUX_EN-O",
"PDB_TRAY_RST-O", "USB_PWR_EN-O",
"RTC_CLR_L-O", "I2C_RTC_ALERT_L-I",
"X86_TPM_RST_SEL_L-O", "BMC_MUX_PI3DP_SEL-O";
};
smm_temp: temperature-sensor@48 {
compatible = "national,lm75";
reg = <0x48>;
};
smm_fru: eeprom@50 {
compatible = "atmel,24c128";
reg = <0x50>;
};
rtc@6f {
compatible = "nuvoton,nct3018y";
reg = <0x6f>;
};
};
&i2c6 {
status = "okay";
hmc_ioexp: gpio@20 {
compatible = "ti,tca6408";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"", "", "HMC_EROT_FATAL_ERROR_L-I", "",
"", "HMC_EROT_RECOVERY_L-O", "HMC_EROT_RESET_L-O", "";
};
i2c-mux@70 {
compatible = "nxp,pca9546";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x70>;
i2c-mux-idle-disconnect;
imux16: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
imux17: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
imux18: i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
};
imux19: i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
};
};
};
&i2c7 {
status = "okay";
hpm1_ioexp_20: gpio@20 {
compatible = "nxp,pca9555";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
vcc-supply = <&standby_power_regulator>;
gpio-line-names =
"B1_M0_SHDN_FORCE_L-O",
"B1_M0_STBY_POWER_PG-I",
"B1_M0_THERM_OVERT_L-I",
"B1_M0_THERM_WARN_L-I",
"B1_M0_GLOBAL_WP-O",
"B1_M0_USB_HUB0_RST_L-O",
"B1_M0_PRE_SYS_RST_L-O",
"B1_M0_LEAK_DETECT_ALERT_L-I",
"B1_M0_RUN_POWER_EN-O",
"B1_M0_RUN_POWER_PG-I",
"B1_M0_CPU_CHIPTHROT_L-I",
"B1_M0_SHDN_REQ_L-O",
"B1_M0_CPU_SHDN_OK_L-I",
"B1_M0_CPLD_READY-I",
"B1_M0_PWR_BRAKE_L-O",
"B1_M0_PWR_BRAKE_STATUS_L-I";
};
hpm1_ioexp_21: gpio@21 {
compatible = "nxp,pca9555";
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
vcc-supply = <&standby_power_regulator>;
gpio-line-names =
"B1_M0_I2C_BUS_MUX_RESET_L-O",
"B1_M0_HPM_MCU_OK-I",
"B1_M0_CPU_L0_RST_IND_L-O",
"B1_M0_C0_SOCAMM_DAC_SEL0-O",
"B1_M0_C1_SOCAMM_DAC_SEL1-O",
"B1_M0_C0_SOCAMM_I2C_SEL_R-O",
"B1_M0_C1_SOCAMM_I2C_SEL_R-O",
"B1_M0_EEPROM_POWER_DISABLE-O",
"B1_M0_L0L1_RST_L-I",
"B1_M0_L2_RST_L-I",
"B1_M0_BRD_ID_0-I",
"B1_M0_BRD_ID_1-I",
"B1_M0_BMC_LEAK_TEST_L-O",
"B1_M0_MCU_BMC_ALERT_L-I",
"B1_M0_CPU_BOOT_COMPLETE_3V3-I",
"B1_M0_BMC_TO_GPU_MCU_I2C_EN-O";
};
};
&i2c8 {
status = "okay";
};
&i2c9 {
status = "okay";
pdb_mps_hsc1: power-monitor@10 {
compatible = "mps,mp5926";
reg = <0x10>;
};
pdb_ti_hsc1: power-monitor@11 {
compatible = "ti,lm5066i";
reg = <0x11>;
shunt-resistor-micro-ohms = <763>;
};
pdb_mps_hsc2: power-monitor@12 {
compatible = "mps,mp5926";
reg = <0x12>;
};
pdb_ti_hsc2: power-monitor@13 {
compatible = "ti,lm5066i";
reg = <0x13>;
shunt-resistor-micro-ohms = <294>;
};
pdb_mps_hsc3: power-monitor@14 {
compatible = "mps,mp5926";
reg = <0x14>;
};
pdb_ti_hsc3: power-monitor@15 {
compatible = "ti,lm5066i";
reg = <0x15>;
shunt-resistor-micro-ohms = <294>;
};
pdb_mps_hsc4: power-monitor@16 {
compatible = "mps,mp5926";
reg = <0x16>;
};
pdb_ti_hsc4: power-monitor@17 {
compatible = "ti,lm5066i";
reg = <0x17>;
shunt-resistor-micro-ohms = <381>;
};
pdb_ioexp_20: gpio@20 {
compatible = "nxp,pca9555";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"PDB_STRAP-I", "STBY_POWER_EN-O", "STBY_PWR_OK-I", "",
"", "MAIN_PWR_EN-O", "MAIN_PWR_OK-I", "GLOBAL_WP-O",
"PDB_PWR_BRK_L-I", "FAN_PRSNT-I", "", "",
"HSC4_S5_OR_S0_N-O", "", "", "";
};
pdb_temp: temperature-sensor@4e {
compatible = "national,lm75";
reg = <0x4e>;
};
pdb_fru: eeprom@50 {
compatible = "atmel,24c128";
reg = <0x50>;
};
};
&i2c10 {
status = "okay";
scm_temp: temperature-sensor@48 {
compatible = "national,lm75";
reg = <0x48>;
};
scm_fru: eeprom@50 {
compatible = "atmel,24c128";
reg = <0x50>;
};
};
&i2c11 {
status = "okay";
sw_config: eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
};
};
&i2c12 {
status = "okay";
};
&i2c13 {
status = "okay";
mctp-controller;
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
smm_ext_ioexp: gpio@38 {
compatible = "nxp,pca9554";
reg = <0x38>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"SSD0_PRSNT_L-I", "E1S_PWR_EN-O",
"SSD0_PWRDIS-O", "I2C_PDB_ALERT_L-I",
"BMC_SSD0_RST_L-O", "GLOBAL_WP_E1S-O",
"12V_SSD0_PGD-I", "SSD0_LED-O";
};
smm_ext_fru: eeprom@55 {
compatible = "atmel,24c128";
reg = <0x55>;
};
};
&i2c14 {
status = "okay";
fio_ioexp: gpio@20 {
compatible = "nxp,pca9555";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio1>;
interrupts = <ASPEED_GPIO(B, 6) IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"", "", "", "",
"PWR_LED_BLUE", "PWR_LED_AMBER_R_N",
"BEEP_ID_LED_BLUE", "BEEP_ID_LED_AMBER_R_N",
"", "", "", "",
"FM_MAIN_PWREN_RMC_ISO_EN_N", "LEAK_DETECT_RMC_N",
"PWRGD_RMC_N", "SMALL_LEAK_RMC_N";
pwrgd-rmc-hog {
gpio-hog;
gpios = <14 GPIO_ACTIVE_LOW>;
output-low;
};
};
fio_fru: eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
};
};
&i2c15 {
status = "okay";
};
&mdio0 {
status = "okay";
ethphy0: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0>;
};
};
&mac0 {
pinctrl-names = "default";
phy-mode = "rgmii-id";
phy-handle = <&ethphy0>;
pinctrl-0 = <&pinctrl_rgmii1_default>;
status = "okay";
};
&pinctrl {
pinctrl_gpiom4_unbiased_default: gpiom4 {
pins = "B12";
bias-disable;
};
pinctrl_gpiom5_unbiased_default: gpiom5 {
pins = "C12";
bias-disable;
};
pinctrl_gpiov4_unbiased_default: gpiov4 {
pins = "AE15";
bias-disable;
};
pinctrl_gpiov7_unbiased_default: gpiov7 {
pins = "AF15";
bias-disable;
};
};
&uart1 {
status = "okay";
};
&uart3 {
status = "okay";
};
&uart5 {
status = "okay";
};
&uart_routing {
status = "okay";
};
&wdt1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wdtrst1_default>;
aspeed,reset-type = "soc";
aspeed,external-signal;
aspeed,ext-push-pull;
aspeed,ext-active-high;
aspeed,ext-pulse-duration = <256>;
status = "okay";
};

View File

@@ -422,6 +422,11 @@ power-sensor@45 {
shunt-resistor = <1000>;
};
power-monitor@46 {
compatible = "mps,mp5998";
reg = <0x46>;
};
power-monitor@47 {
compatible = "ti,tps25990";
reg = <0x47>;

View File

@@ -208,6 +208,21 @@ &lpc_reset {
status = "okay";
};
&mac0 {
phy-mode = "rgmii-id";
phy-handle = <&ethphy3>;
status = "okay";
};
&mdio3 {
status = "okay";
ethphy3: ethernet-phy@2 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <2>;
};
};
&rtc {
status = "okay";
};

View File

@@ -102,6 +102,15 @@ ahbc: bus@1e600000 {
reg = <0x1e600000 0x100>;
};
pwm_tach: pwm-tach-controller@1e610000 {
compatible = "aspeed,ast2600-pwm-tach";
reg = <0x1e610000 0x100>;
clocks = <&syscon ASPEED_CLK_AHB>;
resets = <&syscon ASPEED_RESET_PWM>;
#pwm-cells = <3>;
status = "disabled";
};
fmc: spi@1e620000 {
reg = <0x1e620000 0xc4>, <0x20000000 0x10000000>;
#address-cells = <1>;
@@ -835,11 +844,326 @@ uart9: serial@1e790300 {
status = "disabled";
};
i2c: bus@1e78a000 {
bus@1e78a000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x1e78a000 0x1000>;
i2c0: i2c@80 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x80 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1_default>;
status = "disabled";
};
i2c1: i2c@100 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x100 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2_default>;
status = "disabled";
};
i2c2: i2c@180 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x180 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3_default>;
status = "disabled";
};
i2c3: i2c@200 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x200 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c4_default>;
status = "disabled";
};
i2c4: i2c@280 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x280 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c5_default>;
status = "disabled";
};
i2c5: i2c@300 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x300 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c6_default>;
status = "disabled";
};
i2c6: i2c@380 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x380 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c7_default>;
status = "disabled";
};
i2c7: i2c@400 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x400 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c8_default>;
status = "disabled";
};
i2c8: i2c@480 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x480 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c9_default>;
status = "disabled";
};
i2c9: i2c@500 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x500 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c10_default>;
status = "disabled";
};
i2c10: i2c@580 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x580 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c11_default>;
status = "disabled";
};
i2c11: i2c@600 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x600 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c12_default>;
status = "disabled";
};
i2c12: i2c@680 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x680 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c13_default>;
status = "disabled";
};
i2c13: i2c@700 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x700 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c14_default>;
status = "disabled";
};
i2c14: i2c@780 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x780 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c15_default>;
status = "disabled";
};
i2c15: i2c@800 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x800 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c16_default>;
status = "disabled";
};
};
bus@1e7a0000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x1e7a0000 0x8000>;
i3c_global: syscon@0 {
compatible = "aspeed,ast2600-i3c-global", "syscon";
reg = <0x0 0x1000>;
resets = <&syscon ASPEED_RESET_I3C_DMA>;
};
i3c0: i3c@2000 {
compatible = "aspeed,ast2600-i3c";
reg = <0x2000 0x1000>;
#address-cells = <3>;
#size-cells = <0>;
clocks = <&syscon ASPEED_CLK_GATE_I3C0CLK>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i3c1_default>;
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
aspeed,global-regs = <&i3c_global 0>;
status = "disabled";
};
i3c1: i3c@3000 {
compatible = "aspeed,ast2600-i3c";
reg = <0x3000 0x1000>;
#address-cells = <3>;
#size-cells = <0>;
clocks = <&syscon ASPEED_CLK_GATE_I3C1CLK>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i3c2_default>;
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
aspeed,global-regs = <&i3c_global 1>;
status = "disabled";
};
i3c2: i3c@4000 {
compatible = "aspeed,ast2600-i3c";
reg = <0x4000 0x1000>;
#address-cells = <3>;
#size-cells = <0>;
clocks = <&syscon ASPEED_CLK_GATE_I3C2CLK>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i3c3_default>;
interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
aspeed,global-regs = <&i3c_global 2>;
status = "disabled";
};
i3c3: i3c@5000 {
compatible = "aspeed,ast2600-i3c";
reg = <0x5000 0x1000>;
#address-cells = <3>;
#size-cells = <0>;
clocks = <&syscon ASPEED_CLK_GATE_I3C3CLK>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i3c4_default>;
interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
aspeed,global-regs = <&i3c_global 3>;
status = "disabled";
};
i3c4: i3c@6000 {
compatible = "aspeed,ast2600-i3c";
reg = <0x6000 0x1000>;
#address-cells = <3>;
#size-cells = <0>;
clocks = <&syscon ASPEED_CLK_GATE_I3C4CLK>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i3c5_default>;
interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
aspeed,global-regs = <&i3c_global 4>;
status = "disabled";
};
i3c5: i3c@7000 {
compatible = "aspeed,ast2600-i3c";
reg = <0x7000 0x1000>;
#address-cells = <3>;
#size-cells = <0>;
clocks = <&syscon ASPEED_CLK_GATE_I3C5CLK>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i3c6_default>;
interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
aspeed,global-regs = <&i3c_global 5>;
status = "disabled";
};
};
fsim0: fsi@1e79b000 {
@@ -870,229 +1194,3 @@ fsim1: fsi@1e79b100 {
};
#include "aspeed-g6-pinctrl.dtsi"
&i2c {
i2c0: i2c@80 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x80 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1_default>;
status = "disabled";
};
i2c1: i2c@100 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x100 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2_default>;
status = "disabled";
};
i2c2: i2c@180 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x180 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3_default>;
status = "disabled";
};
i2c3: i2c@200 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x200 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c4_default>;
status = "disabled";
};
i2c4: i2c@280 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x280 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c5_default>;
status = "disabled";
};
i2c5: i2c@300 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x300 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c6_default>;
status = "disabled";
};
i2c6: i2c@380 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x380 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c7_default>;
status = "disabled";
};
i2c7: i2c@400 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x400 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c8_default>;
status = "disabled";
};
i2c8: i2c@480 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x480 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c9_default>;
status = "disabled";
};
i2c9: i2c@500 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x500 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c10_default>;
status = "disabled";
};
i2c10: i2c@580 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x580 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c11_default>;
status = "disabled";
};
i2c11: i2c@600 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x600 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c12_default>;
status = "disabled";
};
i2c12: i2c@680 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x680 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c13_default>;
status = "disabled";
};
i2c13: i2c@700 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x700 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c14_default>;
status = "disabled";
};
i2c14: i2c@780 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x780 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c15_default>;
status = "disabled";
};
i2c15: i2c@800 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x800 0x80>;
compatible = "aspeed,ast2600-i2c-bus";
clocks = <&syscon ASPEED_CLK_APB2>;
resets = <&syscon ASPEED_RESET_I2C>;
interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
bus-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c16_default>;
status = "disabled";
};
};

View File

@@ -110,7 +110,7 @@ &gpio {
"GPIO26",
"GPIO27",
"RGMII_MDIO",
"RGMIO_MDC",
"RGMII_MDC",
/* Used by BT module */
"CTS0", /* 30 */
"RTS0",

View File

@@ -56,7 +56,7 @@ &gpio {
"GPIO26",
"GPIO27",
"RGMII_MDIO",
"RGMIO_MDC",
"RGMII_MDC",
/* Used by BT module */
"CTS0",
"RTS0",

View File

@@ -43,3 +43,7 @@ button-restart {
&usb3_phy {
status = "okay";
};
&usb3 {
vcc-gpio = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
};

View File

@@ -86,3 +86,7 @@ &spi_nor {
&usb3_phy {
status = "okay";
};
&usb3 {
vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
};

View File

@@ -121,9 +121,6 @@ &ohci0 {
};
&pinctrl {
pinctrl-names = "default";
pinctrl-0 = <&pwm_leds>;
pwm_leds: pwm_leds {
function = "pwm";
groups = "pwm1_grp", "pwm2_grp", "pwm3_grp";
@@ -131,6 +128,9 @@ pwm_leds: pwm_leds {
};
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm_leds>;
status = "okay";
};

View File

@@ -2,11 +2,13 @@
dtb-$(CONFIG_ARCH_GEMINI) += \
gemini-dlink-dir-685.dtb \
gemini-dlink-dns-313.dtb \
gemini-nas4210b.dtb \
gemini-nas4220b.dtb \
gemini-ns2502.dtb \
gemini-rut1xx.dtb \
gemini-sl93512r.dtb \
gemini-sq201.dtb \
gemini-ssi1328.dtb \
gemini-verbatim-s08v1901-d1.dtb \
gemini-wbd111.dtb \
gemini-wbd222.dtb

View File

@@ -0,0 +1,205 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree file for the Gemini-based Raidsonic NAS IB-4210-B
* Based on the NAS Forum experiments by user "CptSpock".
*/
/dts-v1/;
#include "gemini.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "Raidsonic NAS IB-4210-B";
compatible = "raidsonic,ib-4210-b", "cortina,gemini";
#address-cells = <1>;
#size-cells = <1>;
memory@0 { /* 64 MB */
device_type = "memory";
reg = <0x00000000 0x4000000>;
};
chosen {
bootargs = "console=ttyS0,19200n8 root=/dev/sda1 rw rootwait";
stdout-path = &uart0;
};
gpio_keys {
compatible = "gpio-keys";
button-setup {
debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_SETUP>;
label = "Backup button";
/* Conflict with TVC */
gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
};
button-restart {
debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_RESTART>;
label = "Softreset button";
/* Conflict with TVC */
gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
led-orange-hdd {
label = "nas4220b:orange:hdd";
/* Conflict with TVC */
gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
default-state = "on";
linux,default-trigger = "disk-activity";
};
led-green-os {
label = "nas4220b:green:os";
/* Conflict with TVC */
gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
default-state = "on";
linux,default-trigger = "heartbeat";
};
};
mdio0: mdio {
compatible = "virtual,mdio-gpio";
gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
#address-cells = <1>;
#size-cells = <0>;
/* Realtek RTL8211B */
phy0: ethernet-phy@1 {
reg = <1>;
device_type = "ethernet-phy";
};
};
soc {
flash@30000000 {
status = "okay";
/* 16MB of flash */
reg = <0x30000000 0x01000000>;
partitions {
compatible = "redboot-fis";
/* Eraseblock at 0xfe0000 */
fis-index-block = <0x7f>;
};
};
syscon: syscon@40000000 {
pinctrl {
gpio0_default_pins: pinctrl-gpio0 {
mux {
function = "gpio0";
groups =
"gpio0egrp",
/* Used by MDIO */
"gpio0igrp";
};
};
gpio1_default_pins: pinctrl-gpio1 {
mux {
function = "gpio1";
/* Lines 28-31 used by LEDs and buttons */
groups = "gpio1dgrp";
};
};
pinctrl-gmii {
mux {
function = "gmii";
groups = "gmii_gmac0_grp";
};
conf0 {
pins = "R8 GMAC0 RXDV", "U11 GMAC1 RXDV";
skew-delay = <0>;
};
conf1 {
pins = "T8 GMAC0 RXC";
skew-delay = <10>;
};
conf2 {
pins = "T11 GMAC1 RXC";
skew-delay = <15>;
};
conf3 {
pins = "P8 GMAC0 TXEN", "V11 GMAC1 TXEN";
skew-delay = <7>;
};
conf4 {
pins = "V7 GMAC0 TXC", "P10 GMAC1 TXC";
skew-delay = <10>;
};
conf5 {
/* The data lines all have default skew */
pins = "U8 GMAC0 RXD0", "V8 GMAC0 RXD1",
"P9 GMAC0 RXD2", "R9 GMAC0 RXD3",
"R11 GMAC1 RXD0", "P11 GMAC1 RXD1",
"V12 GMAC1 RXD2", "U12 GMAC1 RXD3",
"R10 GMAC1 TXD0", "T10 GMAC1 TXD1",
"U10 GMAC1 TXD2", "V10 GMAC1 TXD3";
skew-delay = <7>;
};
conf6 {
pins = "U7 GMAC0 TXD0", "T7 GMAC0 TXD1",
"R7 GMAC0 TXD2", "P7 GMAC0 TXD3";
skew-delay = <5>;
};
/* Set up drive strength on GMAC0 to 16 mA */
conf7 {
groups = "gmii_gmac0_grp";
drive-strength = <16>;
};
};
};
};
sata: sata@46000000 {
cortina,gemini-ata-muxmode = <0>;
cortina,gemini-enable-sata-bridge;
status = "okay";
};
gpio0: gpio@4d000000 {
pinctrl-names = "default";
pinctrl-0 = <&gpio0_default_pins>;
};
gpio1: gpio@4e000000 {
pinctrl-names = "default";
pinctrl-0 = <&gpio1_default_pins>;
};
ethernet@60000000 {
status = "okay";
ethernet-port@0 {
phy-mode = "rgmii";
phy-handle = <&phy0>;
};
ethernet-port@1 {
/* Not used in this platform */
};
};
ide@63000000 {
status = "okay";
};
ide@63400000 {
status = "okay";
};
usb@68000000 {
status = "okay";
};
usb@69000000 {
status = "okay";
};
};
};

View File

@@ -52,6 +52,7 @@ led-orange-hdd {
/* Conflict with TVC */
gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
default-state = "on";
linux,default-trigger = "disk-activity";
};
led-green-os {
label = "nas4220b:green:os";

View File

@@ -14,13 +14,13 @@ / {
#address-cells = <1>;
#size-cells = <1>;
memory@0 { /* 128 MB */
memory@0 { /* 32 MB */
device_type = "memory";
reg = <0x00000000 0x8000000>;
reg = <0x00000000 0x2000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
bootargs = "console=ttyS0,19200n8";
stdout-path = &uart0;
};
@@ -113,6 +113,10 @@ gpio1: gpio@4e000000 {
pinctrl-0 = <&gpio1_default_pins>;
};
pci@50000000 {
status = "okay";
};
ethernet@60000000 {
status = "okay";
@@ -124,13 +128,5 @@ ethernet-port@1 {
/* Not used in this platform */
};
};
usb@68000000 {
status = "okay";
};
usb@69000000 {
status = "okay";
};
};
};

View File

@@ -20,7 +20,7 @@ memory@0 { /* 128 MB */
};
chosen {
bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=squashfs,jffs2 rootwait";
bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=squashfs,jffs2 rootwait";
stdout-path = &uart0;
};

View File

@@ -0,0 +1,225 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree file for the Verbatim S08V1901-D1
* on product packaging called "Verbatim Gigabit Ethernet Hard Drive"
*/
/dts-v1/;
#include "gemini.dtsi"
#include <dt-bindings/leds/common.h>
#include <dt-bindings/input/input.h>
/ {
model = "Verbatim Gigabit Ethernet Hard Drive S08V1901-D1";
compatible = "verbatim,s08v1901-d1", "cortina,gemini";
#address-cells = <1>;
#size-cells = <1>;
memory@0 {
/* 64MB SDRAM in 2 x Hynix HY5DU561622ETP-D43 */
device_type = "memory";
reg = <0x00000000 0x4000000>;
};
chosen {
bootargs = "console=ttyS0,19200n8 root=/dev/sda1 rw rootwait";
stdout-path = &uart0;
};
gpio_keys {
compatible = "gpio-keys";
button-reset {
debounce-interval = <50>;
wakeup-source;
linux,code = <KEY_RESTART>;
label = "reset";
gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
led-green-harddisk {
function = LED_FUNCTION_DISK_ACTIVITY;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
default-state = "off";
linux,default-trigger = "disk-activity";
};
};
/*
* Fan control candidates: gpio0 10, gpio1 28
*/
mdio0: mdio {
compatible = "virtual,mdio-gpio";
/* Uses MDC and MDIO */
gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
#address-cells = <1>;
#size-cells = <0>;
/* This is a Realtek RTL8211CL ethernet PHY */
phy0: ethernet-phy@1 {
reg = <1>;
};
};
/*
* I haven't found a way to control the fan, it appears to be
* always on.
*/
thermal-zones {
chassis-thermal {
/* Poll every 20 seconds */
polling-delay = <20000>;
/* Poll every 2nd second when cooling */
polling-delay-passive = <2000>;
/* Use the thermal sensor in the hard drive */
thermal-sensors = <&drive0>;
/* Tripping points from the fan.script in the rootfs */
trips {
alert: chassis-alert {
/* At 43 degrees turn on the fan */
temperature = <43000>;
hysteresis = <3000>;
type = "active";
};
crit: chassis-crit {
/* Just shut down at 60 degrees */
temperature = <60000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
soc {
flash@30000000 {
/*
* This is a Spansion S29GL128P11TFI01 852FB245 A
* 128Mbit (16MB) Flash memory.
*/
status = "okay";
reg = <0x30000000 0x01000000>;
partitions {
compatible = "redboot-fis";
/* Eraseblock at 0xfe0000 */
fis-index-block = <0x7f>;
};
};
syscon: syscon@40000000 {
pinctrl {
/*
* gpio0agrp cover line 0-4 as line 1 is used for the LED
* gpio0hgrp cover line 21, 22 used by MDIO for Marvell PHY
*/
gpio0_default_pins: pinctrl-gpio0 {
mux {
function = "gpio0";
groups = "gpio0agrp", "gpio0hgrp";
};
};
gpio1_default_pins: pinctrl-gpio1 {
/*
* Free up the TVC pins at GPIO1 offset 28,29,30,31
* line 31 is used for reset key
*/
mux {
function = "gpio1";
groups = "gpio1dgrp";
};
};
pinctrl-gmii {
mux {
function = "gmii";
groups = "gmii_gmac0_grp";
};
/* TODO: investigate vendor registers on boot */
conf0 {
pins = "V8 GMAC0 RXDV";
skew-delay = <0>;
};
conf1 {
pins = "Y7 GMAC0 RXC";
skew-delay = <15>;
};
conf2 {
pins = "T8 GMAC0 TXEN";
skew-delay = <7>;
};
conf3 {
pins = "U8 GMAC0 TXC";
skew-delay = <10>;
};
conf4 {
/* The data lines all have default skew */
pins = "W8 GMAC0 RXD0", "V9 GMAC0 RXD1",
"Y8 GMAC0 RXD2", "U9 GMAC0 RXD3",
"T7 GMAC0 TXD0", "U6 GMAC0 TXD1",
"V7 GMAC0 TXD2", "U7 GMAC0 TXD3";
skew-delay = <7>;
};
};
};
};
/* Both interfaces brought out on SATA connectors */
sata: sata@46000000 {
cortina,gemini-ata-muxmode = <0>;
cortina,gemini-enable-sata-bridge;
status = "okay";
};
gpio0: gpio@4d000000 {
pinctrl-names = "default";
pinctrl-0 = <&gpio0_default_pins>;
};
gpio1: gpio@4e000000 {
pinctrl-names = "default";
pinctrl-0 = <&gpio1_default_pins>;
};
ethernet@60000000 {
status = "okay";
ethernet-port@0 {
phy-mode = "rgmii";
phy-handle = <&phy0>;
};
};
ide@63000000 {
status = "okay";
/*
* This drive may have a temperature sensor with a
* thermal zone we can use for thermal control of the
* chassis temperature using the fan.
*/
drive0: ide-port@0 {
reg = <0>;
#thermal-sensor-cells = <0>;
};
};
ide@63400000 {
status = "okay";
};
usb@68000000 {
status = "okay";
};
usb@69000000 {
status = "okay";
};
};
};

View File

@@ -61,6 +61,12 @@ mux {
groups = "rtcgrp";
};
};
ssp_default_pins: pinctrl-ssp {
mux {
function = "ssp";
groups = "sspgrp";
};
};
power_default_pins: pinctrl-power {
mux {
function = "power";
@@ -228,6 +234,17 @@ intcon: interrupt-controller@48000000 {
#interrupt-cells = <2>;
};
spi@4a000000 {
compatible = "faraday,ftssp010";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x4a000000 0x100>;
interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&ssp_default_pins>;
status = "disabled";
};
power-controller@4b000000 {
compatible = "cortina,gemini-power-controller";
reg = <0x4b000000 0x100>;

View File

@@ -195,19 +195,19 @@ gpio1: gpio@1,0 {
pci-reset-hog {
gpio-hog;
gpios = <7 GPIO_ACTIVE_HIGH>;
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PCI reset";
};
pstn-relay-hog-1 {
gpio-hog;
gpios = <11 GPIO_ACTIVE_HIGH>;
gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "PSTN relay control 1";
};
pstn-relay-hog-2 {
gpio-hog;
gpios = <12 GPIO_ACTIVE_HIGH>;
gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "PSTN relay control 2";
};

View File

@@ -37,13 +37,11 @@ cpu1: cpu@1 {
};
};
pmu: pmu@ff111000 {
pmu: pmu {
compatible = "arm,cortex-a9-pmu";
interrupt-parent = <&intc>;
interrupts = <0 176 4>, <0 177 4>;
interrupt-affinity = <&cpu0>, <&cpu1>;
reg = <0xff111000 0x1000>,
<0xff113000 0x1000>;
};
intc: interrupt-controller@fffed000 {

View File

@@ -29,13 +29,11 @@ cpu1: cpu@1 {
};
};
pmu: pmu@ff111000 {
pmu: pmu {
compatible = "arm,cortex-a9-pmu";
interrupt-parent = <&intc>;
interrupts = <0 124 4>, <0 125 4>;
interrupt-affinity = <&cpu0>, <&cpu1>;
reg = <0xff111000 0x1000>,
<0xff113000 0x1000>;
};
intc: interrupt-controller@ffffd000 {

View File

@@ -18,9 +18,9 @@ partition@0 {
label = "Boot and fpga data";
reg = <0x0 0x02500000>;
};
partition@1c00000 {
partition@2500000 {
label = "Root Filesystem - JFFS2";
reg = <0x02500000 0x05500000>;
reg = <0x02500000 0x3db00000>;
};
};
};

View File

@@ -42,6 +42,17 @@ cpu@3 {
};
timer {
compatible = "arm,armv7-timer";
interrupt-parent = <&gic>;
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
clock-frequency = <13000000>;
arm,cpu-registers-not-fw-configured;
};
clocks {
#address-cells = <1>;
#size-cells = <1>;

View File

@@ -249,7 +249,7 @@ pericfg: syscon@10003000 {
#reset-cells = <1>;
};
pio: pinctrl@10005000 {
pio: pinctrl@1000b000 {
compatible = "mediatek,mt7623-pinctrl";
reg = <0 0x1000b000 0 0x1000>;
mediatek,pctl-regmap = <&syscfg_pctl_a>;
@@ -1017,14 +1017,14 @@ bdpsys: syscon@1c000000 {
};
&pio {
cir_pins_a:cir-default {
cir_pins_a: cir-default-pins {
pins-cir {
pinmux = <MT7623_PIN_46_IR_FUNC_IR>;
bias-disable;
};
};
i2c0_pins_a: i2c0-default {
i2c0_pins_a: i2c0-default-pins {
pins-i2c0 {
pinmux = <MT7623_PIN_75_SDA0_FUNC_SDA0>,
<MT7623_PIN_76_SCL0_FUNC_SCL0>;
@@ -1032,40 +1032,40 @@ pins-i2c0 {
};
};
i2c1_pins_a: i2c1-default {
pin-i2c1 {
i2c1_pins_a: i2c1-default-pins {
pins-i2c1 {
pinmux = <MT7623_PIN_57_SDA1_FUNC_SDA1>,
<MT7623_PIN_58_SCL1_FUNC_SCL1>;
bias-disable;
};
};
i2c1_pins_b: i2c1-alt {
pin-i2c1 {
i2c1_pins_b: i2c1-alt-pins {
pins-i2c1 {
pinmux = <MT7623_PIN_242_URTS2_FUNC_SCL1>,
<MT7623_PIN_243_UCTS2_FUNC_SDA1>;
bias-disable;
};
};
i2c2_pins_a: i2c2-default {
pin-i2c2 {
i2c2_pins_a: i2c2-default-pins {
pins-i2c2 {
pinmux = <MT7623_PIN_77_SDA2_FUNC_SDA2>,
<MT7623_PIN_78_SCL2_FUNC_SCL2>;
bias-disable;
};
};
i2c2_pins_b: i2c2-alt {
pin-i2c2 {
i2c2_pins_b: i2c2-alt-pins {
pins-i2c2 {
pinmux = <MT7623_PIN_122_GPIO122_FUNC_SDA2>,
<MT7623_PIN_123_HTPLG_FUNC_SCL2>;
bias-disable;
};
};
i2s0_pins_a: i2s0-default {
pin-i2s0 {
i2s0_pins_a: i2s0-default-pins {
pins-i2s0 {
pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
<MT7623_PIN_72_I2S0_DATA_IN_FUNC_I2S0_DATA_IN>,
<MT7623_PIN_73_I2S0_LRCK_FUNC_I2S0_LRCK>,
@@ -1076,8 +1076,8 @@ pin-i2s0 {
};
};
i2s1_pins_a: i2s1-default {
pin-i2s1 {
i2s1_pins_a: i2s1-default-pins {
pins-i2s1 {
pinmux = <MT7623_PIN_33_I2S1_DATA_FUNC_I2S1_DATA>,
<MT7623_PIN_34_I2S1_DATA_IN_FUNC_I2S1_DATA_IN>,
<MT7623_PIN_35_I2S1_BCK_FUNC_I2S1_BCK>,
@@ -1088,7 +1088,7 @@ pin-i2s1 {
};
};
key_pins_a: keys-alt {
key_pins_a: keys-alt-pins {
pins-keys {
pinmux = <MT7623_PIN_256_GPIO256_FUNC_GPIO256>,
<MT7623_PIN_257_GPIO257_FUNC_GPIO257> ;
@@ -1096,7 +1096,7 @@ pins-keys {
};
};
led_pins_a: leds-alt {
led_pins_a: leds-alt-pins {
pins-leds {
pinmux = <MT7623_PIN_239_EXT_SDIO0_FUNC_GPIO239>,
<MT7623_PIN_240_EXT_XCS_FUNC_GPIO240>,
@@ -1104,7 +1104,7 @@ pins-leds {
};
};
mmc0_pins_default: mmc0default {
mmc0_pins_default: mmc0-default-pins {
pins-cmd-dat {
pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
<MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
@@ -1130,7 +1130,7 @@ pins-rst {
};
};
mmc0_pins_uhs: mmc0 {
mmc0_pins_uhs: mmc0-uhs-pins {
pins-cmd-dat {
pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
<MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
@@ -1158,7 +1158,7 @@ pins-rst {
};
};
mmc1_pins_default: mmc1default {
mmc1_pins_default: mmc1-default-pins {
pins-cmd-dat {
pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
<MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
@@ -1188,7 +1188,7 @@ pins-insert {
};
};
mmc1_pins_uhs: mmc1 {
mmc1_pins_uhs: mmc1-uhs-pins {
pins-cmd-dat {
pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
<MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
@@ -1207,7 +1207,7 @@ pins-clk {
};
};
nand_pins_default: nanddefault {
nand_pins_default: nand-default-pins {
pins-ale {
pinmux = <MT7623_PIN_116_MSDC0_CMD_FUNC_NALE>;
drive-strength = <8>;
@@ -1236,15 +1236,15 @@ pins-we {
};
};
pcie_default: pcie_pin_default {
pins_cmd_dat {
pcie_default: pcie-default-pins {
pins-cmd-dat {
pinmux = <MT7623_PIN_208_AUD_EXT_CK1_FUNC_PCIE0_PERST_N>,
<MT7623_PIN_209_AUD_EXT_CK2_FUNC_PCIE1_PERST_N>;
bias-disable;
};
};
pwm_pins_a: pwm-default {
pwm_pins_a: pwm-default-pins {
pins-pwm {
pinmux = <MT7623_PIN_203_PWM0_FUNC_PWM0>,
<MT7623_PIN_204_PWM1_FUNC_PWM1>,
@@ -1254,7 +1254,7 @@ pins-pwm {
};
};
spi0_pins_a: spi0-default {
spi0_pins_a: spi0-default-pins {
pins-spi {
pinmux = <MT7623_PIN_53_SPI0_CSN_FUNC_SPI0_CS>,
<MT7623_PIN_54_SPI0_CK_FUNC_SPI0_CK>,
@@ -1264,7 +1264,7 @@ pins-spi {
};
};
spi1_pins_a: spi1-default {
spi1_pins_a: spi1-default-pins {
pins-spi {
pinmux = <MT7623_PIN_7_SPI1_CSN_FUNC_SPI1_CS>,
<MT7623_PIN_199_SPI1_CK_FUNC_SPI1_CK>,
@@ -1273,7 +1273,7 @@ pins-spi {
};
};
spi2_pins_a: spi2-default {
spi2_pins_a: spi2-default-pins {
pins-spi {
pinmux = <MT7623_PIN_101_SPI2_CSN_FUNC_SPI2_CS>,
<MT7623_PIN_104_SPI2_CK_FUNC_SPI2_CK>,
@@ -1282,28 +1282,28 @@ pins-spi {
};
};
uart0_pins_a: uart0-default {
uart0_pins_a: uart0-default-pins {
pins-dat {
pinmux = <MT7623_PIN_79_URXD0_FUNC_URXD0>,
<MT7623_PIN_80_UTXD0_FUNC_UTXD0>;
};
};
uart1_pins_a: uart1-default {
uart1_pins_a: uart1-default-pins {
pins-dat {
pinmux = <MT7623_PIN_81_URXD1_FUNC_URXD1>,
<MT7623_PIN_82_UTXD1_FUNC_UTXD1>;
};
};
uart2_pins_a: uart2-default {
uart2_pins_a: uart2-default-pins {
pins-dat {
pinmux = <MT7623_PIN_14_GPIO14_FUNC_URXD2>,
<MT7623_PIN_15_GPIO15_FUNC_UTXD2>;
};
};
uart2_pins_b: uart2-alt {
uart2_pins_b: uart2-alt-pins {
pins-dat {
pinmux = <MT7623_PIN_200_URXD2_FUNC_URXD2>,
<MT7623_PIN_201_UTXD2_FUNC_UTXD2>;

View File

@@ -148,7 +148,7 @@ pericfg: pericfg@10003000 {
* Pinctrl access register at 0x10005000 and 0x1020c000 through
* regmap. Register 0x1000b000 is used by EINT.
*/
pio: pinctrl@10005000 {
pio: pinctrl@1000b000 {
compatible = "mediatek,mt8135-pinctrl";
reg = <0 0x1000b000 0 0x1000>;
mediatek,pctl-regmap = <&syscfg_pctl_a &syscfg_pctl_b>;

View File

@@ -1055,5 +1055,13 @@ gic: interrupt-controller@e8c11000 {
#address-cells = <0>;
interrupt-controller;
};
i3c: i3c@e9000000 {
compatible = "microchip,sama7d65-i3c-hci";
reg = <0xe9000000 0x300>;
interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 105>, <&pmc PMC_TYPE_GCK 105>;
status = "disabled";
};
};
};

File diff suppressed because it is too large Load Diff

View File

@@ -8,6 +8,8 @@
#include <dt-bindings/soc/tegra-pmc.h>
#include <dt-bindings/thermal/tegra114-soctherm.h>
#include "tegra114-peripherals-opp.dtsi"
/ {
compatible = "nvidia,tegra114";
interrupt-parent = <&lic>;
@@ -56,6 +58,8 @@ vi@54080000 {
clocks = <&tegra_car TEGRA114_CLK_VI>;
resets = <&tegra_car 20>;
reset-names = "vi";
power-domains = <&pd_venc>;
operating-points-v2 = <&vi_dvfs_opp_table>;
iommus = <&mc TEGRA_SWGROUP_VI>;
@@ -69,6 +73,8 @@ epp@540c0000 {
clocks = <&tegra_car TEGRA114_CLK_EPP>;
resets = <&tegra_car TEGRA114_CLK_EPP>;
reset-names = "epp";
power-domains = <&pd_heg>;
operating-points-v2 = <&epp_dvfs_opp_table>;
iommus = <&mc TEGRA_SWGROUP_EPP>;
@@ -82,6 +88,7 @@ isp@54100000 {
clocks = <&tegra_car TEGRA114_CLK_ISP>;
resets = <&tegra_car TEGRA114_CLK_ISP>;
reset-names = "isp";
power-domains = <&pd_venc>;
iommus = <&mc TEGRA_SWGROUP_ISP>;
@@ -95,6 +102,8 @@ gr2d@54140000 {
clocks = <&tegra_car TEGRA114_CLK_GR2D>;
resets = <&tegra_car 21>, <&mc TEGRA114_MC_RESET_2D>;
reset-names = "2d", "mc";
power-domains = <&pd_heg>;
operating-points-v2 = <&gr2d_dvfs_opp_table>;
iommus = <&mc TEGRA_SWGROUP_G2>;
};
@@ -105,6 +114,8 @@ gr3d@54180000 {
clocks = <&tegra_car TEGRA114_CLK_GR3D>;
resets = <&tegra_car 24>, <&mc TEGRA114_MC_RESET_3D>;
reset-names = "3d", "mc";
power-domains = <&pd_3d>;
operating-points-v2 = <&gr3d_dvfs_opp_table>;
iommus = <&mc TEGRA_SWGROUP_NV>;
};
@@ -118,11 +129,24 @@ dc@54200000 {
clock-names = "dc", "parent";
resets = <&tegra_car 27>;
reset-names = "dc";
power-domains = <&pd_core>;
operating-points-v2 = <&disp1_dvfs_opp_table>;
iommus = <&mc TEGRA_SWGROUP_DC>;
nvidia,head = <0>;
interconnects = <&mc TEGRA114_MC_DISPLAY0A &emc>,
<&mc TEGRA114_MC_DISPLAY0B &emc>,
<&mc TEGRA114_MC_DISPLAY1B &emc>,
<&mc TEGRA114_MC_DISPLAY0C &emc>,
<&mc TEGRA114_MC_DISPLAYHC &emc>;
interconnect-names = "wina",
"winb",
"winb-vfilter",
"winc",
"cursor";
rgb {
status = "disabled";
};
@@ -137,11 +161,24 @@ dc@54240000 {
clock-names = "dc", "parent";
resets = <&tegra_car 26>;
reset-names = "dc";
power-domains = <&pd_core>;
operating-points-v2 = <&disp2_dvfs_opp_table>;
iommus = <&mc TEGRA_SWGROUP_DCB>;
nvidia,head = <1>;
interconnects = <&mc TEGRA114_MC_DISPLAY0AB &emc>,
<&mc TEGRA114_MC_DISPLAY0BB &emc>,
<&mc TEGRA114_MC_DISPLAY1BB &emc>,
<&mc TEGRA114_MC_DISPLAY0CB &emc>,
<&mc TEGRA114_MC_DISPLAYHCB &emc>;
interconnect-names = "wina",
"winb",
"winb-vfilter",
"winc",
"cursor";
rgb {
status = "disabled";
};
@@ -156,6 +193,8 @@ hdmi@54280000 {
clock-names = "hdmi", "parent";
resets = <&tegra_car 51>;
reset-names = "hdmi";
power-domains = <&pd_core>;
operating-points-v2 = <&hdmi_dvfs_opp_table>;
status = "disabled";
};
@@ -169,6 +208,7 @@ dsia: dsi@54300000 {
resets = <&tegra_car 48>;
reset-names = "dsi";
nvidia,mipi-calibrate = <&mipi 0x060>; /* DSIA & DSIB pads */
power-domains = <&pd_core>;
status = "disabled";
#address-cells = <1>;
@@ -185,6 +225,7 @@ dsib: dsi@54400000 {
resets = <&tegra_car 82>;
reset-names = "dsi";
nvidia,mipi-calibrate = <&mipi 0x180>; /* DSIC & DSID pads */
power-domains = <&pd_core>;
status = "disabled";
#address-cells = <1>;
@@ -198,6 +239,8 @@ msenc@544c0000 {
clocks = <&tegra_car TEGRA114_CLK_MSENC>;
resets = <&tegra_car TEGRA114_CLK_MSENC>;
reset-names = "mpe";
power-domains = <&pd_mpe>;
operating-points-v2 = <&msenc_dvfs_opp_table>;
iommus = <&mc TEGRA_SWGROUP_MSENC>;
@@ -210,6 +253,8 @@ tsec@54500000 {
interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&tegra_car TEGRA114_CLK_TSEC>;
resets = <&tegra_car TEGRA114_CLK_TSEC>;
power-domains = <&pd_core>;
operating-points-v2 = <&tsec_dvfs_opp_table>;
iommus = <&mc TEGRA_SWGROUP_TSEC>;
@@ -323,6 +368,9 @@ actmon: actmon@6000c800 {
clock-names = "actmon", "emc";
resets = <&tegra_car TEGRA114_CLK_ACTMON>;
reset-names = "actmon";
operating-points-v2 = <&emc_bw_dfs_opp_table>;
interconnects = <&mc TEGRA114_MC_MPCORER &emc>;
interconnect-names = "cpu-read";
#cooling-cells = <2>;
};
@@ -366,6 +414,8 @@ vde@6001a000 {
reset-names = "vde", "mc";
resets = <&tegra_car 61>, <&mc TEGRA114_MC_RESET_VDE>;
iommus = <&mc TEGRA_SWGROUP_VDE>;
power-domains = <&pd_vde>;
operating-points-v2 = <&vde_dvfs_opp_table>;
};
apbmisc@70000800 {
@@ -443,6 +493,7 @@ pwm: pwm@7000a000 {
clocks = <&tegra_car TEGRA114_CLK_PWM>;
resets = <&tegra_car 17>;
reset-names = "pwm";
power-domains = <&pd_core>;
status = "disabled";
};
@@ -533,6 +584,8 @@ spi@7000d400 {
reset-names = "spi";
dmas = <&apbdma 15>, <&apbdma 15>;
dma-names = "rx", "tx";
power-domains = <&pd_core>;
operating-points-v2 = <&sbc1_dvfs_opp_table>;
status = "disabled";
};
@@ -548,6 +601,8 @@ spi@7000d600 {
reset-names = "spi";
dmas = <&apbdma 16>, <&apbdma 16>;
dma-names = "rx", "tx";
power-domains = <&pd_core>;
operating-points-v2 = <&sbc2_dvfs_opp_table>;
status = "disabled";
};
@@ -563,6 +618,8 @@ spi@7000d800 {
reset-names = "spi";
dmas = <&apbdma 17>, <&apbdma 17>;
dma-names = "rx", "tx";
power-domains = <&pd_core>;
operating-points-v2 = <&sbc3_dvfs_opp_table>;
status = "disabled";
};
@@ -578,6 +635,8 @@ spi@7000da00 {
reset-names = "spi";
dmas = <&apbdma 18>, <&apbdma 18>;
dma-names = "rx", "tx";
power-domains = <&pd_core>;
operating-points-v2 = <&sbc4_dvfs_opp_table>;
status = "disabled";
};
@@ -593,6 +652,8 @@ spi@7000dc00 {
reset-names = "spi";
dmas = <&apbdma 27>, <&apbdma 27>;
dma-names = "rx", "tx";
power-domains = <&pd_core>;
operating-points-v2 = <&sbc5_dvfs_opp_table>;
status = "disabled";
};
@@ -608,6 +669,8 @@ spi@7000de00 {
reset-names = "spi";
dmas = <&apbdma 28>, <&apbdma 28>;
dma-names = "rx", "tx";
power-domains = <&pd_core>;
operating-points-v2 = <&sbc6_dvfs_opp_table>;
status = "disabled";
};
@@ -634,6 +697,86 @@ tegra_pmc: pmc@7000e400 {
clocks = <&tegra_car TEGRA114_CLK_PCLK>, <&clk32k_in>;
clock-names = "pclk", "clk32k_in";
#clock-cells = <1>;
pd_core: core-domain {
#power-domain-cells = <0>;
operating-points-v2 = <&core_opp_table>;
};
powergates {
/*
* TODO: Add DIS and DISB domains once DC is able
* to handle them properly. VENC and DISB should
* set DIS as their source power domain due to
* internal dependency.
*/
pd_heg: heg {
clocks = <&tegra_car TEGRA114_CLK_GR2D>,
<&tegra_car TEGRA114_CLK_EPP>;
resets = <&mc TEGRA114_MC_RESET_2D>,
<&mc TEGRA114_MC_RESET_EPP>,
<&tegra_car TEGRA114_CLK_GR2D>,
<&tegra_car TEGRA114_CLK_EPP>;
power-domains = <&pd_core>;
#power-domain-cells = <0>;
};
pd_mpe: mpe {
clocks = <&tegra_car TEGRA114_CLK_MSENC>;
resets = <&mc TEGRA114_MC_RESET_MPE>,
<&tegra_car TEGRA114_CLK_MSENC>;
power-domains = <&pd_core>;
#power-domain-cells = <0>;
};
pd_3d: td {
clocks = <&tegra_car TEGRA114_CLK_GR3D>;
resets = <&mc TEGRA114_MC_RESET_3D>,
<&tegra_car TEGRA114_CLK_GR3D>;
power-domains = <&pd_core>;
#power-domain-cells = <0>;
};
pd_vde: vdec {
clocks = <&tegra_car TEGRA114_CLK_VDE>;
resets = <&mc TEGRA114_MC_RESET_VDE>,
<&tegra_car TEGRA114_CLK_VDE>;
power-domains = <&pd_core>;
#power-domain-cells = <0>;
};
pd_venc: venc {
clocks = <&tegra_car TEGRA114_CLK_ISP>,
<&tegra_car TEGRA114_CLK_VI>,
<&tegra_car TEGRA114_CLK_CSI>;
resets = <&mc TEGRA114_MC_RESET_ISP>,
<&mc TEGRA114_MC_RESET_VI>,
<&tegra_car TEGRA114_CLK_ISP>,
<&tegra_car 20 /* VI */>,
<&tegra_car TEGRA114_CLK_CSI>;
power-domains = <&pd_core>;
#power-domain-cells = <0>;
};
pd_xusbss: xusba {
clocks = <&tegra_car TEGRA114_CLK_XUSB_SS>;
resets = <&tegra_car TEGRA114_CLK_XUSB_SS>;
#power-domain-cells = <0>;
};
pd_xusbdev: xusbb {
clocks = <&tegra_car TEGRA114_CLK_XUSB_DEV>;
resets = <&tegra_car 95>;
#power-domain-cells = <0>;
};
pd_xusbhost: xusbc {
clocks = <&tegra_car TEGRA114_CLK_XUSB_HOST>;
resets = <&tegra_car TEGRA114_CLK_XUSB_HOST>;
#power-domain-cells = <0>;
};
};
};
fuse@7000f800 {
@@ -643,6 +786,7 @@ fuse@7000f800 {
clock-names = "fuse";
resets = <&tegra_car 39>;
reset-names = "fuse";
power-domains = <&pd_core>;
};
mc: memory-controller@70019000 {
@@ -655,6 +799,7 @@ mc: memory-controller@70019000 {
#reset-cells = <1>;
#iommu-cells = <1>;
#interconnect-cells = <1>;
};
emc: external-memory-controller@7001b000 {
@@ -663,8 +808,12 @@ emc: external-memory-controller@7001b000 {
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&tegra_car TEGRA114_CLK_EMC>;
clock-names = "emc";
power-domains = <&pd_core>;
nvidia,memory-controller = <&mc>;
operating-points-v2 = <&emc_icc_dvfs_opp_table>;
#interconnect-cells = <0>;
};
hda@70030000 {
@@ -854,6 +1003,8 @@ mmc@78000000 {
clock-names = "sdhci";
resets = <&tegra_car 14>;
reset-names = "sdhci";
power-domains = <&pd_core>;
operating-points-v2 = <&sdmmc1_dvfs_opp_table>;
status = "disabled";
};
@@ -876,6 +1027,8 @@ mmc@78000400 {
clock-names = "sdhci";
resets = <&tegra_car 69>;
reset-names = "sdhci";
power-domains = <&pd_core>;
operating-points-v2 = <&sdmmc3_dvfs_opp_table>;
status = "disabled";
};
@@ -887,6 +1040,8 @@ mmc@78000600 {
clock-names = "sdhci";
resets = <&tegra_car 15>;
reset-names = "sdhci";
power-domains = <&pd_core>;
operating-points-v2 = <&sdmmc4_dvfs_opp_table>;
status = "disabled";
};
@@ -899,6 +1054,7 @@ usb@7d000000 {
resets = <&tegra_car 22>;
reset-names = "usb";
nvidia,phy = <&phy1>;
power-domains = <&pd_core>;
status = "disabled";
};
@@ -939,6 +1095,7 @@ usb@7d008000 {
resets = <&tegra_car 59>;
reset-names = "usb";
nvidia,phy = <&phy3>;
power-domains = <&pd_core>;
status = "disabled";
};

View File

@@ -14,6 +14,11 @@ chosen {
stdout-path = "serial0:115200n8";
};
firmware {
#address-cells = <1>;
#size-cells = <1>;
};
/*
* Note that recent version of the device tree compiler (starting with
* version 1.4.2) warn about this node containing a reg property, but

View File

@@ -18,6 +18,11 @@ chosen {
stdout-path = "serial0:115200n8";
};
firmware {
#address-cells = <1>;
#size-cells = <1>;
};
memory@80000000 {
reg = <0x0 0x80000000 0x0 0x80000000>;
};

View File

@@ -79,9 +79,11 @@ hdmi@54280000 {
pll-supply = <&hdmi_pll_reg>;
hdmi-supply = <&vdd_hdmi_en>;
nvidia,ddc-i2c-bus = <&hdmi_ddc>;
nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
GPIO_ACTIVE_HIGH>;
port {
hdmi_out: endpoint {
remote-endpoint = <&hdmi_connector_in>;
};
};
};
};
@@ -1017,6 +1019,20 @@ key-volume-up {
};
};
hdmi-connector {
compatible = "hdmi-connector";
type = "d";
hpd-gpios = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
ddc-i2c-bus = <&hdmi_ddc>;
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_out>;
};
};
};
i2cmux {
compatible = "i2c-mux-pinctrl";
#address-cells = <1>;

View File

@@ -2,6 +2,7 @@
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/media/video-interfaces.h>
#include <dt-bindings/power/summit,smb347-charger.h>
#include <dt-bindings/thermal/thermal.h>
@@ -84,6 +85,93 @@ init-mode-hog {
};
};
host1x@50000000 {
vi@54080000 {
status = "okay";
csi@800 {
status = "okay";
avdd-dsi-csi-supply = <&avdd_dsi_csi>;
/* CSI-A */
channel@0 {
reg = <0>;
nvidia,mipi-calibrate = <&csi 0>; /* CSIA pad */
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csia_input: endpoint {
data-lanes = <1 2>;
/* No rear camera */
};
};
port@1 {
reg = <1>;
csia_output: endpoint {
remote-endpoint = <&vi_ppa_input>;
};
};
};
/* CSI-B */
channel@1 {
reg = <1>;
nvidia,mipi-calibrate = <&csi 1>; /* CSIB pad */
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csib_input: endpoint {
data-lanes = <3>;
remote-endpoint = <&front_camera_output>;
};
};
port@1 {
reg = <1>;
csib_output: endpoint {
remote-endpoint = <&vi_ppb_input>;
};
};
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
vi_ppa_input: endpoint {
remote-endpoint = <&csia_output>;
};
};
port@1 {
reg = <1>;
vi_ppb_input: endpoint {
remote-endpoint = <&csib_output>;
};
};
};
};
};
pinmux@70000868 {
pinctrl-names = "default";
pinctrl-0 = <&state_default>;
@@ -890,6 +978,36 @@ light-sensor@1c {
vdd-supply = <&vdd_3v3_sys>;
};
/* Aptina 1/6" HD SOC (MI1040) */
front-camera@48 {
compatible = "aptina,mi1040";
reg = <0x48>;
clocks = <&tegra_car TEGRA30_CLK_CSUS>;
reset-gpios = <&gpio TEGRA_GPIO(O, 0) GPIO_ACTIVE_LOW>;
vddio-supply = <&avdd_cam1>;
vdd-supply = <&vddio_cam>;
vaa-supply = <&avdd_cam1>;
orientation = <0>; /* Front camera */
assigned-clocks = <&tegra_car TEGRA30_CLK_VI_SENSOR>,
<&tegra_car TEGRA30_CLK_CSUS>;
assigned-clock-rates = <24000000>;
assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>,
<&tegra_car TEGRA30_CLK_VI_SENSOR>;
port {
front_camera_output: endpoint {
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
link-frequencies = /bits/ 64 <384000000>;
remote-endpoint = <&csib_input>;
};
};
};
accelerometer@68 {
compatible = "invensense,mpu6050";
reg = <0x68>;
@@ -1203,6 +1321,16 @@ vcc_3v3_ts: regulator-ts {
vin-supply = <&vdd_5v0_sys>;
};
avdd_cam1: regulator-vcam1 {
compatible = "regulator-fixed";
regulator-name = "avdd_cam1";
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
gpio = <&gpio TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_5v0_sys>;
};
sound {
compatible = "nvidia,tegra-audio-rt5640-grouper",
"nvidia,tegra-audio-rt5640";

View File

@@ -135,7 +135,7 @@ ldo4 {
regulator-boot-on;
};
ldo5 {
vddio_cam: ldo5 {
regulator-name = "vdd_camera";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
@@ -149,7 +149,7 @@ ldo6 {
regulator-boot-on;
};
ldo7 {
avdd_dsi_csi: ldo7 {
regulator-name = "avdd_dsi_csi";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;

View File

@@ -92,13 +92,13 @@ ldo4 {
regulator-always-on;
};
ldo5 {
vddio_cam: ldo5 {
regulator-name = "vddio_sdmmc,avdd_vdac";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ldo6 {
avdd_dsi_csi: ldo6 {
regulator-name = "avdd_dsi_csi,pwrdet_mipi";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;

View File

@@ -23,6 +23,7 @@ aliases {
rtc0 = &pmic;
rtc1 = "/rtc@7000e000";
display0 = &lcd;
display1 = &hdmi;
serial1 = &uartc; /* Bluetooth */
@@ -55,6 +56,37 @@ linux,cma@80000000 {
};
host1x@50000000 {
vi@54080000 {
status = "okay";
csi@800 {
status = "okay";
avdd-dsi-csi-supply = <&avdd_dsi_csi>;
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
vi_ppa_input: endpoint {
/* Link to the rear camera */
};
};
port@1 {
reg = <1>;
vi_ppb_input: endpoint {
/* Link to the front camera */
};
};
};
};
hdmi: hdmi@54280000 {
status = "okay";
@@ -68,6 +100,22 @@ hdmi_out: endpoint {
};
};
};
lcd: dsi@54300000 {
status = "okay";
avdd-dsi-csi-supply = <&avdd_dsi_csi>;
panel@0 {
compatible = "hydis,hv101hd1";
reg = <0>;
vdd-supply = <&vdd_panel>;
vio-supply = <&vio_panel>;
backlight = <&backlight>;
};
};
};
vde@6001a000 {
@@ -1043,9 +1091,9 @@ imu@69 {
vdd-supply = <&vdd_3v3_sys>;
vddio-supply = <&vdd_1v8_vio>;
mount-matrix = "0", "-1", "0",
"-1", "0", "0",
"0", "0", "-1";
mount-matrix = "0", "1", "0",
"1", "0", "0",
"0", "0", "1";
/* External I2C interface */
i2c-gate {
@@ -1123,11 +1171,10 @@ pmic-sleep-hog {
};
regulators {
vdd_lcd: vdd1 {
vio_panel: vdd1 {
regulator-name = "vddio_ddr_1v2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-boot-on;
ti,regulator-ext-sleep-control = <8>;
};
@@ -2145,7 +2192,7 @@ backlight: backlight {
compatible = "pwm-backlight";
enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
power-supply = <&vdd_5v0_bl>;
power-supply = <&vdd_5v0_sys>;
pwms = <&pwm 0 71428>;
brightness-levels = <1 255>;
@@ -2375,15 +2422,15 @@ vdd_3v3_als: regulator-als {
vin-supply = <&vdd_3v3_sys>;
};
vdd_5v0_bl: regulator-bl {
vdd_panel: regulator-panel {
compatible = "regulator-fixed";
regulator-name = "vdd_5v0_bl";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-name = "vdd_panel";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
gpio = <&gpio TEGRA_GPIO(H, 0) GPIO_ACTIVE_HIGH>;
gpio = <&gpio TEGRA_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_5v0_bat>;
vin-supply = <&vdd_3v3_sys>;
};
hdmi_5v0_sys: regulator-hdmi {

View File

@@ -2,6 +2,7 @@
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/media/video-interfaces.h>
#include <dt-bindings/thermal/thermal.h>
#include "tegra30.dtsi"
@@ -73,6 +74,91 @@ trustzone@bfe00000 {
};
host1x@50000000 {
vi@54080000 {
status = "okay";
csi@800 {
status = "okay";
avdd-dsi-csi-supply = <&avdd_dsi_csi>;
/* CSI-A */
channel@0 {
reg = <0>;
nvidia,mipi-calibrate = <&csi 0>; /* CSIA pad */
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csia_input: endpoint {
data-lanes = <1 2>;
/* Add rear camera */
};
};
port@1 {
reg = <1>;
csia_output: endpoint {
remote-endpoint = <&vi_ppa_input>;
};
};
};
/* CSI-B */
channel@1 {
reg = <1>;
nvidia,mipi-calibrate = <&csi 1>; /* CSIB pad */
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csib_input: endpoint {
data-lanes = <3>;
remote-endpoint = <&front_camera_output>;
};
};
port@1 {
reg = <1>;
csib_output: endpoint {
remote-endpoint = <&vi_ppb_input>;
};
};
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
vi_ppa_input: endpoint {
remote-endpoint = <&csia_output>;
};
};
port@1 {
reg = <1>;
vi_ppb_input: endpoint {
remote-endpoint = <&csib_output>;
};
};
};
};
hdmi: hdmi@54280000 {
status = "okay";
@@ -80,8 +166,11 @@ hdmi: hdmi@54280000 {
pll-supply = <&vdd_1v8_vio>;
vdd-supply = <&vdd_3v3_sys>;
nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
nvidia,ddc-i2c-bus = <&hdmi_ddc>;
port {
hdmi_out: endpoint {
remote-endpoint = <&hdmi_connector_in>;
};
};
};
};
@@ -1160,6 +1249,36 @@ light-sensor@1c {
vdd-supply = <&vdd_3v3_sys>;
};
/* Aptina 1/6" HD SOC (MI1040) */
front-camera@48 {
compatible = "aptina,mi1040";
reg = <0x48>;
clocks = <&tegra_car TEGRA30_CLK_CSUS>;
reset-gpios = <&gpio TEGRA_GPIO(O, 0) GPIO_ACTIVE_LOW>;
vddio-supply = <&vdd_1v8_cam>;
vdd-supply = <&vdd_1v8_cam>;
vaa-supply = <&avdd_2v85_fcam>;
orientation = <0>; /* Front camera */
assigned-clocks = <&tegra_car TEGRA30_CLK_VI_SENSOR>,
<&tegra_car TEGRA30_CLK_CSUS>;
assigned-clock-rates = <24000000>;
assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>,
<&tegra_car TEGRA30_CLK_VI_SENSOR>;
port {
front_camera_output: endpoint {
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
link-frequencies = /bits/ 64 <384000000>;
remote-endpoint = <&csib_input>;
};
};
};
gyroscope@68 {
compatible = "invensense,mpu3050";
reg = <0x68>;
@@ -1297,7 +1416,7 @@ ldo4 {
/* LDO5 is not used by Transformers */
ldo6 {
avdd_dsi_csi: ldo6 {
regulator-name = "avdd_dsi_csi,pwrdet_mipi";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
@@ -1572,6 +1691,20 @@ key-volume-up {
};
};
hdmi-connector {
compatible = "hdmi-connector";
type = "d";
hpd-gpios = <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
ddc-i2c-bus = <&hdmi_ddc>;
port {
hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_out>;
};
};
};
vdd_5v0_bat: regulator-bat {
compatible = "regulator-fixed";
regulator-name = "vdd_ac_bat";
@@ -1672,6 +1805,26 @@ hdmi_5v0_sys: regulator-hdmi {
vin-supply = <&vdd_5v0_sys>;
};
vdd_1v8_cam: regulator-viocam {
compatible = "regulator-fixed";
regulator-name = "vdd_1v8_cam";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_1v8_vio>;
};
avdd_2v85_fcam: regulator-avcam-front {
compatible = "regulator-fixed";
regulator-name = "vdd_2v85_fcam";
regulator-min-microvolt = <2850000>;
regulator-max-microvolt = <2850000>;
gpio = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_HIGH>;
enable-active-high;
vin-supply = <&vdd_3v3_sys>;
};
sound {
nvidia,i2s-controller = <&tegra_i2s1>;

View File

@@ -12,6 +12,18 @@ aliases {
mmc2 = &sdmmc1; /* WiFi */
};
host1x@50000000 {
vi@54080000 {
csi@800 {
/delete-node/ channel@1;
};
ports {
/delete-node/ port@1;
};
};
};
pinmux@70000868 {
pinctrl-names = "default";
pinctrl-0 = <&state_default>;
@@ -116,6 +128,22 @@ rmi4-f11@11 {
};
};
i2c@7000c500 {
camera-pmic@7d {
vt_1v2_front: ldo1 {
regulator-name = "vt_1v2_dig";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
vt_2v7_front: ldo2 {
regulator-name = "vt_2v7_vana";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2700000>;
};
};
};
spi@7000dc00 {
dsi@2 {
/*
@@ -509,4 +537,17 @@ sound {
nvidia,int-mic-en-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
};
thermal-zones {
cpu-thermal {
trips {
cpu-alert {
/* throttle at 60C until temperature drops to 59.8C */
temperature = <60000>;
hysteresis = <200>;
type = "passive";
};
};
};
};
};

View File

@@ -118,6 +118,52 @@ rmi4-f1a@1a {
};
};
i2c@7000c500 {
/* Aptina 1/6" HD SOC (MT9M114) */
front-camera@48 {
compatible = "onnn,mt9m114";
reg = <0x48>;
clocks = <&tegra_car TEGRA30_CLK_CSUS>;
reset-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_LOW>;
vddio-supply = <&vio_1v8_front>;
vdd-supply = <&vt_1v8_front>;
vaa-supply = <&vt_2v8_front>;
orientation = <0>; /* Front camera */
assigned-clocks = <&tegra_car TEGRA30_CLK_VI_SENSOR>,
<&tegra_car TEGRA30_CLK_CSUS>;
assigned-clock-rates = <24000000>;
assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>,
<&tegra_car TEGRA30_CLK_VI_SENSOR>;
port {
front_camera_output: endpoint {
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
link-frequencies = /bits/ 64 <384000000>;
remote-endpoint = <&csib_input>;
};
};
};
camera-pmic@7d {
vt_1v8_front: ldo1 {
regulator-name = "vt_1v8_dig";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vt_2v8_front: ldo2 {
regulator-name = "vt_2v8_vana";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
};
};
};
spi@7000dc00 {
dsi@2 {
/*

View File

@@ -3,6 +3,7 @@
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/media/video-interfaces.h>
#include <dt-bindings/mfd/max77620.h>
#include <dt-bindings/thermal/thermal.h>
@@ -74,6 +75,91 @@ trustzone@bfe00000 {
};
host1x@50000000 {
vi@54080000 {
status = "okay";
csi@800 {
status = "okay";
avdd-dsi-csi-supply = <&avdd_dsi_csi>;
/* CSI-A */
channel@0 {
reg = <0>;
nvidia,mipi-calibrate = <&csi 0>; /* CSIA pad */
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csia_input: endpoint {
data-lanes = <1 2>;
remote-endpoint = <&rear_camera_output>;
};
};
port@1 {
reg = <1>;
csia_output: endpoint {
remote-endpoint = <&vi_ppa_input>;
};
};
};
/* CSI-B */
channel@1 {
reg = <1>;
nvidia,mipi-calibrate = <&csi 1>; /* CSIB pad */
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
csib_input: endpoint {
data-lanes = <3>;
remote-endpoint = <&front_camera_output>;
};
};
port@1 {
reg = <1>;
csib_output: endpoint {
remote-endpoint = <&vi_ppb_input>;
};
};
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
vi_ppa_input: endpoint {
remote-endpoint = <&csia_output>;
};
};
port@1 {
reg = <1>;
vi_ppb_input: endpoint {
remote-endpoint = <&csib_output>;
};
};
};
};
lcd: dc@54200000 {
rgb {
status = "okay";
@@ -1112,29 +1198,68 @@ dw9714: coil@c {
compatible = "dongwoon,dw9714";
reg = <0x0c>;
enable-gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_HIGH>;
powerdown-gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>;
vcc-supply = <&vcc_focuser>;
};
/* SONY IMX111 1/4" BSI */
rear-camera@10 {
compatible = "sony,imx111";
reg = <0x10>;
clocks = <&tegra_car TEGRA30_CLK_CSUS>;
reset-gpios = <&gpio TEGRA_GPIO(K, 4) GPIO_ACTIVE_LOW>;
iovdd-supply = <&vio_1v8_rear>;
dvdd-supply = <&vdd_1v2_rear>;
avdd-supply = <&vdd_2v7_rear>;
orientation = <1>; /* Rear camera */
rotation = <90>;
nvmem = <&m24c08>;
lens-focus = <&dw9714>;
assigned-clocks = <&tegra_car TEGRA30_CLK_VI_SENSOR>,
<&tegra_car TEGRA30_CLK_CSUS>;
assigned-clock-rates = <24000000>;
assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_P>,
<&tegra_car TEGRA30_CLK_VI_SENSOR>;
port {
rear_camera_output: endpoint {
data-lanes = <1 2>;
bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
link-frequencies = /bits/ 64 <542400000>;
remote-endpoint = <&csia_input>;
};
};
};
/* rear camera sensor eeprom m24c08 from ST */
m24c08: eeprom@50 {
compatible = "atmel,24c08";
reg = <0x50>;
/* if high then WP is on, if low then off */
wp-gpios = <&gpio TEGRA_GPIO(K, 3) GPIO_ACTIVE_HIGH>;
/* it is not OTP but writing is unwanted */
read-only;
pagesize = <16>;
num-addresses = <1>;
vcc-supply = <&vio_1v8_rear>;
};
camera-pmic@7d {
compatible = "ti,lp8720";
reg = <0x7d>;
enable-gpios = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
vt_1v2_front: ldo1 {
regulator-name = "vt_1v2_dig";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
};
vt_2v7_front: ldo2 {
regulator-name = "vt_2v7_vana";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <2700000>;
};
vdd_2v7_rear: ldo3 {
regulator-name = "8m_2v7_vana";
regulator-min-microvolt = <2700000>;
@@ -1172,7 +1297,8 @@ pwr_i2c: i2c@7000d000 {
pmic: max77663@1c {
compatible = "maxim,max77663";
reg = <0x1c>;
reg = <0x1c>, <0x48>;
reg-names = "pmic", "rtc";
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
#interrupt-cells = <2>;
@@ -1348,10 +1474,11 @@ vdd_1v2_mhl: ldo7 {
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
};
ldo8 {
avdd_dsi_csi: ldo8 {
regulator-name = "avdd_dsi_csi";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-boot-on;
maxim,active-fps-source = <MAX77620_FPS_SRC_NONE>;
};

View File

@@ -376,6 +376,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ul-tx6ul-0011.dtb \
imx6ul-tx6ul-mainboard.dtb \
imx6ul-var-som-concerto.dtb \
imx6ul-var-som-concerto-full.dtb \
imx6ull-14x14-evk.dtb \
imx6ull-colibri-aster.dtb \
imx6ull-colibri-emmc-aster.dtb \
@@ -414,6 +415,8 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ull-tqma6ull2-mba6ulx.dtb \
imx6ull-tqma6ull2l-mba6ulx.dtb \
imx6ull-uti260b.dtb \
imx6ull-var-som-concerto.dtb \
imx6ull-var-som-concerto-full.dtb \
imx6ulz-14x14-evk.dtb \
imx6ulz-bsh-smm-m2.dtb
dtb-$(CONFIG_SOC_IMX7D) += \

View File

@@ -618,7 +618,6 @@ nfc: nand-controller@bb000000 {
compatible = "fsl,imx25-nand";
reg = <0xbb000000 0x2000>;
clocks = <&clks 50>;
clock-names = "";
interrupts = <33>;
status = "disabled";
};

View File

@@ -369,7 +369,6 @@ nfc: nand-controller@bb000000 {
compatible = "fsl,imx35-nand", "fsl,imx25-nand";
reg = <0xbb000000 0x2000>;
clocks = <&clks 29>;
clock-names = "";
interrupts = <33>;
status = "disabled";
};

View File

@@ -126,6 +126,7 @@ dvi_connector_in: endpoint {
dvi-encoder {
compatible = "ti,tfp410";
ti,deskew = <0>;
ports {
#address-cells = <1>;

View File

@@ -155,7 +155,7 @@ syscon: syscon@10000 {
reg = <0x10000 0x3d>;
reg-io-width = <2>;
wdt {
watchdog {
compatible = "technologic,ts4800-wdt";
syscon = <&syscon 0xe>;
};

View File

@@ -60,6 +60,7 @@ dvi_connector_in: endpoint {
dvi-converter {
compatible = "ti,tfp410";
ti,deskew = <0>;
ports {
#address-cells = <1>;

View File

@@ -84,6 +84,7 @@ panel {
pinctrl-0 = <&pinctrl_display_gpio>;
pinctrl-names = "default";
enable-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>;
power-supply = <&reg_3p2v>;
port {
panel_in: endpoint {
@@ -98,6 +99,13 @@ beeper {
gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
reg_usbh1_vbus: regulator-usbh1-vbus {
compatible = "regulator-fixed";
regulator-name = "vbus";
@@ -240,7 +248,7 @@ &i2c1 {
status = "okay";
touchscreen@38 {
compatible = "edt,edt-ft5x06";
compatible = "edt,edt-ft5206";
reg = <0x38>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_edt_ft5x06>;
@@ -259,6 +267,7 @@ eeprom@50 {
dac@60 {
compatible = "microchip,mcp4725";
reg = <0x60>;
vdd-supply = <&reg_3v3>;
};
};

View File

@@ -258,6 +258,7 @@ usbphy2: usbphy-2 {
clock-names = "main_clk";
clock-frequency = <24000000>;
clocks = <&clks IMX5_CLK_CKO2>;
#phy-cells = <0>;
assigned-clocks = <&clks IMX5_CLK_CKO2_SEL>, <&clks IMX5_CLK_OSC>;
assigned-clock-parents = <&clks IMX5_CLK_OSC>;
};
@@ -270,6 +271,7 @@ usbphy3: usbphy-3 {
clock-frequency = <24000000>;
clocks = <&clks IMX5_CLK_CKO2>;
#phy-cells = <0>;
assigned-clocks = <&clks IMX5_CLK_CKO2_SEL>, <&clks IMX5_CLK_OSC>;
assigned-clock-parents = <&clks IMX5_CLK_OSC>;
};

View File

@@ -91,6 +91,8 @@ panel_dpi: panel {
pinctrl-0 = <&pinctrl_display_power>;
backlight = <&backlight_parallel>;
enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
dvdd-supply = <&reg_3p2v>;
avdd-supply = <&reg_5v>;
port {
panel_in: endpoint {
@@ -107,6 +109,14 @@ reg_3p2v: regulator-3p2v {
regulator-always-on;
};
reg_5v: regulator-5v {
compatible = "regulator-fixed";
regulator-name = "5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
};
reg_usb_vbus: regulator-usb-vbus {
compatible = "regulator-fixed";
regulator-name = "usb_vbus";

View File

@@ -10,6 +10,7 @@
/ {
panel: panel-rgb {
compatible = "powertip,ph800480t013-idf02";
power-supply = <&reg_5v>;
port {
panel_rgb_in: endpoint {

View File

@@ -29,6 +29,13 @@ memory@70000000 {
reg = <0x70000000 0x20000000>;
};
reg_5v: regulator-5v {
compatible = "regulator-fixed";
regulator-name = "5v";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
reg_usb1_vbus: regulator-usb-vbus {
compatible = "regulator-fixed";
regulator-name = "usb_vbus";

View File

@@ -5,6 +5,7 @@
/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/media/video-interfaces.h>
#include "imx53.dtsi"
/ {
@@ -314,6 +315,7 @@ camera: ov5642@3c {
port {
ov5642_to_ipu_csi0: endpoint {
remote-endpoint = <&ipu_csi0_from_parallel_sensor>;
bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
bus-width = <8>;
hsync-active = <1>;
vsync-active = <1>;

View File

@@ -201,7 +201,7 @@ sgtl5000: codec@a {
};
polytouch: edt-ft5x06@38 {
compatible = "edt,edt-ft5x06";
compatible = "edt,edt-ft5206";
reg = <0x38>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_edt_ft5x06_1>;

View File

@@ -32,12 +32,10 @@ adv7180_to_ipu1_csi1_mux: endpoint {
};
&ipu1_csi1_from_ipu1_csi1_mux {
bus-width = <8>;
};
&ipu1_csi1_mux_from_parallel_sensor {
remote-endpoint = <&adv7180_to_ipu1_csi1_mux>;
bus-width = <8>;
};
&ipu1_csi1 {

View File

@@ -32,12 +32,10 @@ adv7180_to_ipu1_csi1_mux: endpoint {
};
&ipu1_csi1_from_ipu1_csi1_mux {
bus-width = <8>;
};
&ipu1_csi1_mux_from_parallel_sensor {
remote-endpoint = <&adv7180_to_ipu1_csi1_mux>;
bus-width = <8>;
};
&ipu1_csi1 {

View File

@@ -32,12 +32,10 @@ adv7180_to_ipu1_csi1_mux: endpoint {
};
&ipu1_csi1_from_ipu1_csi1_mux {
bus-width = <8>;
};
&ipu1_csi1_mux_from_parallel_sensor {
remote-endpoint = <&adv7180_to_ipu1_csi1_mux>;
bus-width = <8>;
};
&ipu1_csi1 {

View File

@@ -208,7 +208,7 @@ mdio {
#address-cells = <1>;
#size-cells = <0>;
ethernet_phy0: ethernet-phy@0 {
compatible = "marvell,88E1510";
compatible = "ethernet-phy-ieee802.3-c22";
device_type = "ethernet-phy";
/* Set LED0 control: */
/* On - Link, Blink - Activity, Off - No Link */

View File

@@ -32,12 +32,10 @@ adv7180_to_ipu2_csi1_mux: endpoint {
};
&ipu2_csi1_from_ipu2_csi1_mux {
bus-width = <8>;
};
&ipu2_csi1_mux_from_parallel_sensor {
remote-endpoint = <&adv7180_to_ipu2_csi1_mux>;
bus-width = <8>;
};
&ipu2_csi1 {

View File

@@ -32,12 +32,10 @@ adv7180_to_ipu2_csi1_mux: endpoint {
};
&ipu2_csi1_from_ipu2_csi1_mux {
bus-width = <8>;
};
&ipu2_csi1_mux_from_parallel_sensor {
remote-endpoint = <&adv7180_to_ipu2_csi1_mux>;
bus-width = <8>;
};
&ipu2_csi1 {

View File

@@ -90,12 +90,10 @@ tda1997x_to_ipu1_csi0_mux: endpoint {
};
&ipu1_csi0_from_ipu1_csi0_mux {
bus-width = <16>;
};
&ipu1_csi0_mux_from_parallel_sensor {
remote-endpoint = <&tda1997x_to_ipu1_csi0_mux>;
bus-width = <16>;
};
&ipu1_csi0 {
@@ -104,12 +102,10 @@ &ipu1_csi0 {
};
&ipu2_csi1_from_ipu2_csi1_mux {
bus-width = <8>;
};
&ipu2_csi1_mux_from_parallel_sensor {
remote-endpoint = <&adv7180_to_ipu2_csi1_mux>;
bus-width = <8>;
};
&ipu2_csi1 {

View File

@@ -109,6 +109,7 @@ led-heartbeat {
panel: panel {
compatible = "innolux,n133hse-ea1";
backlight = <&backlight>;
power-supply = <&reg_lvds_lcd>;
};
reg_2p5v: regulator-2p5v {

View File

@@ -61,6 +61,7 @@ aliases {
encoder {
compatible = "ti,tfp410";
ti,deskew = <0>;
ports {
#address-cells = <1>;
@@ -323,19 +324,10 @@ &ipu1_di0_disp0 {
remote-endpoint = <&parallel_display_in>;
};
&pcie {
pcie@0,0 {
reg = <0x000000 0 0 0 0>;
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
bus-range = <0x00 0xff>;
ranges;
/* non-removable i211 ethernet card */
eth1: ethernet@0,0 {
reg = <0x010000 0 0 0 0>;
};
&pcie_port0 {
/* non-removable i211 ethernet card */
eth1: ethernet@0,0 {
reg = <0x010000 0 0 0 0>;
};
};

Some files were not shown because too many files have changed in this diff Show More