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

Pull SoC devicetree updates from Arnd Bergmann:
 "There are a few new variants of existing chips:

   - mt6572 is an older mobile phone chip from mediatek that was
     extremely popular a decade ago but never got upstreamed until now

   - exynos2200 is a recent high-end mobile phone chip used in a few
     Samsung phones like the Galaxy S22

   - Renesas R-Car V4M-7 (R8A779H2) is an updated version of R-Car V4M
     (R8A779H0) and used in automotive applications

   - Tegra264 is a new chip from NVIDIA, but support is fairly minimal
     for now, and not much information is public about it

  There are five more chips in a separate branch, as those are new chip
  families that I merged along with the necessary infrastructure.

  New board support is not that exciting, with a total of 33 newly added
  machines here:

   - Evaluation platforms for the chips above, plus TI am62d2 and Sophgo
     sg2042

   - Six 32-bit industrial boards based on stm32, imx6 and am33 chips,
     plus eight 64-bit rockchips rk33xx/rk35xx, am62d2, t527, imx8 and
     imx95

   - Two newly added ASPEED BMC based motherboards, and one that got
     removed

   - Phones and Tablets based on 32-bit mt6572, tegra30 and 64-bit
     msm8976 SoCs

   - Three Laptops based on Mediatek mt8186 and Qualcomm Snapdragon X1

   - A set-top box based on Amlogic meson-gxm

  Updates for existing machines are spread over all the above families.
  One notable change here is support for the RP1 I/O chip used in
  Raspberry Pi 5"

* tag 'soc-dt-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (606 commits)
  riscv: dts: sophgo: fix mdio node name for CV180X
  riscv: dts: sophgo: sophgo-srd3-10: reserve uart0 device
  riscv: dts: sophgo: add Sophgo SG2042_EVB_V2.0 board device tree
  riscv: dts: sophgo: add Sophgo SG2042_EVB_V1.X board device tree
  dt-bindings: riscv: add Sophgo SG2042_EVB_V1.X/V2.0 bindings
  riscv: dts: sophgo: add ethernet GMAC device for sg2042
  riscv: dts: sophgo: Enable ethernet device for Huashan Pi
  riscv: dts: sophgo: Add mdio multiplexer device for cv18xx
  riscv: dts: sophgo: Add ethernet device for cv18xx
  riscv: dts: sophgo: sg2044: add pmu configuration
  riscv: dts: sophgo: sg2044: add ziccrse extension
  riscv: dts: sophgo: add zfh for sg2042
  riscv: dts: sophgo: add ziccrse for sg2042
  riscv: dts: sophgo: Add xtheadvector to the sg2042 devicetree
  riscv: dts: sophgo: sg2044: add PCIe device support for SG2044
  riscv: dts: sophgo: sg2044: add MSI device support for SG2044
  riscv: dts: sophgo: add reset configuration for Sophgo CV1800 series SoC
  riscv: dts: sophgo: add reset generator for Sophgo CV1800 series SoC
  dt-bindings: soc: sophgo: Move SoCs/boards from riscv into soc, add SG2000
  riscv: dts: sophgo: sg2044: Add missing riscv,cbop-block-size property
  ...
This commit is contained in:
Linus Torvalds
2025-07-29 11:04:52 -07:00
592 changed files with 42519 additions and 7512 deletions

View File

@@ -135,6 +135,7 @@ properties:
- minix,neo-u9h
- nexbox,a1
- tronsmart,vega-s96
- ugoos,am3
- videostrong,gxm-kiii-pro
- wetek,core2
- const: amlogic,s912

View File

@@ -87,6 +87,7 @@ properties:
- facebook,greatlakes-bmc
- facebook,harma-bmc
- facebook,minerva-cmc
- facebook,santabarbara-bmc
- facebook,yosemite4-bmc
- ibm,blueridge-bmc
- ibm,everest-bmc
@@ -98,6 +99,7 @@ properties:
- inventec,starscream-bmc
- inventec,transformer-bmc
- jabil,rbp-bmc
- nvidia,gb200nvl-bmc
- qcom,dc-scm-v1-bmc
- quanta,s6q-bmc
- ufispace,ncplite-bmc

View File

@@ -89,6 +89,7 @@ properties:
- description: i.MX28 based Boards
items:
- enum:
- amarula,imx28-rmm
- armadeus,imx28-apf28 # APF28 SoM
- bluegiga,apx4devkit # Bluegiga APx4 SoM on dev board
- crystalfontz,cfa10036 # Crystalfontz CFA-10036 SoM
@@ -769,6 +770,15 @@ properties:
- const: dh,imx6ull-dhcor-som
- const: fsl,imx6ull
- description: i.MX6ULL Engicam MicroGEA SoM based boards
items:
- enum:
- engicam,microgea-imx6ull-bmm # i.MX6ULL Engicam MicroGEA BMM Board
- engicam,microgea-imx6ull-gtw # i.MX6ULL Engicam MicroGEA GTW Board
- engicam,microgea-imx6ull-rmm # i.MX6ULL Engicam MicroGEA RMM Board
- const: engicam,microgea-imx6ull # i.MX6ULL Engicam MicroGEA SoM
- const: fsl,imx6ull
- description: i.MX6ULL PHYTEC phyBOARD-Segin
items:
- enum:
@@ -1095,6 +1105,7 @@ properties:
- gateworks,imx8mp-gw74xx # i.MX8MP Gateworks Board
- gateworks,imx8mp-gw75xx-2x # i.MX8MP Gateworks Board
- gateworks,imx8mp-gw82xx-2x # i.MX8MP Gateworks Board
- gocontroll,moduline-display # GOcontroll Moduline Display controller
- skov,imx8mp-skov-basic # SKOV i.MX8MP baseboard without frontplate
- skov,imx8mp-skov-revb-hdmi # SKOV i.MX8MP climate control without panel
- skov,imx8mp-skov-revb-lt6 # SKOV i.MX8MP climate control with 7” panel
@@ -1395,6 +1406,13 @@ properties:
- fsl,imx95-19x19-evk # i.MX95 19x19 EVK Board
- const: fsl,imx95
- description: PHYTEC i.MX 95 FPSC based Boards
items:
- enum:
- phytec,imx95-libra-rdk-fpsc # Libra-i.MX 95 FPSC
- const: phytec,imx95-phycore-fpsc # phyCORE-i.MX 95 FPSC
- const: fsl,imx95
- description: i.MXRT1050 based Boards
items:
- enum:

View File

@@ -27,6 +27,11 @@ properties:
- enum:
- mediatek,mt2712-evb
- const: mediatek,mt2712
- items:
- enum:
- jty,d101
- lenovo,a369i
- const: mediatek,mt6572
- items:
- enum:
- mediatek,mt6580-evbp1
@@ -302,6 +307,10 @@ properties:
- const: google,steelix-sku196608
- const: google,steelix
- const: mediatek,mt8186
- description: Google Squirtle (Acer Chromebook Spin 311 (R724T)
items:
- const: google,squirtle
- const: mediatek,mt8186
- description: Google Starmie (ASUS Chromebook Enterprise CM30 (CM3001))
items:
- const: google,starmie-sku0
@@ -350,9 +359,6 @@ properties:
- const: mediatek,mt8186
- description: Google Voltorb (Acer Chromebook 311 C723/C732T)
items:
- enum:
- google,voltorb-sku589824
- google,voltorb-sku589825
- const: google,voltorb
- const: mediatek,mt8186
- items:

View File

@@ -209,6 +209,7 @@ properties:
- samsung,hlte
- sony,xperia-amami
- sony,xperia-honami
- sony,xperia-togari
- const: qcom,msm8974
- items:
@@ -230,6 +231,11 @@ properties:
- const: qcom,msm8974pro
- const: qcom,msm8974
- items:
- enum:
- longcheer,l9360
- const: qcom,msm8976
- items:
- enum:
- acer,a1-724

View File

@@ -258,6 +258,11 @@ properties:
- const: firefly,rk3566-roc-pc
- const: rockchip,rk3566
- description: Firefly Station M3
items:
- const: firefly,rk3588s-roc-pc
- const: rockchip,rk3588s
- description: Firefly Station P2
items:
- const: firefly,rk3568-roc-pc
@@ -295,6 +300,12 @@ properties:
- friendlyarm,nanopi-r4s-enterprise
- const: rockchip,rk3399
- description: FriendlyElec NanoPi M5 series boards
items:
- enum:
- friendlyarm,nanopi-m5
- const: rockchip,rk3576
- description: FriendlyElec NanoPi R5 series boards
items:
- enum:
@@ -715,6 +726,13 @@ properties:
- const: lckfb,tspi-rk3566
- const: rockchip,rk3566
- description: Luckfox Core3576 Module based boards
items:
- enum:
- luckfox,omni3576
- const: luckfox,core3576
- const: rockchip,rk3576
- description: Lunzn FastRhino R66S / R68S
items:
- enum:
@@ -961,6 +979,11 @@ properties:
- const: radxa,rock-s0
- const: rockchip,rk3308
- description: Radxa ROCK 5T
items:
- const: radxa,rock-5t
- const: rockchip,rk3588
- description: Radxa ZERO 3W/3E
items:
- enum:
@@ -1109,6 +1132,11 @@ properties:
- const: rockchip,rk3588-toybrick-x0
- const: rockchip,rk3588
- description: Sakura Pi RK3308B
items:
- const: sakurapi,rk3308-sakurapi-rk3308b
- const: rockchip,rk3308
- description: Sinovoip RK3308 Banana Pi P2 Pro
items:
- const: sinovoip,rk3308-bpi-p2pro

View File

@@ -25,6 +25,7 @@ select:
- rockchip,rk3288-pmu
- rockchip,rk3368-pmu
- rockchip,rk3399-pmu
- rockchip,rk3528-pmu
- rockchip,rk3562-pmu
- rockchip,rk3568-pmu
- rockchip,rk3576-pmu
@@ -44,6 +45,7 @@ properties:
- rockchip,rk3288-pmu
- rockchip,rk3368-pmu
- rockchip,rk3399-pmu
- rockchip,rk3528-pmu
- rockchip,rk3562-pmu
- rockchip,rk3568-pmu
- rockchip,rk3576-pmu

View File

@@ -45,6 +45,12 @@ properties:
- const: samsung,aries
- const: samsung,s5pv210
- description: Exynos2200 based boards
items:
- enum:
- samsung,g0s # Samsung Galaxy S22+ (SM-S906B)
- const: samsung,exynos2200
- description: Exynos3250 based boards
items:
- enum:

View File

@@ -121,6 +121,7 @@ properties:
- st,stm32mp157a-dk1-scmi
- st,stm32mp157c-dk2
- st,stm32mp157c-dk2-scmi
- st,stm32mp157f-dk2
- const: st,stm32mp157
- items:

View File

@@ -341,15 +341,11 @@ properties:
- const: allwinner,i12-tvbox
- const: allwinner,sun7i-a20
- description: ICnova A20 ADB4006
- description: ICnova A20
items:
- const: incircuit,icnova-a20-adb4006
- const: incircuit,icnova-a20
- const: allwinner,sun7i-a20
- description: ICNova A20 SWAC
items:
- const: incircuit,icnova-a20-swac
- enum:
- incircuit,icnova-a20-adb4006
- incircuit,icnova-a20-swac
- const: incircuit,icnova-a20
- const: allwinner,sun7i-a20
@@ -760,21 +756,12 @@ properties:
- const: pine64,pinebook
- const: allwinner,sun50i-a64
- description: Pine64 PinePhone Developer Batch (1.0)
- description: Pine64 PinePhone
items:
- const: pine64,pinephone-1.0
- const: pine64,pinephone
- const: allwinner,sun50i-a64
- description: Pine64 PinePhone Braveheart (1.1)
items:
- const: pine64,pinephone-1.1
- const: pine64,pinephone
- const: allwinner,sun50i-a64
- description: Pine64 PinePhone (1.2)
items:
- const: pine64,pinephone-1.2
- enum:
- pine64,pinephone-1.0 # Developer Batch (1.0)
- pine64,pinephone-1.1 # Braveheart (1.1)
- pine64,pinephone-1.2
- const: pine64,pinephone
- const: allwinner,sun50i-a64
@@ -996,6 +983,11 @@ properties:
- const: xunlong,orangepi-3
- const: allwinner,sun50i-h6
- description: Xunlong OrangePi 4A
items:
- const: xunlong,orangepi-4a
- const: allwinner,sun55i-t527
- description: Xunlong OrangePi Lite
items:
- const: xunlong,orangepi-lite

View File

@@ -52,6 +52,10 @@ properties:
- nvidia,cardhu-a04
- const: nvidia,cardhu
- const: nvidia,tegra30
- description: ASUS Portable AiO P1801-T
items:
- const: asus,p1801-t
- const: nvidia,tegra30
- description: ASUS Transformers Device family
items:
- enum:
@@ -61,6 +65,10 @@ properties:
- asus,tf300tl
- asus,tf700t
- const: nvidia,tegra30
- description: Asus VivoTab RT
items:
- const: asus,tf600t
- const: nvidia,tegra30
- description: LG Optimus 4X P880
items:
- const: lg,p880
@@ -242,5 +250,10 @@ properties:
- const: nvidia,p3768-0000+p3767-0005
- const: nvidia,p3767-0005
- const: nvidia,tegra234
- description: NVIDIA P3971-0089+P3834-0008 Engineering Reference Platform
items:
- const: nvidia,p3971-0089+p3834-0008
- const: nvidia,p3834-0008
- const: nvidia,tegra264
additionalProperties: true

View File

@@ -16,6 +16,7 @@ properties:
- nvidia,tegra186-pmc
- nvidia,tegra194-pmc
- nvidia,tegra234-pmc
- nvidia,tegra264-pmc
reg:
minItems: 4

View File

@@ -25,6 +25,12 @@ properties:
- ti,am62a7-sk
- const: ti,am62a7
- description: K3 AM62D2 SoC and Boards
items:
- enum:
- ti,am62d2-evm
- const: ti,am62d2
- description: K3 AM62A7 SoC PHYTEC phyBOARD-Lyra
items:
- const: phytec,am62a7-phyboard-lyra-rdk

View File

@@ -107,6 +107,7 @@ properties:
- compulab,cm-t335
- moxa,uc-8100-me-t
- novatech,am335x-lxm
- seeed,am335x-bone-green-eco
- ti,am335x-bone
- ti,am335x-evm
- ti,am3359-icev2

View File

@@ -0,0 +1,104 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/bus/fsl,imx8mp-aipstz.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Secure AHB to IP Slave bus (AIPSTZ) bridge
description:
The secure AIPS bridge (AIPSTZ) acts as a bridge for AHB masters issuing
transactions to IP Slave peripherals. Additionally, this module offers access
control configurations meant to restrict which peripherals a master can
access.
maintainers:
- Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
properties:
compatible:
const: fsl,imx8mp-aipstz
reg:
maxItems: 1
power-domains:
maxItems: 1
"#address-cells":
const: 1
"#size-cells":
const: 1
"#access-controller-cells":
const: 3
description:
First cell - consumer ID
Second cell - consumer type (master or peripheral)
Third cell - configuration value
ranges: true
# borrowed from simple-bus.yaml, no additional requirements for children
patternProperties:
"@(0|[1-9a-f][0-9a-f]*)$":
type: object
additionalProperties: true
properties:
reg:
items:
minItems: 2
maxItems: 4
minItems: 1
maxItems: 1024
ranges:
oneOf:
- items:
minItems: 3
maxItems: 7
minItems: 1
maxItems: 1024
- $ref: /schemas/types.yaml#/definitions/flag
anyOf:
- required:
- reg
- required:
- ranges
required:
- compatible
- reg
- power-domains
- "#address-cells"
- "#size-cells"
- "#access-controller-cells"
- ranges
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/imx8mp-clock.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
bus@30df0000 {
compatible = "fsl,imx8mp-aipstz";
reg = <0x30df0000 0x10000>;
ranges = <0x30c00000 0x30c00000 0x400000>;
power-domains = <&pgc_audio>;
#address-cells = <1>;
#size-cells = <1>;
#access-controller-cells = <3>;
dma-controller@30e00000 {
compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma";
reg = <0x30e00000 0x10000>;
#dma-cells = <3>;
clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT>,
<&clk IMX8MP_CLK_AUDIO_ROOT>;
clock-names = "ipg", "ahb";
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
};
};

View File

@@ -0,0 +1,67 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/qcom,sc8180x-camcc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Camera Clock & Reset Controller on SC8180X
maintainers:
- Satya Priya Kakitapalli <quic_skakitap@quicinc.com>
description: |
Qualcomm camera clock control module provides the clocks, resets and
power domains on SC8180X.
See also: include/dt-bindings/clock/qcom,sc8180x-camcc.h
properties:
compatible:
const: qcom,sc8180x-camcc
clocks:
items:
- description: Camera AHB clock from GCC
- description: Board XO source
- description: Sleep clock source
power-domains:
maxItems: 1
description:
A phandle and PM domain specifier for the MMCX power domain.
required-opps:
maxItems: 1
description:
A phandle to an OPP node describing required MMCX performance point.
required:
- compatible
- clocks
- power-domains
- required-opps
allOf:
- $ref: qcom,gcc.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/qcom,gcc-sc8180x.h>
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/power/qcom-rpmpd.h>
clock-controller@ad00000 {
compatible = "qcom,sc8180x-camcc";
reg = <0x0ad00000 0x20000>;
clocks = <&gcc GCC_CAMERA_AHB_CLK>,
<&rpmhcc RPMH_CXO_CLK>,
<&sleep_clk>;
power-domains = <&rpmhpd SC8180X_MMCX>;
required-opps = <&rpmhpd_opp_low_svs>;
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
};
...

View File

@@ -0,0 +1,58 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/raspberrypi,rp1-clocks.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: RaspberryPi RP1 clock generator
maintainers:
- A. della Porta <andrea.porta@suse.com>
description: |
The RP1 contains a clock generator designed as three PLLs (CORE, AUDIO,
VIDEO), and each PLL output can be programmed through dividers to generate
the clocks to drive the sub-peripherals embedded inside the chipset.
Link to datasheet:
https://datasheets.raspberrypi.com/rp1/rp1-peripherals.pdf
properties:
compatible:
const: raspberrypi,rp1-clocks
reg:
maxItems: 1
'#clock-cells':
const: 1
description:
The available clocks are defined in
include/dt-bindings/clock/raspberrypi,rp1-clocks.h.
clocks:
maxItems: 1
required:
- compatible
- reg
- '#clock-cells'
- clocks
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/raspberrypi,rp1-clocks.h>
rp1 {
#address-cells = <2>;
#size-cells = <2>;
clocks@c040018000 {
compatible = "raspberrypi,rp1-clocks";
reg = <0xc0 0x40018000 0x0 0x10038>;
#clock-cells = <1>;
clocks = <&clk_rp1_xosc>;
};
};

View File

@@ -24,6 +24,7 @@ properties:
- const: nvidia,tegra186-gpcdma
- items:
- enum:
- nvidia,tegra264-gpcdma
- nvidia,tegra234-gpcdma
- nvidia,tegra194-gpcdma
- const: nvidia,tegra186-gpcdma

View File

@@ -91,6 +91,9 @@ properties:
- const: runstall
- const: softreset
access-controllers:
maxItems: 1
required:
- compatible
- reg

View File

@@ -70,6 +70,7 @@ properties:
- enum:
- nvidia,tegra194-bpmp
- nvidia,tegra234-bpmp
- nvidia,tegra264-bpmp
- const: nvidia,tegra186-bpmp
- const: nvidia,tegra186-bpmp

View File

@@ -32,6 +32,13 @@ properties:
items:
- const: aon
resets:
maxItems: 1
reset-names:
items:
- const: gpu-clkgen
"#power-domain-cells":
const: 1

View File

@@ -0,0 +1,94 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpu/apple,agx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple SoC GPU
maintainers:
- Sasha Finkelstein <fnkl.kernel@gmail.com>
properties:
compatible:
oneOf:
- enum:
- apple,agx-g13g
- apple,agx-g13s
- apple,agx-g14g
- items:
- enum:
- apple,agx-g13c
- apple,agx-g13d
- const: apple,agx-g13s
reg:
items:
- description: GPU coprocessor control registers
- description: GPU block MMIO registers
reg-names:
items:
- const: asc
- const: sgx
power-domains:
maxItems: 1
mboxes:
maxItems: 1
memory-region:
items:
- description: Region containing GPU MMU TTBs
- description: Region containing GPU MMU page tables
- description:
Region containing a shared handoff structure for VM
management coordination
- description: Calibration blob. Mostly power-related configuration
- description: Calibration blob. Mostly GPU-related configuration
- description: Shared global variables with GPU firmware
memory-region-names:
items:
- const: ttbs
- const: pagetables
- const: handoff
- const: hw-cal-a
- const: hw-cal-b
- const: globals
apple,firmware-abi:
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 3
description:
macOS version the current firmware is paired with, used to pick
the version of firmware ABI to be used.
Bootloader will overwrite this
required:
- compatible
- reg
- mboxes
- memory-region
- apple,firmware-abi
additionalProperties: false
examples:
- |
gpu@6400000 {
compatible = "apple,agx-g13g";
reg = <0x6400000 0x40000>,
<0x4000000 0x1000000>;
reg-names = "asc", "sgx";
mboxes = <&agx_mbox>;
power-domains = <&ps_gfx>;
memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
<&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
memory-region-names = "ttbs", "pagetables", "handoff",
"hw-cal-a", "hw-cal-b", "globals";
apple,firmware-abi = <0 0 0>;
};
...

View File

@@ -17,9 +17,14 @@ description: |
properties:
compatible:
enum:
- mediatek,mt8183-cci
- mediatek,mt8186-cci
oneOf:
- enum:
- mediatek,mt8183-cci
- mediatek,mt8186-cci
- items:
- enum:
- mediatek,mt7988-cci
- const: mediatek,mt8183-cci
clocks:
items:

View File

@@ -21,6 +21,7 @@ properties:
- enum:
- mediatek,mt2701-sysirq
- mediatek,mt2712-sysirq
- mediatek,mt6572-sysirq
- mediatek,mt6580-sysirq
- mediatek,mt6582-sysirq
- mediatek,mt6589-sysirq

View File

@@ -0,0 +1,56 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/ipmi/ipmb-dev.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: The Intelligent Platform Management Bus(IPMB) Device
description: |
The IPMB is an I2C bus which provides interconnection between a Baseboard
Management Controller(BMC) and chassis electronics. The BMC sends IPMI
requests to intelligent controllers like Satellite Management Controller(MC)
devices via IPMB and the device sends responses back to the BMC.
This device uses an I2C slave device to send and receive IPMB messages,
either on a BMC or other MC. A miscellaneous device provices a user space
program to communicate with the kernel and the backend device. Some IPMB
devices only support the I2C protocol and not the SMB protocol.
IPMB communications protocol Specification V1.0
https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmp-spec-v1.0.pdf
maintainers:
- Ninad Palsule <ninad@linux.ibm.com>
properties:
compatible:
enum:
- ipmb-dev
reg:
maxItems: 1
i2c-protocol:
description:
Use I2C block transfer instead of SMBUS block transfer.
type: boolean
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/i2c/i2c.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
ipmb-dev@10 {
compatible = "ipmb-dev";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
i2c-protocol;
};
};

View File

@@ -64,9 +64,10 @@ properties:
compatible:
oneOf:
- const: nvidia,tegra186-hsp
- const: nvidia,tegra194-hsp
- const: nvidia,tegra264-hsp
- enum:
- nvidia,tegra186-hsp
- nvidia,tegra194-hsp
- nvidia,tegra264-hsp
- items:
- const: nvidia,tegra234-hsp
- const: nvidia,tegra194-hsp
@@ -76,7 +77,7 @@ properties:
interrupts:
minItems: 1
maxItems: 9
maxItems: 17
interrupt-names:
oneOf:
@@ -84,6 +85,25 @@ properties:
- items:
- const: doorbell
- items:
- const: doorbell
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- pattern: "^shared([0-9]|1[0-5])$"
- items:
- const: doorbell
- pattern: "^shared[0-7]$"

View File

@@ -32,6 +32,7 @@ properties:
- nvidia,tegra186-mc
- nvidia,tegra194-mc
- nvidia,tegra234-mc
- nvidia,tegra264-mc
reg:
minItems: 6
@@ -42,8 +43,12 @@ properties:
maxItems: 18
interrupts:
items:
- description: MC general interrupt
minItems: 1
maxItems: 8
interrupt-names:
minItems: 1
maxItems: 8
"#address-cells":
const: 2
@@ -74,6 +79,7 @@ patternProperties:
- nvidia,tegra186-emc
- nvidia,tegra194-emc
- nvidia,tegra234-emc
- nvidia,tegra264-emc
reg:
minItems: 1
@@ -127,6 +133,15 @@ patternProperties:
reg:
minItems: 2
- if:
properties:
compatible:
const: nvidia,tegra264-emc
then:
properties:
reg:
minItems: 2
additionalProperties: false
required:
@@ -158,6 +173,12 @@ allOf:
- const: ch2
- const: ch3
interrupts:
items:
- description: MC general interrupt
interrupt-names: false
- if:
properties:
compatible:
@@ -189,6 +210,12 @@ allOf:
- const: ch14
- const: ch15
interrupts:
items:
- description: MC general interrupt
interrupt-names: false
- if:
properties:
compatible:
@@ -220,6 +247,59 @@ allOf:
- const: ch14
- const: ch15
interrupts:
items:
- description: MC general interrupt
interrupt-names: false
- if:
properties:
compatible:
const: nvidia,tegra264-mc
then:
properties:
reg:
minItems: 17
maxItems: 17
description: 17 memory controller channels
reg-names:
items:
- const: broadcast
- const: ch0
- const: ch1
- const: ch2
- const: ch3
- const: ch4
- const: ch5
- const: ch6
- const: ch7
- const: ch8
- const: ch9
- const: ch10
- const: ch11
- const: ch12
- const: ch13
- const: ch14
- const: ch15
interrupts:
minItems: 8
maxItems: 8
description: One interrupt line for each MC component
interrupt-names:
items:
- const: mcf
- const: hub1
- const: hub2
- const: hub3
- const: hub4
- const: hub5
- const: sbs
- const: channel
additionalProperties: false
required:

View File

@@ -20,6 +20,7 @@ properties:
- nvidia,tegra186-misc
- nvidia,tegra194-misc
- nvidia,tegra234-misc
- nvidia,tegra264-misc
reg:
items:

View File

@@ -0,0 +1,137 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/misc/pci1de4,1.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: RaspberryPi RP1 MFD PCI device
maintainers:
- A. della Porta <andrea.porta@suse.com>
description:
The RaspberryPi RP1 is a PCI multi function device containing
peripherals ranging from Ethernet to USB controller, I2C, SPI
and others.
The peripherals are accessed by addressing the PCI BAR1 region.
allOf:
- $ref: /schemas/pci/pci-ep-bus.yaml
properties:
compatible:
additionalItems: true
maxItems: 3
items:
- const: pci1de4,1
'#interrupt-cells':
const: 2
description: |
Specifies respectively the interrupt number and flags as defined
in include/dt-bindings/interrupt-controller/irq.h.
Since all interrupts are active high, only IRQ_TYPE_LEVEL_HIGH
and IRQ_TYPE_EDGE_RISING can be specified as type flags.
The supported values for the interrupt number are:
- IO BANK0: 0
- IO BANK1: 1
- IO BANK2: 2
- AUDIO IN: 3
- AUDIO OUT: 4
- PWM0: 5
- ETH: 6
- I2C0: 7
- I2C1: 8
- I2C2: 9
- I2C3: 10
- I2C4: 11
- I2C5: 12
- I2C6: 13
- I2S0: 14
- I2S1: 15
- I2S2: 16
- SDIO0: 17
- SDIO1: 18
- SPI0: 19
- SPI1: 20
- SPI2: 21
- SPI3: 22
- SPI4: 23
- SPI5: 24
- UART0: 25
- TIMER0: 26
- TIMER1: 27
- TIMER2: 28
- TIMER3: 29
- USB HOST0: 30
- USB HOST0-0: 31
- USB HOST0-1: 32
- USB HOST0-2: 33
- USB HOST0-3: 34
- USB HOST1: 35
- USB HOST1-0: 36
- USB HOST1-1: 37
- USB HOST1-2: 38
- USB HOST1-3: 39
- DMA: 40
- PWM1: 41
- UART1: 42
- UART2: 43
- UART3: 44
- UART4: 45
- UART5: 46
- MIPI0: 47
- MIPI1: 48
- VIDEO OUT: 49
- PIO0: 50
- PIO1: 51
- ADC FIFO: 52
- PCIE OUT: 53
- SPI6: 54
- SPI7: 55
- SPI8: 56
- PROC MISC: 57
- SYSCFG: 58
- CLOCKS DEFAULT: 59
- VBUSCTRL: 60
interrupt-controller: true
unevaluatedProperties: false
required:
- compatible
- '#interrupt-cells'
- interrupt-controller
- pci-ep-bus@1
examples:
- |
pci {
#address-cells = <3>;
#size-cells = <2>;
rp1@0,0 {
compatible = "pci1de4,1";
ranges = <0x01 0x00 0x00000000 0x82010000 0x00 0x00 0x00 0x400000>;
#address-cells = <3>;
#size-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
pci_ep_bus: pci-ep-bus@1 {
compatible = "simple-bus";
ranges = <0x00 0x40000000 0x01 0x00 0x00000000 0x00 0x00400000>;
dma-ranges = <0x10 0x00000000 0x43000000 0x10 0x00000000 0x10 0x00000000>;
#address-cells = <2>;
#size-cells = <2>;
rp1_clocks: clocks@40018000 {
compatible = "raspberrypi,rp1-clocks";
reg = <0x00 0x40018000 0x0 0x10038>;
#clock-cells = <1>;
clocks = <&clk_rp1_xosc>;
};
};
};
};

View File

@@ -0,0 +1,198 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/raspberrypi,rp1-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: RaspberryPi RP1 GPIO/Pinconf/Pinmux Controller submodule
maintainers:
- A. della Porta <andrea.porta@suse.com>
description:
The RP1 chipset is a Multi Function Device containing, among other
sub-peripherals, a gpio/pinconf/mux controller whose 54 pins are grouped
into 3 banks.
It works also as an interrupt controller for those gpios.
properties:
compatible:
const: raspberrypi,rp1-gpio
reg:
maxItems: 3
description: One reg specifier for each one of the 3 pin banks.
'#gpio-cells':
description: The first cell is the pin number and the second cell is used
to specify the flags (see include/dt-bindings/gpio/gpio.h).
const: 2
gpio-controller: true
gpio-ranges:
maxItems: 1
gpio-line-names:
maxItems: 54
interrupts:
maxItems: 3
description: One interrupt specifier for each one of the 3 pin banks.
'#interrupt-cells':
description:
Specifies the Bank number [0, 1, 2] and Flags as defined in
include/dt-bindings/interrupt-controller/irq.h.
const: 2
interrupt-controller: true
patternProperties:
'-state$':
oneOf:
- $ref: '#/$defs/raspberrypi-rp1-state'
- patternProperties:
'-pins$':
$ref: '#/$defs/raspberrypi-rp1-state'
additionalProperties: false
$defs:
raspberrypi-rp1-state:
allOf:
- $ref: pincfg-node.yaml#
- $ref: pinmux-node.yaml#
description:
Pin controller client devices use pin configuration subnodes (children
and grandchildren) for desired pin configuration.
Client device subnodes use below standard properties.
properties:
pins:
description:
List of gpio pins affected by the properties specified in this
subnode.
items:
pattern: '^gpio([0-9]|[1-4][0-9]|5[0-3])$'
function:
enum: [ alt0, alt1, alt2, alt3, alt4, gpio, alt6, alt7, alt8, none,
aaud, dcd0, dpi, dsi0_te_ext, dsi1_te_ext, dsr0, dtr0, gpclk0,
gpclk1, gpclk2, gpclk3, gpclk4, gpclk5, i2c0, i2c1, i2c2, i2c3,
i2c4, i2c5, i2c6, i2s0, i2s1, i2s2, ir, mic, pcie_clkreq_n,
pio, proc_rio, pwm0, pwm1, ri0, sd0, sd1, spi0, spi1, spi2,
spi3, spi4, spi5, spi6, spi7, spi8, uart0, uart1, uart2, uart3,
uart4, uart5, vbus0, vbus1, vbus2, vbus3 ]
description:
Specify the alternative function to be configured for the specified
pins.
bias-disable: true
bias-pull-down: true
bias-pull-up: true
input-enable: true
input-schmitt-enable: true
output-enable: true
output-high: true
output-low: true
slew-rate:
description: 0 is slow slew rate, 1 is fast slew rate
enum: [ 0, 1 ]
drive-strength:
enum: [ 2, 4, 8, 12 ]
additionalProperties: false
allOf:
- $ref: pinctrl.yaml#
required:
- reg
- compatible
- '#gpio-cells'
- gpio-controller
- interrupts
- '#interrupt-cells'
- interrupt-controller
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
rp1 {
#address-cells = <2>;
#size-cells = <2>;
rp1_gpio: pinctrl@c0400d0000 {
reg = <0xc0 0x400d0000 0x0 0xc000>,
<0xc0 0x400e0000 0x0 0xc000>,
<0xc0 0x400f0000 0x0 0xc000>;
compatible = "raspberrypi,rp1-gpio";
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>,
<1 IRQ_TYPE_LEVEL_HIGH>,
<2 IRQ_TYPE_LEVEL_HIGH>;
gpio-line-names =
"ID_SDA", // GPIO0
"ID_SCL", // GPIO1
"GPIO2", "GPIO3", "GPIO4", "GPIO5", "GPIO6",
"GPIO7", "GPIO8", "GPIO9", "GPIO10", "GPIO11",
"GPIO12", "GPIO13", "GPIO14", "GPIO15", "GPIO16",
"GPIO17", "GPIO18", "GPIO19", "GPIO20", "GPIO21",
"GPIO22", "GPIO23", "GPIO24", "GPIO25", "GPIO26",
"GPIO27",
"PCIE_RP1_WAKE", // GPIO28
"FAN_TACH", // GPIO29
"HOST_SDA", // GPIO30
"HOST_SCL", // GPIO31
"ETH_RST_N", // GPIO32
"", // GPIO33
"CD0_IO0_MICCLK", // GPIO34
"CD0_IO0_MICDAT0", // GPIO35
"RP1_PCIE_CLKREQ_N", // GPIO36
"", // GPIO37
"CD0_SDA", // GPIO38
"CD0_SCL", // GPIO39
"CD1_SDA", // GPIO40
"CD1_SCL", // GPIO41
"USB_VBUS_EN", // GPIO42
"USB_OC_N", // GPIO43
"RP1_STAT_LED", // GPIO44
"FAN_PWM", // GPIO45
"CD1_IO0_MICCLK", // GPIO46
"2712_WAKE", // GPIO47
"CD1_IO1_MICDAT1", // GPIO48
"EN_MAX_USB_CUR", // GPIO49
"", // GPIO50
"", // GPIO51
"", // GPIO52
""; // GPIO53
rp1-i2s0-default-state {
function = "i2s0";
pins = "gpio18", "gpio19", "gpio20", "gpio21";
bias-disable;
};
rp1-uart0-default-state {
txd-pins {
function = "uart0";
pins = "gpio14";
bias-disable;
};
rxd-pins {
function = "uart0";
pins = "gpio15";
bias-pull-up;
};
};
};
};

View File

@@ -16,8 +16,10 @@ description:
properties:
compatible:
enum:
- allwinner,sun20i-d1-ppu
- allwinner,sun8i-v853-ppu
- allwinner,sun20i-d1-ppu
- allwinner,sun55i-a523-pck-600
- allwinner,sun55i-a523-ppu
reg:
maxItems: 1

View File

@@ -18,6 +18,7 @@ properties:
oneOf:
- enum:
- qcom,mdm9607-rpmpd
- qcom,milos-rpmhpd
- qcom,msm8226-rpmpd
- qcom,msm8909-rpmpd
- qcom,msm8916-rpmpd

View File

@@ -40,6 +40,7 @@ properties:
- rockchip,rk3366-power-controller
- rockchip,rk3368-power-controller
- rockchip,rk3399-power-controller
- rockchip,rk3528-power-controller
- rockchip,rk3562-power-controller
- rockchip,rk3568-power-controller
- rockchip,rk3576-power-controller

View File

@@ -45,6 +45,7 @@ properties:
- items:
- enum:
- amd,mbv32
- amd,mbv64
- andestech,ax45mp
- canaan,k210
- sifive,bullet0

View File

@@ -20,11 +20,17 @@ properties:
reg:
maxItems: 1
interrupts:
maxItems: 1
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
rng@18032000 {
compatible = "brcm,iproc-rng200";
reg = <0x18032000 0x28>;
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
};

View File

@@ -28,6 +28,7 @@ properties:
- nvidia,tegra186-rtc
- nvidia,tegra194-rtc
- nvidia,tegra234-rtc
- nvidia,tegra264-rtc
- const: nvidia,tegra20-rtc
reg:

View File

@@ -388,6 +388,13 @@ properties:
- renesas,gray-hawk-single # Gray Hawk Single board (RTP8A779H0ASKB0F10S)
- const: renesas,r8a779h0
- description: R-Car V4M-7 (R8A779H2)
items:
- enum:
- renesas,gray-hawk-single # Gray Hawk Single board (RTP8A779H2ASKB0F10SA001)
- const: renesas,r8a779h2 # ES2.x
- const: renesas,r8a779h0
- description: R-Car H3e (R8A779M0)
items:
- enum:
@@ -576,7 +583,7 @@ properties:
- description: RZ/V2H(P) (R9A09G057)
items:
- enum:
- renesas,rzv2h-evk # RZ/V2H EVK
- renesas,rzv2h-evk # RZ/V2H EVK (RTK0EF0168C06001BJ)
- enum:
- renesas,r9a09g057h41 # RZ/V2H
- renesas,r9a09g057h42 # RZ/V2H with Mali-G31 support
@@ -595,7 +602,7 @@ properties:
- description: RZ/T2H (R9A09G077)
items:
- enum:
- renesas,rzt2h-evk # RZ/T2H Evaluation Board
- renesas,rzt2h-evk # RZ/T2H Evaluation Board (RTK9RZT2H0S00000BJ)
- enum:
- renesas,r9a09g077m04 # RZ/T2H with Single Cortex-A55 + Dual Cortex-R52 - no security
- renesas,r9a09g077m24 # RZ/T2H with Dual Cortex-A55 + Dual Cortex-R52 - no security

View File

@@ -203,6 +203,9 @@ allOf:
then:
required:
- google,pmu-intr-gen-syscon
else:
properties:
google,pmu-intr-gen-syscon: false
examples:
- |

View File

@@ -30,6 +30,7 @@ properties:
- samsung,exynos8895-fsys1-sysreg
- samsung,exynos8895-peric0-sysreg
- samsung,exynos8895-peric1-sysreg
- samsung,exynosautov920-hsi2-sysreg
- samsung,exynosautov920-peric0-sysreg
- samsung,exynosautov920-peric1-sysreg
- tesla,fsd-cam-sysreg

View File

@@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/riscv/sophgo.yaml#
$id: http://devicetree.org/schemas/soc/sophgo/sophgo.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Sophgo SoC-based boards
@@ -26,6 +26,11 @@ properties:
- enum:
- sophgo,huashan-pi
- const: sophgo,cv1812h
- items:
- enum:
- milkv,duo-module-01-evb
- const: milkv,duo-module-01
- const: sophgo,sg2000
- items:
- enum:
- sipeed,licheerv-nano-b
@@ -34,6 +39,8 @@ properties:
- items:
- enum:
- milkv,pioneer
- sophgo,sg2042-evb-v1
- sophgo,sg2042-evb-v2
- const: sophgo,sg2042
- items:
- enum:

View File

@@ -19,6 +19,9 @@ properties:
- spacemit,k1-syscon-apbc
- spacemit,k1-syscon-apmu
- spacemit,k1-syscon-mpmu
- spacemit,k1-syscon-rcpu
- spacemit,k1-syscon-rcpu2
- spacemit,k1-syscon-apbc2
reg:
maxItems: 1
@@ -47,9 +50,6 @@ properties:
required:
- compatible
- reg
- clocks
- clock-names
- "#clock-cells"
- "#reset-cells"
allOf:
@@ -57,13 +57,28 @@ allOf:
properties:
compatible:
contains:
const: spacemit,k1-syscon-apbc
enum:
- spacemit,k1-syscon-apmu
- spacemit,k1-syscon-mpmu
then:
properties:
"#power-domain-cells": false
else:
required:
- "#power-domain-cells"
else:
properties:
"#power-domain-cells": false
- if:
properties:
compatible:
contains:
enum:
- spacemit,k1-syscon-apbc
- spacemit,k1-syscon-apmu
- spacemit,k1-syscon-mpmu
then:
required:
- clocks
- clock-names
- "#clock-cells"
additionalProperties: false

View File

@@ -0,0 +1,63 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2025 Texas Instruments Incorporated
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/ti/ti,j784s4-bist.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Texas Instruments K3 BIST
maintainers:
- Neha Malcom Francis <n-francis@ti.com>
allOf:
- $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
description:
The BIST (Built-In Self Test) module is an IP block present in K3 devices
that support triggering of BIST tests, both PBIST (Memory BIST) and LBIST
(Logic BIST) on a core. Both tests are destructive in nature. At boot, BIST
is executed by hardware for the MCU domain automatically as part of HW POST.
properties:
compatible:
const: ti,j784s4-bist
reg:
maxItems: 2
reg-names:
items:
- const: cfg
- const: ctrl_mmr
clocks:
maxItems: 1
power-domains:
maxItems: 1
required:
- compatible
- reg
- reg-names
- ti,sci-dev-id
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/soc/ti,sci_pm_domain.h>
bus {
#address-cells = <2>;
#size-cells = <2>;
safety-selftest@33c0000 {
compatible = "ti,j784s4-bist";
reg = <0x00 0x033c0000 0x00 0x400>,
<0x00 0x0010c1a0 0x00 0x01c>;
reg-names = "cfg", "ctrl_mmr";
clocks = <&k3_clks 237 7>;
power-domains = <&k3_pds 237 TI_SCI_PD_EXCLUSIVE>;
ti,sci-dev-id = <234>;
};
};

View File

@@ -789,6 +789,8 @@ patternProperties:
description: Jide Tech
"^joz,.*":
description: JOZ BV
"^jty,.*":
description: JTY
"^kam,.*":
description: Kamstrup A/S
"^karo,.*":
@@ -893,6 +895,8 @@ patternProperties:
description: Nanjing Loongmasses Ltd.
"^lsi,.*":
description: LSI Corp. (LSI Logic)
"^luckfox,.*":
description: Shenzhen Luckfox Technology Co., Ltd.
"^lunzn,.*":
description: Shenzhen Lunzn Technology Co., Ltd.
"^luxul,.*":
@@ -1307,6 +1311,8 @@ patternProperties:
description: Recharge Véhicule Électrique (RVE) inc.
"^saef,.*":
description: Saef Technology Limited
"^sakurapi,.*":
description: SakuraPi.org
"^samsung,.*":
description: Samsung Semiconductor
"^samtec,.*":

View File

@@ -34,6 +34,7 @@ properties:
- items:
- enum:
- mediatek,mt2701-wdt
- mediatek,mt6572-wdt
- mediatek,mt6582-wdt
- mediatek,mt6797-wdt
- mediatek,mt7622-wdt

View File

@@ -2359,6 +2359,7 @@ F: Documentation/devicetree/bindings/clock/apple,nco.yaml
F: Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
F: Documentation/devicetree/bindings/dma/apple,admac.yaml
F: Documentation/devicetree/bindings/gpio/apple,smc-gpio.yaml
F: Documentation/devicetree/bindings/gpu/apple,agx.yaml
F: Documentation/devicetree/bindings/i2c/apple,i2c.yaml
F: Documentation/devicetree/bindings/input/touchscreen/apple,z2-multitouch.yaml
F: Documentation/devicetree/bindings/interrupt-controller/apple,*
@@ -2442,7 +2443,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
S: Supported
Q: https://patchwork.ozlabs.org/project/linux-aspeed/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc.git
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/
@@ -3226,6 +3227,7 @@ F: arch/arm/mach-exynos*/
F: arch/arm/mach-s3c/
F: arch/arm/mach-s5p*/
F: arch/arm64/boot/dts/exynos/
F: arch/arm64/boot/dts/tesla/
F: drivers/*/*/*s3c24*
F: drivers/*/*s3c24*
F: drivers/*/*s3c64xx*
@@ -3408,6 +3410,7 @@ M: linux-fsd@tesla.com
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: linux-samsung-soc@vger.kernel.org
S: Maintained
P: Documentation/process/maintainer-soc-clean-dts.rst
F: arch/arm64/boot/dts/tesla/
ARM/TEXAS INSTRUMENT AEMIF/EMIF DRIVERS
@@ -10286,6 +10289,7 @@ R: Tudor Ambarus <tudor.ambarus@linaro.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: linux-samsung-soc@vger.kernel.org
S: Maintained
P: Documentation/process/maintainer-soc-clean-dts.rst
C: irc://irc.oftc.net/pixel6-kernel-dev
F: Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
F: Documentation/devicetree/bindings/soc/google/google,gs101-pmu-intr-gen.yaml
@@ -22020,6 +22024,16 @@ B: mailto:linux-samsung-soc@vger.kernel.org
F: Documentation/devicetree/bindings/sound/samsung*
F: sound/soc/samsung/
SAMSUNG EXYNOS2200 SoC SUPPORT
M: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
L: linux-samsung-soc@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/clock/samsung,exynos2200-cmu.yaml
F: arch/arm64/boot/dts/exynos/exynos2200*
F: drivers/clk/samsung/clk-exynos2200.c
F: include/dt-bindings/clock/samsung,exynos2200-cmu.h
SAMSUNG EXYNOS850 SoC SUPPORT
M: Sam Protsenko <semen.protsenko@linaro.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)

View File

@@ -56,6 +56,15 @@
function = "i2s";
};
/omit-if-no-ref/
lcd_rgb666_pd_pins: lcd-rgb666-pd-pins {
pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5",
"PD6", "PD7", "PD8", "PD9", "PD10", "PD11",
"PD12", "PD13", "PD14", "PD15", "PD16", "PD17",
"PD18", "PD19", "PD20", "PD21";
function = "lcd";
};
uart1_pg_pins: uart1-pg-pins {
pins = "PG6", "PG7";
function = "uart1";

View File

@@ -411,6 +411,15 @@
function = "i2c1";
};
/omit-if-no-ref/
lcd_rgb666_pe_pins: lcd-rgb666-pe-pins {
pins = "PE0", "PE1", "PE2", "PE3", "PE4", "PE5",
"PE6", "PE7", "PE8", "PE9", "PE10", "PE11",
"PE12", "PE13", "PE14", "PE15", "PE16", "PE17",
"PE18", "PE19", "PE23", "PE24";
function = "lcd";
};
uart0_pb_pins: uart0-pb-pins {
pins = "PB8", "PB9";
function = "uart0";

View File

@@ -27,6 +27,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-facebook-harma.dtb \
aspeed-bmc-facebook-minerva.dtb \
aspeed-bmc-facebook-minipack.dtb \
aspeed-bmc-facebook-santabarbara.dtb \
aspeed-bmc-facebook-tiogapass.dtb \
aspeed-bmc-facebook-wedge40.dtb \
aspeed-bmc-facebook-wedge100.dtb \
@@ -50,12 +51,12 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-lenovo-hr630.dtb \
aspeed-bmc-lenovo-hr855xg2.dtb \
aspeed-bmc-microsoft-olympus.dtb \
aspeed-bmc-nvidia-gb200nvl-bmc.dtb \
aspeed-bmc-opp-lanyang.dtb \
aspeed-bmc-opp-mowgli.dtb \
aspeed-bmc-opp-nicole.dtb \
aspeed-bmc-opp-palmetto.dtb \
aspeed-bmc-opp-romulus.dtb \
aspeed-bmc-opp-swift.dtb \
aspeed-bmc-opp-tacoma.dtb \
aspeed-bmc-opp-vesnin.dtb \
aspeed-bmc-opp-witherspoon.dtb \

View File

@@ -825,7 +825,7 @@
line-name = "ocp-aux-pwren";
};
bmc-ready {
bmc-ready-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AC, 5) GPIO_ACTIVE_HIGH>;
output-high;

View File

@@ -201,13 +201,13 @@
};
&gpio {
pin_gpio_c7 {
pin-gpio-c7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(C, 7) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "BIOS_SPI_MUX_S";
};
pin_gpio_d1 {
pin-gpio-d1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
output-high;

View File

@@ -182,7 +182,7 @@
"CK_33M_BMC", "LFRAME", "SERIRQ", "S_PLTRST";
/* Assert BMC_READY so BIOS doesn't sit around waiting for it */
bmc-ready {
bmc-ready-hog {
gpio-hog;
gpios = <ASPEED_GPIO(J, 0) GPIO_ACTIVE_LOW>;
output-high;

View File

@@ -915,14 +915,14 @@
};
&gpio {
pin_gpio_i3 {
pin-gpio-i3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(I, 3) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "NCSI_BMC_R_SEL";
};
pin_gpio_b6 {
pin-gpio-b6-hog {
gpio-hog;
gpios = <ASPEED_GPIO(B, 6) GPIO_ACTIVE_HIGH>;
output-low;

View File

@@ -395,7 +395,7 @@
* back to one causes a power output glitch, so install a hog to keep
* it at one as a failsafe to ensure nothing accidentally touches it.
*/
doom-guardrail {
doom-guardrail-hog {
gpio-hog;
gpios = <ASPEED_GPIO(E, 0) GPIO_ACTIVE_LOW>;
output-low;

View File

@@ -52,10 +52,6 @@
};
};
switchphy: ethernet-phy@0 {
// Fixed link
};
front_gpio_leds {
compatible = "gpio-leds";
sys_log_id {
@@ -285,7 +281,6 @@
&mac2 {
status = "okay";
phy-mode = "rgmii";
phy-handle = <&switchphy>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rgmii3_default>;
@@ -398,10 +393,13 @@
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "source";
data-role = "host";
pd-disable;
typec-power-opmode = "default";
pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
op-sink-microwatt = <10000000>;
};
};
@@ -484,10 +482,13 @@
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "source";
data-role = "host";
pd-disable;
typec-power-opmode = "default";
pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
op-sink-microwatt = <10000000>;
};
};
@@ -570,10 +571,13 @@
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "source";
data-role = "host";
pd-disable;
typec-power-opmode = "default";
pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
op-sink-microwatt = <10000000>;
};
};
@@ -656,10 +660,13 @@
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "source";
data-role = "host";
pd-disable;
typec-power-opmode = "default";
pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
op-sink-microwatt = <10000000>;
};
};
@@ -742,10 +749,13 @@
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "source";
data-role = "host";
pd-disable;
typec-power-opmode = "default";
pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
op-sink-microwatt = <10000000>;
};
};
@@ -828,10 +838,13 @@
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "source";
data-role = "host";
pd-disable;
typec-power-opmode = "default";
pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
op-sink-microwatt = <10000000>;
};
};

View File

@@ -186,18 +186,29 @@
&i2c0 {
status = "okay";
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
i2c-mux@71 {
compatible = "nxp,pca9546";
reg = <0x71>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux-idle-disconnect;
i2c0mux0ch0: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
mctp-controller;
// IOB0 NIC0 TEMP
temperature-sensor@1f {
compatible = "ti,tmp421";
reg = <0x1f>;
};
};
i2c0mux0ch1: i2c@1 {
#address-cells = <1>;
@@ -208,6 +219,13 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
mctp-controller;
// IOB0 NIC1 TEMP
temperature-sensor@1f {
compatible = "ti,tmp421";
reg = <0x1f>;
};
};
i2c0mux0ch3: i2c@3 {
#address-cells = <1>;
@@ -293,12 +311,18 @@
reg = <0x75>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux-idle-disconnect;
i2c0mux3ch0: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
mctp-controller;
// IOB1 NIC0 TEMP
temperature-sensor@1f {
compatible = "ti,tmp421";
reg = <0x1f>;
};
};
i2c0mux3ch1: i2c@1 {
#address-cells = <1>;
@@ -309,6 +333,13 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
mctp-controller;
// IOB1 NIC1 TEMP
temperature-sensor@1f {
compatible = "ti,tmp421";
reg = <0x1f>;
};
};
i2c0mux3ch3: i2c@3 {
#address-cells = <1>;
@@ -404,40 +435,105 @@
#size-cells = <0>;
reg = <0x0>;
power-sensor@41 {
compatible = "ti,ina238";
reg = <0x41>;
shunt-resistor = <500>;
};
power-sensor@42 {
compatible = "ti,ina238";
reg = <0x42>;
shunt-resistor = <500>;
};
power-sensor@44 {
compatible = "ti,ina238";
reg = <0x44>;
shunt-resistor = <500>;
power-sensor@22 {
compatible = "mps,mp5990";
reg = <0x22>;
};
};
i2c1mux0ch1: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x1>;
power-sensor@41 {
compatible = "ti,ina238";
reg = <0x41>;
};
power-sensor@43 {
compatible = "ti,ina238";
reg = <0x43>;
};
};
i2c1mux0ch2: i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0x2>;
fanctl2: fan-controller@1 {
compatible = "nuvoton,nct7363";
reg = <0x01>;
#pwm-cells = <2>;
fan-9 {
pwms = <&fanctl2 0 40000>;
tach-ch = /bits/ 8 <0x09>;
};
fan-11 {
pwms = <&fanctl2 0 40000>;
tach-ch = /bits/ 8 <0x0b>;
};
fan-10 {
pwms = <&fanctl2 4 40000>;
tach-ch = /bits/ 8 <0x0a>;
};
fan-13 {
pwms = <&fanctl2 4 40000>;
tach-ch = /bits/ 8 <0x0d>;
};
fan-15 {
pwms = <&fanctl2 6 40000>;
tach-ch = /bits/ 8 <0x0f>;
};
fan-1 {
pwms = <&fanctl2 6 40000>;
tach-ch = /bits/ 8 <0x01>;
};
fan-0 {
pwms = <&fanctl2 10 40000>;
tach-ch = /bits/ 8 <0x00>;
};
fan-3 {
pwms = <&fanctl2 10 40000>;
tach-ch = /bits/ 8 <0x03>;
};
};
fanctl3: fan-controller@2 {
compatible = "nuvoton,nct7363";
reg = <0x02>;
#pwm-cells = <2>;
fan-9 {
pwms = <&fanctl3 0 40000>;
tach-ch = /bits/ 8 <0x09>;
};
fan-11 {
pwms = <&fanctl3 0 40000>;
tach-ch = /bits/ 8 <0x0b>;
};
fan-10 {
pwms = <&fanctl3 4 40000>;
tach-ch = /bits/ 8 <0x0a>;
};
fan-13 {
pwms = <&fanctl3 4 40000>;
tach-ch = /bits/ 8 <0x0d>;
};
fan-15 {
pwms = <&fanctl3 6 40000>;
tach-ch = /bits/ 8 <0x0f>;
};
fan-1 {
pwms = <&fanctl3 6 40000>;
tach-ch = /bits/ 8 <0x01>;
};
fan-0 {
pwms = <&fanctl3 10 40000>;
tach-ch = /bits/ 8 <0x00>;
};
fan-3 {
pwms = <&fanctl3 10 40000>;
tach-ch = /bits/ 8 <0x03>;
};
};
fanctl0: fan-controller@21{
compatible = "maxim,max31790";
reg = <0x21>;
};
fanctl1: fan-controller@27{
compatible = "maxim,max31790";
reg = <0x27>;
};
};
i2c1mux0ch3: i2c@3 {
#address-cells = <1>;
@@ -449,6 +545,14 @@
#size-cells = <0>;
reg = <0x4>;
power-monitor@13 {
compatible = "infineon,xdp710";
reg = <0x13>;
};
power-monitor@1c {
compatible = "infineon,xdp710";
reg = <0x1c>;
};
power-monitor@42 {
compatible = "lltc,ltc4287";
reg = <0x42>;
@@ -520,6 +624,12 @@
compatible = "ti,tmp75";
reg = <0x4b>;
};
// FIO REMOTE TEMP SENSOR
temperature-sensor@4f {
compatible = "ti,tmp75";
reg = <0x4f>;
};
};
};
};
@@ -626,27 +736,6 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <7>;
power-sensor@40 {
compatible = "ti,ina230";
reg = <0x40>;
shunt-resistor = <2000>;
};
power-sensor@41 {
compatible = "ti,ina230";
reg = <0x41>;
shunt-resistor = <2000>;
};
power-sensor@44 {
compatible = "ti,ina230";
reg = <0x44>;
shunt-resistor = <2000>;
};
power-sensor@45 {
compatible = "ti,ina230";
reg = <0x45>;
shunt-resistor = <2000>;
};
};
};
};
@@ -708,6 +797,12 @@
&i2c10 {
status = "okay";
multi-master;
mctp-controller;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
// OCP NIC0 TEMP
temperature-sensor@1f {
@@ -733,16 +828,24 @@
&i2c12 {
status = "okay";
multi-master;
// Module 1 FRU EEPROM
eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
};
// Secondary CBC FRU EEPROM
eeprom@54 {
compatible = "atmel,24c02";
reg = <0x54>;
};
};
&i2c13 {
status = "okay";
multi-master;
// Module 0 FRU EEPROM
eeprom@50 {
@@ -750,18 +853,12 @@
reg = <0x50>;
};
// Left CBC FRU EEPROM
// Primary CBC FRU EEPROM
eeprom@54 {
compatible = "atmel,24c02";
reg = <0x54>;
};
// Right CBC FRU EEPROM
eeprom@55 {
compatible = "atmel,24c02";
reg = <0x55>;
};
// HMC FRU EEPROM
eeprom@57 {
compatible = "atmel,24c02";
@@ -835,6 +932,12 @@
&i2c15 {
status = "okay";
multi-master;
mctp-controller;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
// OCP NIC1 TEMP
temperature-sensor@1f {

View File

@@ -218,6 +218,25 @@
compatible = "ti,tmp75";
reg = <0x4b>;
};
gpio@12 {
compatible = "nxp,pca9555";
reg = <0x12>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <116 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"","",
"","",
"","",
"","",
"","",
"","",
"","fcb1-activate",
"","";
};
};
&i2c1 {
@@ -273,6 +292,25 @@
compatible = "ti,tmp75";
reg = <0x4b>;
};
gpio@12 {
compatible = "nxp,pca9555";
reg = <0x12>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <114 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"","",
"","",
"","",
"","",
"","",
"","",
"","fcb0-activate",
"","";
};
};
&i2c3 {
@@ -354,11 +392,22 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
power-monitor@45 {
compatible = "ti,ina230";
reg = <0x45>;
};
};
imux23: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
power-monitor@45 {
compatible = "ti,ina230";
reg = <0x45>;
};
};
};
};
@@ -405,6 +454,25 @@
&i2c11 {
status = "okay";
gpio@13 {
compatible = "nxp,pca9555";
reg = <0x13>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <222 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"","",
"","",
"","",
"","health-mmc",
"","",
"","",
"","",
"","";
};
gpio@30 {
compatible = "nxp,pca9555";
reg = <0x30>;
@@ -480,6 +548,19 @@
compatible = "atmel,24c64";
reg = <0x54>;
};
adc@1d {
compatible = "ti,adc128d818";
reg = <0x1d>;
ti,mode = /bits/ 8 <1>;
};
adc@1f {
compatible = "ti,adc128d818";
reg = <0x1f>;
ti,mode = /bits/ 8 <1>;
};
};
imux30: i2c@2 {
#address-cells = <1>;
@@ -581,7 +662,7 @@
/*T0-T7*/ "","","","","","","","",
/*U0-U7*/ "","","","","","","led-identify-gate","",
/*V0-V7*/ "","","","",
"rtc-battery-voltage-read-enable","",
"","",
"","",
/*W0-W7*/ "","","","","","","","",
/*X0-X7*/ "","","","","","","","",
@@ -666,7 +747,7 @@
"presence-cmm","ac-control-n",
/*G0-G3 line 96-103*/
"FM_CPU_CORETYPE2","",
"FM_CPU_CORETYPE1","",
"FM_CPU_CORETYPE1","rtc-battery-voltage-read-enable",
"FM_CPU_CORETYPE0","",
"FM_BOARD_REV_ID5","",
/*G4-G7 line 104-111*/

View File

@@ -0,0 +1,982 @@
// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright 2025 Facebook Inc.
/dts-v1/;
#include "aspeed-g6.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h>
#include <dt-bindings/i2c/i2c.h>
/ {
model = "Facebook Santabarbara BMC";
compatible = "facebook,santabarbara-bmc", "aspeed,ast2600";
aliases {
serial0 = &uart1;
serial2 = &uart3;
serial3 = &uart4;
serial4 = &uart5;
i2c16 = &i2c4mux0ch0;
i2c17 = &i2c4mux0ch1;
i2c18 = &i2c4mux0ch2;
i2c19 = &i2c4mux0ch3;
i2c20 = &i2c4mux0ch4;
i2c21 = &i2c4mux0ch5;
i2c22 = &i2c4mux0ch6;
i2c23 = &i2c4mux0ch7;
i2c24 = &i2c5mux0ch0;
i2c25 = &i2c5mux0ch1;
i2c26 = &i2c5mux0ch2;
i2c27 = &i2c5mux0ch3;
i2c28 = &i2c5mux1ch0;
i2c29 = &i2c5mux1ch1;
i2c30 = &i2c5mux1ch2;
i2c31 = &i2c5mux1ch3;
i2c32 = &i2c12mux0ch0;
i2c33 = &i2c12mux0ch1;
i2c34 = &i2c12mux0ch2;
i2c35 = &i2c12mux0ch3;
i2c36 = &i2c12mux0ch4;
i2c37 = &i2c12mux0ch5;
i2c38 = &i2c12mux0ch6;
i2c39 = &i2c12mux0ch7;
};
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>, <&adc0 7>,
<&adc1 2>;
};
leds {
compatible = "gpio-leds";
led-0 {
label = "bmc_heartbeat_amber";
gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat";
};
led-1 {
label = "fp_id_amber";
default-state = "off";
gpios = <&gpio0 ASPEED_GPIO(B, 5) GPIO_ACTIVE_HIGH>;
};
led-2 {
label = "power_blue";
default-state = "off";
gpios = <&gpio0 ASPEED_GPIO(P, 4) GPIO_ACTIVE_HIGH>;
};
};
memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x80000000>;
};
p3v3_bmc_aux: regulator-p3v3-bmc-aux {
compatible = "regulator-fixed";
regulator-name = "p3v3_bmc_aux";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
spi_gpio: spi {
compatible = "spi-gpio";
#address-cells = <1>;
#size-cells = <0>;
sck-gpios = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
mosi-gpios = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
miso-gpios = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
num-chipselects = <1>;
cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
status = "okay";
tpm@0 {
compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
spi-max-frequency = <33000000>;
reg = <0>;
};
};
};
&adc0 {
aspeed,int-vref-microvolt = <2500000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
&pinctrl_adc2_default &pinctrl_adc3_default
&pinctrl_adc4_default &pinctrl_adc5_default
&pinctrl_adc6_default &pinctrl_adc7_default>;
status = "okay";
};
&adc1 {
aspeed,int-vref-microvolt = <2500000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_adc10_default>;
status = "okay";
};
&ehci0 {
status = "okay";
};
&ehci1 {
status = "okay";
};
&fmc {
status = "okay";
flash@0 {
status = "okay";
m25p,fast-read;
label = "bmc";
spi-max-frequency = <50000000>;
#include "openbmc-flash-layout-128.dtsi"
};
flash@1 {
status = "okay";
m25p,fast-read;
label = "alt-bmc";
spi-max-frequency = <50000000>;
};
};
&gpio0 {
gpio-line-names =
/*A0-A7*/ "","","","","","","","",
/*B0-B7*/ "rtc-battery-voltage-read-enable","","","BMC_READY",
"","led-identify","","",
/*C0-C7*/ "","","","","","","","",
/*D0-D7*/ "","","","","","","","",
/*E0-E7*/ "","","","","","","","",
/*F0-F7*/ "","","","","","","","",
/*G0-G7*/ "FM_MUX1_SEL_R","","","","","","","",
/*H0-H7*/ "","","","","","","","",
/*I0-I7*/ "","","","","","","","",
/*J0-J7*/ "","","","","","","","",
/*K0-K7*/ "","","","","","","","",
/*L0-L7*/ "","","","","","","","",
/*M0-M7*/ "","","","","","","","",
/*N0-N7*/ "led-postcode-0","led-postcode-1",
"led-postcode-2","led-postcode-3",
"led-postcode-4","led-postcode-5",
"led-postcode-6","led-postcode-7",
/*O0-O7*/ "","","","","","","","",
/*P0-P7*/ "power-button","","reset-button","",
"led-power","","","",
/*Q0-Q7*/ "","","","","","","","",
/*R0-R7*/ "","","","","","","","",
/*S0-S7*/ "","","power-host-control","","","","","",
/*T0-T7*/ "","","","","","","","",
/*U0-U7*/ "","","","","","","","",
/*V0-V7*/ "","","","","","","","",
/*W0-W7*/ "","","","","","","","",
/*X0-X7*/ "","","","","","","","",
/*Y0-Y7*/ "","","","","","","","",
/*Z0-Z7*/ "","","","","","","","";
};
&gpio1 {
gpio-line-names =
/*18A0-18A7*/ "","","","","","","","",
/*18B0-18B7*/ "","","","",
"FM_BOARD_BMC_REV_ID0","FM_BOARD_BMC_REV_ID1",
"FM_BOARD_BMC_REV_ID2","",
/*18C0-18C7*/ "SPI_BMC_BIOS_ROM_IRQ0_R_N","","","","","","","",
/*18D0-18D7*/ "","","","","","","","",
/*18E0-18E3*/ "FM_BMC_PROT_LS_EN","AC_PWR_BMC_BTN_R_N","","";
};
&i2c0 {
status = "okay";
// MB FRU
eeprom@53 {
compatible = "atmel,24c128";
reg = <0x53>;
};
rtc@68 {
compatible = "dallas,ds1339";
reg = <0x68>;
};
};
&i2c1 {
status = "okay";
gpio@20 {
compatible = "nxp,pca9555";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <112 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"FM_NIC_PPS_IN_OE_N","FM_NIC_PPS_OUT_OE_N",
"FM_CPU0_TRIGGERTSC_OE_N","FM_NIC_PPS_IN_MUX_OE_N",
"FM_CPU0_CORETYPE0","FM_CPU0_CORETYPE1",
"FM_CPU0_CORETYPE2","FM_NIC_PPS_OUT_MUX_OE",
"CLKMUX_INPUT_LOSS_U45_R_N","FM_CPU0_SP7R1",
"FM_CPU0_SP7R2","FM_CPU0_SP7R3",
"FM_CPU0_SP7R4","",
"FM_NIC_PPS_IN_S0_R","FM_NIC_PPS_IN_S1_R";
};
fan-controller@21{
compatible = "maxim,max31790";
reg = <0x21>;
};
gpio@22 {
compatible = "nxp,pca9555";
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <116 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"FM_CBL_PRSNT_0A_N","FM_CBL_PRSNT_0B_N",
"FM_CBL_PRSNT_1A_N","FM_CBL_PRSNT_1B_N",
"FM_MODULE_PWRGD_0A","FM_MODULE_PWRGD_0B",
"CLKMUX_INPUT_LOSS_U88_R_N","FM_MODULE_PWRGD_1B",
"","",
"CLKMUX_INPUT_LOSS_U83_R_N","CLKMUX_INPUT_LOSS_U84_R_N",
"FM_P3V3_E1S_0_FAULT_R_N","FM_P3V3_E1S_1_FAULT_R_N",
"E1S_0_P12V_ADC_R_ALERT","E1S_1_P12V_ADC_R_ALERT";
};
gpio@24 {
compatible = "nxp,pca9555";
reg = <0x24>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <114 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"FM_CBL_PRSNT_2A_N","FM_CBL_PRSNT_2B_N",
"FM_CBL_PRSNT_3A_N","FM_CBL_PRSNT_3B_N",
"FM_CBL_PRSNT_4A_N","FM_CBL_PRSNT_4B_N",
"FM_P3V3_NIC_400G_FAULT_R_N","FM_MODULE_PWRGD_2B",
"OCP_SFF_P12V_ADC_R_ALERT","FM_MODULE_PWRGD_3B",
"FM_THERMAL_ALERT_R_N","FM_MODULE_PWRGD_4B",
"FM_CBL_PRSNT_OSFP_A_N","FM_CBL_PRSNT_OSFP_B_N",
"FM_JTAG_MCIO_MUX_S0","FM_JTAG_MCIO_MUX_S1";
};
gpio@26 {
compatible = "nxp,pca9555";
reg = <0x26>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&sgpiom0>;
interrupts = <118 IRQ_TYPE_LEVEL_LOW>;
gpio-line-names =
"FAN_0_PRSNT_R1_N","FAN_1_PRSNT_R1_N",
"FAN_2_PRSNT_R1_N","FAN_3_PRSNT_R1_N",
"P12V_FAN_0_ADC_ALERT","P12V_FAN_1_ADC_ALERT",
"P12V_FAN_2_ADC_ALERT","P12V_FAN_3_ADC_ALERT",
"P12V_FAN0_PWRGD_R","P12V_FAN1_PWRGD_R",
"P12V_FAN2_PWRGD_R","P12V_FAN3_PWRGD_R",
"","","","";
};
};
&i2c4 {
status = "okay";
i2c-mux@70 {
compatible = "nxp,pca9548";
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux-idle-disconnect;
i2c4mux0ch0: i2c@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
// HPM Board ID EEPROM
eeprom@51 {
compatible = "atmel,24c128";
reg = <0x51>;
};
// SCM Board ID EEPROM
eeprom@53 {
compatible = "atmel,24c128";
reg = <0x53>;
};
};
i2c4mux0ch1: i2c@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c4mux0ch2: i2c@2 {
reg = <2>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c4mux0ch3: i2c@3 {
reg = <3>;
#address-cells = <1>;
#size-cells = <0>;
power-monitor@40 {
compatible = "ti,ina230";
reg = <0x40>;
shunt-resistor = <2000>;
};
power-monitor@42 {
compatible = "ti,ina230";
reg = <0x42>;
shunt-resistor = <2000>;
};
power-monitor@44 {
compatible = "ti,ina230";
reg = <0x44>;
shunt-resistor = <2000>;
};
power-monitor@46 {
compatible = "ti,ina230";
reg = <0x46>;
shunt-resistor = <2000>;
};
voltage-sensor@48 {
compatible = "ti,ads7830";
reg = <0x48>;
vref-supply = <&p3v3_bmc_aux>;
};
voltage-sensor@4a {
compatible = "ti,ads7830";
reg = <0x4a>;
vref-supply = <&p3v3_bmc_aux>;
};
temperature-sensor@4c {
compatible = "ti,tmp75";
reg = <0x4c>;
};
temperature-sensor@4e {
compatible = "ti,tmp75";
reg = <0x4e>;
};
};
i2c4mux0ch4: i2c@4 {
reg = <4>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c4mux0ch5: i2c@5 {
reg = <5>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c4mux0ch6: i2c@6 {
reg = <6>;
#address-cells = <1>;
#size-cells = <0>;
power-monitor@40 {
compatible = "ti,ina230";
reg = <0x40>;
shunt-resistor = <2000>;
};
power-monitor@42 {
compatible = "ti,ina230";
reg = <0x42>;
shunt-resistor = <2000>;
};
power-monitor@44 {
compatible = "ti,ina230";
reg = <0x44>;
shunt-resistor = <2000>;
};
power-monitor@46 {
compatible = "ti,ina230";
reg = <0x46>;
shunt-resistor = <2000>;
};
voltage-sensor@48 {
compatible = "ti,ads7830";
reg = <0x48>;
};
};
i2c4mux0ch7: i2c@7 {
reg = <7>;
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@4b {
compatible = "ti,tmp75";
reg = <0x4b>;
};
temperature-sensor@4f {
compatible = "ti,tmp75";
reg = <0x4f>;
};
// FIO FRU
eeprom@53 {
compatible = "atmel,24c512";
reg = <0x53>;
};
};
};
};
&i2c5 {
status = "okay";
// E1S BP FRU
eeprom@52 {
compatible = "atmel,24c64";
reg = <0x52>;
};
i2c-mux@71 {
compatible = "nxp,pca9546";
reg = <0x71>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux-idle-disconnect;
i2c5mux0ch0: i2c@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c5mux0ch1: i2c@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c5mux0ch2: i2c@2 {
reg = <2>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c5mux0ch3: i2c@3 {
reg = <3>;
#address-cells = <1>;
#size-cells = <0>;
};
};
i2c-mux@72 {
compatible = "nxp,pca9546";
reg = <0x72>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux-idle-disconnect;
i2c5mux1ch0: i2c@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
voltage-sensor@48 {
compatible = "ti,ads7830";
reg = <0x48>;
};
};
i2c5mux1ch1: i2c@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@48 {
compatible = "ti,tmp75";
reg = <0x48>;
};
};
i2c5mux1ch2: i2c@2 {
reg = <2>;
#address-cells = <1>;
#size-cells = <0>;
power-monitor@40 {
compatible = "ti,ina230";
reg = <0x40>;
shunt-resistor = <2000>;
};
power-monitor@41 {
compatible = "ti,ina230";
reg = <0x41>;
shunt-resistor = <2000>;
};
power-monitor@44 {
compatible = "ti,ina230";
reg = <0x44>;
shunt-resistor = <2000>;
};
power-monitor@45 {
compatible = "ti,ina230";
reg = <0x45>;
shunt-resistor = <2000>;
};
};
i2c5mux1ch3: i2c@3 {
reg = <3>;
#address-cells = <1>;
#size-cells = <0>;
gpio@74 {
compatible = "nxp,pca9539";
reg = <0x74>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"P12V_E1S_ADC_ALERT","BUFF0_100M_LOSB_PLD",
"E1S_BP_SKU_ID0","E1S_BP_SKU_ID1",
"E1S_BP_SKU_ID2","E1S_BP_REV_ID0",
"E1S_BP_REV_ID1","E1S_BP_REV_ID2",
"P3V3_E1S_1_FAULT_R_N","P3V3_E1S_2_FAULT_R_N",
"P3V3_E1S_3_FAULT_R_N","P3V3_E1S_4_FAULT_R_N",
"P12V_E1S_1_FAULT_R_N","P12V_E1S_2_FAULT_R_N",
"P12V_E1S_3_FAULT_R_N","P12V_E1S_4_FAULT_R_N";
};
};
};
};
&i2c6 {
status = "okay";
// Rainbow0 FRU
eeprom@52 {
compatible = "atmel,24c256";
reg = <0x52>;
};
};
&i2c7 {
status = "okay";
};
&i2c8 {
status = "okay";
// Rainbow2 FRU
eeprom@52 {
compatible = "atmel,24c256";
reg = <0x52>;
};
};
&i2c9 {
status = "okay";
temperature-sensor@4b {
compatible = "ti,tmp75";
reg = <0x4b>;
};
// SCM FRU
eeprom@50 {
compatible = "atmel,24c128";
reg = <0x50>;
};
// BSM FRU
eeprom@56 {
compatible = "atmel,24c64";
reg = <0x56>;
};
};
&i2c10 {
status = "okay";
// Rainbow3 FRU
eeprom@52 {
compatible = "atmel,24c256";
reg = <0x52>;
};
};
&i2c11 {
status = "okay";
// OCP NIC TEMP
temperature-sensor@1f {
compatible = "ti,tmp421";
reg = <0x1f>;
};
// OCP NIC FRU
eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
};
};
&i2c12 {
status = "okay";
// SWB FRU
eeprom@52 {
compatible = "atmel,24c64";
reg = <0x52>;
};
i2c-mux@72 {
compatible = "nxp,pca9548";
reg = <0x72>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux-idle-disconnect;
i2c12mux0ch0: i2c@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@48 {
compatible = "ti,tmp75";
reg = <0x48>;
};
};
i2c12mux0ch1: i2c@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
power-monitor@42 {
compatible = "mps,mp2971";
reg = <0x42>;
};
power-monitor@43 {
compatible = "mps,mp2971";
reg = <0x43>;
};
};
i2c12mux0ch2: i2c@2 {
reg = <2>;
#address-cells = <1>;
#size-cells = <0>;
power-monitor@40 {
compatible = "ti,ina230";
reg = <0x40>;
shunt-resistor = <2000>;
};
power-monitor@41 {
compatible = "ti,ina230";
reg = <0x41>;
shunt-resistor = <2000>;
};
};
i2c12mux0ch3: i2c@3 {
reg = <3>;
#address-cells = <1>;
#size-cells = <0>;
power-monitor@44 {
compatible = "ti,ina230";
reg = <0x44>;
shunt-resistor = <2000>;
};
power-monitor@45 {
compatible = "ti,ina230";
reg = <0x45>;
shunt-resistor = <2000>;
};
};
i2c12mux0ch4: i2c@4 {
reg = <4>;
#address-cells = <1>;
#size-cells = <0>;
voltage-sensor@49 {
compatible = "ti,ads7830";
reg = <0x49>;
};
};
i2c12mux0ch5: i2c@5 {
reg = <5>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c12mux0ch6: i2c@6 {
reg = <6>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c12mux0ch7: i2c@7 {
reg = <7>;
#address-cells = <1>;
#size-cells = <0>;
};
};
};
&i2c13 {
status = "okay";
// Rainbow1 FRU
eeprom@52 {
compatible = "atmel,24c256";
reg = <0x52>;
};
};
&i2c14 {
status = "okay";
};
&i2c15 {
status = "okay";
};
&kcs2 {
aspeed,lpc-io-reg = <0xca8>;
status = "okay";
};
&kcs3 {
aspeed,lpc-io-reg = <0xca2>;
status = "okay";
};
&mac2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rmii3_default>;
use-ncsi;
status = "okay";
};
&mac3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rmii4_default>;
use-ncsi;
status = "okay";
};
&sgpiom0 {
ngpios = <128>;
bus-frequency = <2000000>;
gpio-line-names =
/*in - out - in - out */
/*A0-A3 line 0-7*/
"PDB1_HSC_PWR_OK","power-chassis-control",
"PDB2_HSC_PWR_OK","FM_MODULE_PWRGD_0A_OUT",
"PWRGD_P12V_MEM","FM_MODULE_PWRGD_0B_OUT",
"PWRGD_P12V_SCM","FM_MODULE_PWRGD_1B_OUT",
/*A4-A7 line 8-15*/
"PWRGD_P12V_FAN","FM_MODULE_PWRGD_2B_OUT",
"PWRGD_P5V_AUX","FM_MODULE_PWRGD_3B_OUT",
"power-chassis-good","FM_MODULE_PWRGD_4B_OUT",
"PWRGD_P1V8_LDO","FM_CBL_PRSNT_0A_N_OUT",
/*B0-B3 line 16-23*/
"PWRGD_P1V_LDO","FM_CBL_PRSNT_0B_N_OUT",
"PWRGD_PVDD33_S5","FM_CBL_PRSNT_1A_N_OUT",
"PWRGD_PVDD18_S5_P0","FM_CBL_PRSNT_1B_N_OUT",
"CPU0_SLP_S5_N","FM_CBL_PRSNT_2A_N_OUT",
/*B4-B7 line 24-31*/
"PWRGD_PVDDIO_MEM_S3_P0","FM_CBL_PRSNT_2B_N_OUT",
"CPU0_SLP_S3_N","FM_CBL_PRSNT_3A_N_OUT",
"FM_MODULE_PWRGD_1B","FM_CBL_PRSNT_3B_N_OUT",
"FM_MODULE_PWRGD_2B","FM_CBL_PRSNT_4A_N_OUT",
/*C0-C3 line 32-39*/
"FM_MODULE_PWRGD_3B","FM_CBL_PRSNT_4B_N_OUT",
"FM_MODULE_PWRGD_4B","P12V_FAN0_PWRGD_OUT",
"FM_MODULE_PWRGD_0B","P12V_FAN1_PWRGD_OUT",
"PWRGD_PVDDIO_P0","P12V_FAN2_PWRGD_OUT",
/*C4-C7 line 40-47*/
"PWRGD_PVDDCR_SOC_P0","P12V_FAN3_PWRGD_OUT",
"PWRGD_PVDDCR_CPU0_P0","P12V_FAN4_PWRGD_OUT",
"PWRGD_PVDDCR_CPU1_P0","P12V_FAN5_PWRGD_OUT",
"FM_CPU0_PWR_GOOD","P12V_FAN6_PWRGD_OUT",
/*D0-D3 line 48-55*/
"host0-ready","P12V_FAN7_PWRGD_OUT",
"FM_PWRGD_CPU0_PWROK","FAN_0_PRSNT_R1_N_OUT",
"FM_RST_CPU0_RESETL_N","FAN_1_PRSNT_R1_N_OUT",
"RST_CPU0_PERST0_R_N","FAN_2_PRSNT_R1_N_OUT",
/*D4-D7 line 56-63*/
"RST_CPU0_PERST1_R_N","FAN_3_PRSNT_R1_N_OUT",
"BIOS_POST_CMPLT","FAN_4_PRSNT_R1_N_OUT",
"","FAN_5_PRSNT_R1_N_OUT",
"","FAN_6_PRSNT_R1_N_OUT",
/*E0-E3 line 64-71*/
"FM_PWRGD_CHAD_CPU0","FAN_7_PRSNT_R1_N_OUT",
"FM_PWRGD_CHEH_CPU0","TRAY_SLOT_ID0_OUT",
"FM_PWRGD_CHIL_CPU0","TRAY_SLOT_ID1_OUT",
"FM_PWRGD_CHMP_CPU0","TRAY_SLOT_ID2_OUT",
/*E4-E7 line 72-79*/
"P12V_E1S_0_PWRGD","TRAY_SLOT_ID3_OUT",
"P12V_E1S_1_PWRGD","TRAY_SLOT_ID4_OUT",
"P3V3_E1S_0_PWRGD","SCM_JTAG_MUX_S0_R",
"P3V3_E1S_1_PWRGD","SCM_JTAG_MUX_S1_R",
/*F0-F3 line 80-87*/
"FM_MODULE_PWRGD_0A","BMC_SGPIO_READY",
"OCP_V3_1_P3V3_PLD_R_PWRGD","CPU0_SYS_RESET_N",
"P12V_OCP_V3_1_PLD_PWRGD","RST_CPU0_KBRST_N",
"PWRGD_OCP_SFF_PWR_GOOD","BIOS_DEBUG_MODE",
/*F4-F7 line 88-95*/
"","CLR_CMOS",
"","I3C_SPD_MUX_FORCE_SEL",
"","FM_JTAG_HOST_SEL",
"","TRAY_PRESENT_N",
/*G0-G3 line 96-103*/
"MB_REV_ID_0","UART_BMC_SEL0",
"MB_REV_ID_1","UART_BMC_SEL1",
"MB_REV_ID_2","SCM_USB_SEL",
"MB_SKU_ID_0","FORCE_ALL_PWRON",
/*G4-G7 line 104-111*/
"MB_SKU_ID_1","PASSWORD_CLEAR",
"MB_SKU_ID_2","",
"MB_SKU_ID_3","",
"","BIOS_DEBUG_MODE",
/*H0-H3 line 112-119*/
"FM_IOEXP_U538_INT_N","",
"FM_IOEXP_U539_INT_N","",
"FM_IOEXP_U540_INT_N","",
"FM_IOEXP_U541_INT_N","",
/*H4-H7 line 120-127*/
"FM_IOEXP_PDB2_U1003_INT_N","",
"","","","","","",
/*I0-I3 line 128-135*/
"","","","",
"PDB_IRQ_PMBUS_ALERT_ISO_R_N","",
"PDB_UV_ALERT_ISO_R_N","",
/*I4-I7 line 136-143*/
"P12V_SCM_ADC_ALERT","",
"CPU0_REGS_I2C_ALERT_N","",
"FM_RTC_ALERT_N","",
"APML_CPU0_ALERT_R_N","",
/*J0-J3 line 144-151*/
"SMB_RJ45_FIO_TMP_ALERT","",
"FM_SMB_ALERT_MCIO_0A_N","",
"I3C_MCIO_0B_ALERT_ISO_R_N","",
"FM_SMB_ALERT_MCIO_1A_N","",
/*J4-J7 line 152-159*/
"I3C_MCIO_1B_ALERT_ISO_R_N","",
"FM_SMB_ALERT_MCIO_2A_N","",
"I3C_MCIO_2B_ALERT_ISO_R_N","",
"FM_SMB_ALERT_MCIO_3A_N","",
/*K0-K3 line 160-167*/
"I3C_MCIO_3B_ALERT_ISO_R_N","",
"FM_SMB_ALERT_MCIO_4A_N","",
"I3C_MCIO_4B_ALERT_ISO_R_N","",
"","",
/*K4-K7 line 168-175*/
"","","","","","","","",
/*L0-L3 line 176-183*/
"FM_CPU0_THERMTRIP_N","",
"FM_CPU0_PROCHOT_N","",
"FM_CPU0_SMERR_N","",
"FM_PVDDCR_CPU0_P0_OCP_N","",
/*L4-L7 line 184-191*/
"FM_PVDDCR_CPU1_P0_OCP_N","",
"FM_PVDDCR_SOC_P0_OCP_N","",
"FM_OCP_PWRBRK_R_N","",
"PMIC_ERROR_N","",
/*M0-M3 line 192-199*/
"","","","","","","","",
/*M4-M7 line 200-207*/
"","","","","","","","",
/*N0-N3 line 208-215*/
"FM_PRSNT_CPU0_N","",
"OCP_SFF_PRSNT_N","",
"E1S_0_PRSNT_R_N","",
"E1S_BP_0_PRSNT_R_N","",
/*N4-N7 line 216-223*/
"E1S_BP_1_PRSNT_R_N","",
"E1S_BP_2_PRSNT_R_N","",
"E1S_BP_3_PRSNT_R_N","",
"PDB_PRSNT_J311_N","",
/*O0-O3 line 224-231*/
"PDB_PRSNT_J312_N","",
"PDB_PRSNT_J313_N","",
"PDB_PRSNT_J314_N","",
"PRSNT_RJ45_FIO_N_R","",
/*O4-O7 line 232-239*/
"PRSNT_LEAK_CABLE_1_R_N","",
"PRSNT_LEAK_CABLE_2_R_N","",
"PRSNT_HDT_N","",
"","",
/*P0-P3 line 240-247*/
"","","","","","","","",
/*P4-P7 line 248-255*/
"","","","","","","","";
status = "okay";
};
// BIOS Flash
&spi2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spi2_default>;
status = "okay";
flash@0 {
m25p,fast-read;
label = "pnor";
spi-max-frequency = <12000000>;
spi-tx-bus-width = <2>;
spi-rx-bus-width = <2>;
status = "okay";
};
};
// HOST BIOS Debug
&uart1 {
status = "okay";
};
&uart3 {
status = "okay";
};
&uart4 {
status = "okay";
};
// BMC Debug Console
&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

@@ -189,6 +189,11 @@
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "SLOT1_UART_SEL0","SLOT1_UART_SEL1",
"SLOT1_UART_SEL2","","","","","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","","";
};
gpio@23 {
@@ -235,6 +240,11 @@
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "SLOT2_UART_SEL0","SLOT2_UART_SEL1",
"SLOT2_UART_SEL2","","","","","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","","";
};
gpio@23 {
@@ -281,6 +291,11 @@
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "SLOT3_UART_SEL0","SLOT3_UART_SEL1",
"SLOT3_UART_SEL2","","","","","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","","";
};
gpio@23 {
@@ -327,6 +342,11 @@
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "SLOT4_UART_SEL0","SLOT4_UART_SEL1",
"SLOT4_UART_SEL2","","","","","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","","";
};
gpio@23 {
@@ -373,6 +393,11 @@
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "SLOT5_UART_SEL0","SLOT5_UART_SEL1",
"SLOT5_UART_SEL2","","","","","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","","";
};
gpio@23 {
@@ -419,6 +444,11 @@
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "SLOT6_UART_SEL0","SLOT6_UART_SEL1",
"SLOT6_UART_SEL2","","","","","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","","";
};
gpio@23 {
@@ -465,6 +495,11 @@
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "SLOT7_UART_SEL0","SLOT7_UART_SEL1",
"SLOT7_UART_SEL2","","","","","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","","";
};
gpio@23 {
@@ -511,6 +546,11 @@
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "SLOT8_UART_SEL0","SLOT8_UART_SEL1",
"SLOT8_UART_SEL2","","","","","",
"","","","","","","","",
"","","","","","","","",
"","","","","","","","";
};
gpio@23 {

View File

@@ -155,7 +155,7 @@
/*Y0-Y7*/ "","","","","","","","",
/*Z0-Z7*/ "","","","","","","","";
usb_power {
usb-power-hog {
gpio-hog;
gpios = <ASPEED_GPIO(O, 3) GPIO_ACTIVE_LOW>;
output-high;

View File

@@ -312,7 +312,7 @@
/*Y0-Y7*/ "","","","","","","","",
/*Z0-Z7*/ "","","","","","","","";
usb_power {
usb-power-hog {
gpio-hog;
gpios = <ASPEED_GPIO(O, 3) GPIO_ACTIVE_LOW>;
output-high;

View File

@@ -224,14 +224,14 @@
/*Y0-Y7*/ "","","","","","","","",
/*Z0-Z7*/ "","","","","","","","";
i2c3_mux_oe_n {
i2c3-mux-oe-n-hog {
gpio-hog;
gpios = <ASPEED_GPIO(G, 6) GPIO_ACTIVE_LOW>;
output-high;
line-name = "I2C3_MUX_OE_N";
};
usb_power {
usb-power-hog {
gpio-hog;
gpios = <ASPEED_GPIO(O, 3) GPIO_ACTIVE_LOW>;
output-high;

View File

@@ -116,63 +116,63 @@
leds {
compatible = "gpio-leds";
led-0 {
led-bmc-ready {
gpios = <&gpio0 ASPEED_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
};
led-1 {
led-bmc-hb {
gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_HIGH>;
};
led-2 {
led-rear-enc-fault0 {
gpios = <&gpio0 ASPEED_GPIO(S, 6) GPIO_ACTIVE_HIGH>;
};
led-3 {
led-rear-enc-id0 {
gpios = <&gpio0 ASPEED_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
};
led-4 {
led-fan0-fault {
gpios = <&pca3 5 GPIO_ACTIVE_LOW>;
};
led-5 {
led-fan1-fault {
gpios = <&pca3 6 GPIO_ACTIVE_LOW>;
};
led-6 {
led-fan2-fault {
gpios = <&pca3 7 GPIO_ACTIVE_LOW>;
};
led-7 {
led-fan3-fault {
gpios = <&pca3 8 GPIO_ACTIVE_LOW>;
};
led-8 {
led-fan4-fault {
gpios = <&pca3 9 GPIO_ACTIVE_LOW>;
};
led-9 {
led-fan5-fault {
gpios = <&pca3 10 GPIO_ACTIVE_LOW>;
};
led-a {
led-fan6-fault {
gpios = <&pca3 11 GPIO_ACTIVE_LOW>;
};
led-b {
led-nvmed0-fault {
gpios = <&pca4 4 GPIO_ACTIVE_HIGH>;
};
led-c {
led-nvmed1-fault {
gpios = <&pca4 5 GPIO_ACTIVE_HIGH>;
};
led-d {
led-nvmed2-fault {
gpios = <&pca4 6 GPIO_ACTIVE_HIGH>;
};
led-e {
led-nvmed3-fault {
gpios = <&pca4 7 GPIO_ACTIVE_HIGH>;
};
};
@@ -355,7 +355,35 @@
status = "okay";
};
&pinctrl {
pinctrl_gpiol4_unbiased: gpiol4 {
pins = "C15";
bias-disable;
};
pinctrl_gpiol5_unbiased: gpiol5 {
pins = "F15";
bias-disable;
};
pinctrl_gpiol6_unbiased: gpiol6 {
pins = "B14";
bias-disable;
};
pinctrl_gpiol7_unbiased: gpiol7 {
pins = "C14";
bias-disable;
};
};
&gpio0 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpiol4_unbiased
&pinctrl_gpiol5_unbiased
&pinctrl_gpiol6_unbiased
&pinctrl_gpiol7_unbiased>;
gpio-line-names =
/*A0-A7*/ "","","","","","","","",
/*B0-B7*/ "","","","","bmc-tpm-reset","","","",
@@ -368,14 +396,14 @@
/*I0-I7*/ "","","","","","","","",
/*J0-J7*/ "","","","","","","","",
/*K0-K7*/ "","","","","","","","",
/*L0-L7*/ "","","","","","","","bmc-ready",
/*L0-L7*/ "","","","","","","","led-bmc-ready",
/*M0-M7*/ "","","","","","","","",
/*N0-N7*/ "fpga-debug-enable","","","","","","","",
/*N0-N7*/ "pch-reset","","","","","flash-write-override","","",
/*O0-O7*/ "","","","","","","","",
/*P0-P7*/ "","","","","","","","bmc-hb",
/*P0-P7*/ "","","","","","","","led-bmc-hb",
/*Q0-Q7*/ "","","","","","","pch-ready","",
/*R0-R7*/ "","","","","","","","",
/*S0-S7*/ "","","","","","","rear-enc-fault0","rear-enc-id0",
/*S0-S7*/ "","","","","","","led-rear-enc-fault0","led-rear-enc-id0",
/*T0-T7*/ "","","","","","","","",
/*U0-U7*/ "","","","","","","","",
/*V0-V7*/ "","rtc-battery-voltage-read-enable","","power-chassis-control","","","","",
@@ -383,6 +411,34 @@
/*X0-X7*/ "fpga-pgood","power-chassis-good","pch-pgood","","","","","",
/*Y0-Y7*/ "","","","","","","","",
/*Z0-Z7*/ "","","","","","","","";
pin-gpio-hog-0 {
gpio-hog;
gpios = <ASPEED_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
input;
line-name = "RST_RTCRST_N";
};
pin-gpio-hog-1 {
gpio-hog;
gpios = <ASPEED_GPIO(L, 5) GPIO_ACTIVE_HIGH>;
input;
line-name = "RST_SRTCRST_N";
};
pin-gpio-hog-2 {
gpio-hog;
gpios = <ASPEED_GPIO(L, 6) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_FAN_E3_SVC_PEX_INT_N";
};
pin-gpio-hog-3 {
gpio-hog;
gpios = <ASPEED_GPIO(O, 6) GPIO_ACTIVE_LOW>;
output-low;
line-name = "isolate_errs_cpu1";
};
};
&emmc_controller {
@@ -401,7 +457,7 @@
&sgpiom0 {
status = "okay";
ngpios = <128>;
bus-frequency = <1000000>;
bus-frequency = <500000>;
};
&ibt {
@@ -486,23 +542,6 @@
compatible = "atmel,24c64";
reg = <0x50>;
};
regulator@60 {
compatible = "maxim,max8952";
reg = <0x60>;
max8952,default-mode = <0>;
max8952,dvs-mode-microvolt = <1250000>, <1200000>,
<1050000>, <950000>;
max8952,sync-freq = <0>;
max8952,ramp-speed = <0>;
regulator-name = "VR_v77_1v4";
regulator-min-microvolt = <770000>;
regulator-max-microvolt = <1400000>;
regulator-always-on;
regulator-boot-on;
};
};
&i2c1 {
@@ -763,6 +802,15 @@
&i2c4 {
status = "okay";
multi-master;
bus-frequency = <1000000>;
ipmb@10 {
compatible = "ipmb-dev";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
i2c-protocol;
};
};
&i2c5 {
@@ -1189,23 +1237,6 @@
compatible = "atmel,24c64";
reg = <0x50>;
};
regulator@60 {
compatible = "maxim,max8952";
reg = <0x60>;
max8952,default-mode = <0>;
max8952,dvs-mode-microvolt = <1250000>, <1200000>,
<1050000>, <950000>;
max8952,sync-freq = <0>;
max8952,ramp-speed = <0>;
regulator-name = "VR_v77_1v4";
regulator-min-microvolt = <770000>;
regulator-max-microvolt = <1400000>;
regulator-always-on;
regulator-boot-on;
};
};
&i2c11 {

View File

@@ -405,161 +405,161 @@
&gpio {
pin_gpio_b5 {
pin-gpio-b5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(B, 5) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "IRQ_BMC_PCH_SMI_LPC_N";
};
pin_gpio_f0 {
pin-gpio-f0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 0) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "IRQ_BMC_PCH_NMI_R";
};
pin_gpio_f3 {
pin-gpio-f3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 3) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "I2C_BUS0_RST_OUT_N";
};
pin_gpio_f4 {
pin-gpio-f4-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 4) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "FM_SKT0_FAULT_LED";
};
pin_gpio_f5 {
pin-gpio-f5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 5) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "FM_SKT1_FAULT_LED";
};
pin_gpio_g4 {
pin-gpio-g4-hog {
gpio-hog;
gpios = <ASPEED_GPIO(G, 4) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "FAN_PWR_CTL_N";
};
pin_gpio_g7 {
pin-gpio-g7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(G, 7) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "RST_BMC_PCIE_I2CMUX_N";
};
pin_gpio_h2 {
pin-gpio-h2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PSU1_FFS_N_R";
};
pin_gpio_h3 {
pin-gpio-h3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PSU2_FFS_N_R";
};
pin_gpio_i3 {
pin-gpio-i3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(I, 3) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_INTRUDED_COVER";
};
pin_gpio_j2 {
pin-gpio-j2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(J, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_BIOS_UPDATE_N";
};
pin_gpio_j3 {
pin-gpio-j3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(J, 3) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "RST_BMC_HDD_I2CMUX_N";
};
pin_gpio_s2 {
pin-gpio-s2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(S, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_VGA_SW";
};
pin_gpio_s4 {
pin-gpio-s4-hog {
gpio-hog;
gpios = <ASPEED_GPIO(S, 4) GPIO_ACTIVE_HIGH>;
output;
line-name = "VBAT_EN_N";
};
pin_gpio_s6 {
pin-gpio-s6-hog {
gpio-hog;
gpios = <ASPEED_GPIO(S, 6) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PU_BMC_GPIOS6";
};
pin_gpio_y0 {
pin-gpio-y0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(Y, 0) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "BMC_NCSI_MUX_CTL_S0";
};
pin_gpio_y1 {
pin-gpio-y1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(Y, 1) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "BMC_NCSI_MUX_CTL_S1";
};
pin_gpio_z0 {
pin-gpio-z0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(Z, 0) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "I2C_RISER2_INT_N";
};
pin_gpio_z2 {
pin-gpio-z2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(Z, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "I2C_RISER2_RESET_N";
};
pin_gpio_z3 {
pin-gpio-z3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "FM_BMC_PCH_SCI_LPC_N";
};
pin_gpio_z7 {
pin-gpio-z7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(Z, 7) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "BMC_POST_CMPLT_N";
};
pin_gpio_aa0 {
pin-gpio-aa0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AA, 0) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "HOST_BMC_USB_SEL";
};
pin_gpio_aa5 {
pin-gpio-aa5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AA, 5) GPIO_ACTIVE_HIGH>;
output-high;

View File

@@ -425,238 +425,238 @@
&gpio {
pin_gpio_a1 {
pin-gpio-a1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(A, 1) GPIO_ACTIVE_LOW>;
output-high;
line-name = "BMC_EMMC_RST_N";
};
pin_gpio_a3 {
pin-gpio-a3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(A, 3) GPIO_ACTIVE_LOW>;
output-high;
line-name = "PCH_PWROK_BMC_FPGA";
};
pin_gpio_b5 {
pin-gpio-b5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(B, 5) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "IRQ_BMC_PCH_SMI_LPC_N";
};
pin_gpio_b7 {
pin-gpio-b7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(B, 7) GPIO_ACTIVE_LOW>;
output-low;
line-name = "CPU_SM_WP";
};
pin_gpio_e0 {
pin-gpio-e0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(E, 0) GPIO_ACTIVE_HIGH>;
input;
line-name = "PDB_PSU_SEL";
};
pin_gpio_e2 {
pin-gpio-e2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(E, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "LOCATOR_LED_N";
};
pin_gpio_e5 {
pin-gpio-e5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(E, 5) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "FM_BMC_DBP_PRESENT_R1_N";
};
pin_gpio_e6 {
pin-gpio-e6-hog {
gpio-hog;
gpios = <ASPEED_GPIO(E, 6) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_ME_SECURITY_OVERRIDE_N";
};
pin_gpio_f0 {
pin-gpio-f0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 0) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "IRQ_BMC_PCH_NMI_R";
};
pin_gpio_f1 {
pin-gpio-f1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 1) GPIO_ACTIVE_HIGH>;
input;
line-name = "CPU2_PROCDIS_BMC_N";
};
pin_gpio_f2 {
pin-gpio-f2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "RM_THROTTLE_EN_N";
};
pin_gpio_f3 {
pin-gpio-f3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 3) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "FM_PMBUS_ALERT_B_EN";
};
pin_gpio_f4 {
pin-gpio-f4-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 4) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_FORCE_NM_THROTTLE_N";
};
pin_gpio_f6 {
pin-gpio-f6-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 6) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "FM_BMC_CPU_PWR_DEBUG_N";
};
pin_gpio_g7 {
pin-gpio-g7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(G, 7) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_PCIE_I2C_MUX_RST_N";
};
pin_gpio_h6 {
pin-gpio-h6-hog {
gpio-hog;
gpios = <ASPEED_GPIO(H, 6) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "FM_BMC_DBP_PRESENT_R2_N";
};
pin_gpio_i3 {
pin-gpio-i3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(I, 3) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "SPI_BMC_BIOS_WP_N";
};
pin_gpio_j1 {
pin-gpio-j1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(J, 1) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_USB_SEL";
};
pin_gpio_j2 {
pin-gpio-j2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(J, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PDB_SMB_RST_N";
};
pin_gpio_j3 {
pin-gpio-j3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(J, 3) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "SPI_BMC_BIOS_HOLD_N";
};
pin_gpio_l0 {
pin-gpio-l0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(L, 0) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PDB_FAN_TACH_SEL";
};
pin_gpio_l1 {
pin-gpio-l1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(L, 1) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "SYS_RESET_BMC_FPGA_N";
};
pin_gpio_l4 {
pin-gpio-l4-hog {
gpio-hog;
gpios = <ASPEED_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "FM_EFUSE_FAN_G1_EN";
};
pin_gpio_l5 {
pin-gpio-l5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(L, 5) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "FM_EFUSE_FAN_G2_EN";
};
pin_gpio_r6 {
pin-gpio-r6-hog {
gpio-hog;
gpios = <ASPEED_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
input;
line-name = "CPU3_PROCDIS_BMC_N";
};
pin_gpio_r7 {
pin-gpio-r7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
input;
line-name = "CPU4_PROCDIS_BMC_N";
};
pin_gpio_s1 {
pin-gpio-s1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(S, 1) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "DBP_SYSPWROK_BMC";
};
pin_gpio_s2 {
pin-gpio-s2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(S, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PCH_RST_RSMRST_N";
};
pin_gpio_s6 {
pin-gpio-s6-hog {
gpio-hog;
gpios = <ASPEED_GPIO(S, 6) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_HW_STRAP_5";
};
pin_gpio_z3 {
pin-gpio-z3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "FM_BMC_PCH_SCI_LPC_N";
};
pin_gpio_aa0 {
pin-gpio-aa0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AA, 0) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "FW_PSU_ALERT_EN_N";
};
pin_gpio_aa4 {
pin-gpio-aa4-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AA, 4) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "DBP_CPU_PREQ_N";
};
pin_gpio_ab3 {
pin-gpio-ab3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AB, 3) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "BMC_WDTRST";
};
pin_gpio_ac6 {
pin-gpio-ac6-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AC, 6) GPIO_ACTIVE_HIGH>;
output-high;

File diff suppressed because it is too large Load Diff

View File

@@ -52,12 +52,12 @@
gpios = <&gpio ASPEED_GPIO(B, 3) GPIO_ACTIVE_HIGH>;
};
bmc_err {
lable = "BMC_fault";
label = "BMC_fault";
gpios = <&gpio ASPEED_GPIO(H, 6) GPIO_ACTIVE_HIGH>;
};
sys_err {
lable = "Sys_fault";
label = "Sys_fault";
gpios = <&gpio ASPEED_GPIO(H, 7) GPIO_ACTIVE_HIGH>;
};
};
@@ -264,49 +264,49 @@
};
&gpio {
pin_gpio_b0 {
pin-gpio-b0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(B, 0) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_HDD1_PWR_EN";
};
pin_gpio_b5 {
pin-gpio-b5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(B, 5) GPIO_ACTIVE_HIGH>;
input;
line-name = "BMC_USB1_OCI2";
};
pin_gpio_h5 {
pin-gpio-h5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(H, 5) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_CP0_PERST_ENABLE_R";
};
pin_gpio_z2 {
pin-gpio-z2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(Z, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "RST_PCA9546_U177_N";
};
pin_gpio_aa6 {
pin-gpio-aa6-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AA, 6) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_CP0_RESET_N";
};
pin_gpio_aa7 {
pin-gpio-aa7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AA, 7) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_TPM_RESET_N";
};
pin_gpio_ab0 {
pin-gpio-ab0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(AB, 0) GPIO_ACTIVE_LOW>;
output-high;

View File

@@ -248,27 +248,27 @@
/*AB0-AB7*/ "","","","","","","","",
/*AC0-AC7*/ "","","","","","","","";
func_mode0 {
func-mode0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(D, 3) GPIO_ACTIVE_HIGH>;
output-low;
};
func_mode1 {
func-mode1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
output-low;
};
func_mode2 {
func-mode2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(D, 5) GPIO_ACTIVE_HIGH>;
output-low;
};
seq_cont {
seq-cont-hog {
gpio-hog;
gpios = <ASPEED_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
output-low;
};
ncsi_cfg {
ncsi-cfg-hog {
gpio-hog;
input;
gpios = <ASPEED_GPIO(E, 1) GPIO_ACTIVE_HIGH>;

View File

@@ -209,140 +209,140 @@
};
&gpio {
pin_func_mode0 {
pin-func-mode0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(C, 4) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "func_mode0";
};
pin_func_mode1 {
pin-func-mode1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(C, 5) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "func_mode1";
};
pin_func_mode2 {
pin-func-mode2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
output-low;
line-name = "func_mode2";
};
pin_gpio_a0 {
pin-gpio-a0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(A, 0) GPIO_ACTIVE_HIGH>;
input;
line-name = "BMC_FAN_RESERVED_N";
};
pin_gpio_a1 {
pin-gpio-a1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(A, 1) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "APSS_WDT_N";
};
pin_gpio_b1 {
pin-gpio-b1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(B, 1) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "APSS_BOOT_MODE";
};
pin_gpio_b2 {
pin-gpio-b2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(B, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "APSS_RESET_N";
};
pin_gpio_b7 {
pin-gpio-b7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(B, 7) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "SPIVID_STBY_RESET_N";
};
pin_gpio_d1 {
pin-gpio-d1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_POWER_UP";
};
pin_gpio_f1 {
pin-gpio-f1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 1) GPIO_ACTIVE_HIGH>;
input;
line-name = "BMC_BATTERY_TEST";
};
pin_gpio_f4 {
pin-gpio-f4-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 4) GPIO_ACTIVE_HIGH>;
input;
line-name = "AST_HW_FAULT_N";
};
pin_gpio_f5 {
pin-gpio-f5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 5) GPIO_ACTIVE_HIGH>;
input;
line-name = "AST_SYS_FAULT_N";
};
pin_gpio_f7 {
pin-gpio-f7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(F, 7) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_FULL_SPEED_N";
};
pin_gpio_g3 {
pin-gpio-g3-hog {
gpio-hog;
gpios = <ASPEED_GPIO(G, 3) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "BMC_FAN_ERROR_N";
};
pin_gpio_g4 {
pin-gpio-g4-hog {
gpio-hog;
gpios = <ASPEED_GPIO(G, 4) GPIO_ACTIVE_HIGH>;
input;
line-name = "BMC_WDT_RST1_P";
};
pin_gpio_g5 {
pin-gpio-g5-hog {
gpio-hog;
gpios = <ASPEED_GPIO(G, 5) GPIO_ACTIVE_HIGH>;
input;
line-name = "BMC_WDT_RST2_P";
};
pin_gpio_h0 {
pin-gpio-h0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(H, 0) GPIO_ACTIVE_HIGH>;
input;
line-name = "PE_SLOT_TEST_EN_N";
};
pin_gpio_h1 {
pin-gpio-h1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
input;
line-name = "BMC_RTCRST_N";
};
pin_gpio_h2 {
pin-gpio-h2-hog {
gpio-hog;
gpios = <ASPEED_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
output-high;
line-name = "SYS_PWROK_BMC";
};
pin_gpio_h7 {
pin-gpio-h7-hog {
gpio-hog;
gpios = <ASPEED_GPIO(H, 7) GPIO_ACTIVE_HIGH>;
output-high;

View File

@@ -263,17 +263,17 @@
/*AB0-AB7*/ "","","","","","","","",
/*AC0-AC7*/ "","","","","","","","";
nic_func_mode0 {
nic-func-mode0-hog {
gpio-hog;
gpios = <ASPEED_GPIO(D, 3) GPIO_ACTIVE_HIGH>;
output-low;
};
nic_func_mode1 {
nic-func-mode1-hog {
gpio-hog;
gpios = <ASPEED_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
output-low;
};
seq_cont {
seq-cont-hog {
gpio-hog;
gpios = <ASPEED_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
output-low;

View File

@@ -1,974 +0,0 @@
// SPDX-License-Identifier: GPL-2.0+
/dts-v1/;
#include "aspeed-g5.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h>
#include <dt-bindings/leds/leds-pca955x.h>
/ {
model = "Swift BMC";
compatible = "ibm,swift-bmc", "aspeed,ast2500";
chosen {
stdout-path = &uart5;
bootargs = "console=ttyS4,115200 earlycon";
};
memory@80000000 {
reg = <0x80000000 0x20000000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
flash_memory: region@98000000 {
no-map;
reg = <0x98000000 0x04000000>; /* 64M */
};
gfx_memory: framebuffer {
size = <0x01000000>;
alignment = <0x01000000>;
compatible = "shared-dma-pool";
reusable;
};
};
gpio-keys {
compatible = "gpio-keys";
event-air-water {
label = "air-water";
gpios = <&gpio ASPEED_GPIO(B, 5) GPIO_ACTIVE_LOW>;
linux,code = <ASPEED_GPIO(B, 5)>;
};
event-checkstop {
label = "checkstop";
gpios = <&gpio ASPEED_GPIO(J, 2) GPIO_ACTIVE_LOW>;
linux,code = <ASPEED_GPIO(J, 2)>;
};
event-ps0-presence {
label = "ps0-presence";
gpios = <&gpio ASPEED_GPIO(R, 7) GPIO_ACTIVE_LOW>;
linux,code = <ASPEED_GPIO(R, 7)>;
};
event-ps1-presence {
label = "ps1-presence";
gpios = <&gpio ASPEED_GPIO(N, 0) GPIO_ACTIVE_LOW>;
linux,code = <ASPEED_GPIO(N, 0)>;
};
event-oppanel-presence {
label = "oppanel-presence";
gpios = <&gpio ASPEED_GPIO(A, 7) GPIO_ACTIVE_LOW>;
linux,code = <ASPEED_GPIO(A, 7)>;
};
event-opencapi-riser-presence {
label = "opencapi-riser-presence";
gpios = <&gpio ASPEED_GPIO(I, 0) GPIO_ACTIVE_LOW>;
linux,code = <ASPEED_GPIO(I, 0)>;
};
};
iio-hwmon-battery {
compatible = "iio-hwmon";
io-channels = <&adc 12>;
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
poll-interval = <1000>;
event-scm0-presence {
label = "scm0-presence";
gpios = <&pca9552 6 GPIO_ACTIVE_LOW>;
linux,code = <6>;
};
event-scm1-presence {
label = "scm1-presence";
gpios = <&pca9552 7 GPIO_ACTIVE_LOW>;
linux,code = <7>;
};
event-cpu0vrm-presence {
label = "cpu0vrm-presence";
gpios = <&pca9552 12 GPIO_ACTIVE_LOW>;
linux,code = <12>;
};
event-cpu1vrm-presence {
label = "cpu1vrm-presence";
gpios = <&pca9552 13 GPIO_ACTIVE_LOW>;
linux,code = <13>;
};
event-fan0-presence {
label = "fan0-presence";
gpios = <&pca0 5 GPIO_ACTIVE_LOW>;
linux,code = <5>;
};
event-fan1-presence {
label = "fan1-presence";
gpios = <&pca0 6 GPIO_ACTIVE_LOW>;
linux,code = <6>;
};
event-fan2-presence {
label = "fan2-presence";
gpios = <&pca0 7 GPIO_ACTIVE_LOW>;
linux,code = <7>;
};
event-fan3-presence {
label = "fan3-presence";
gpios = <&pca0 8 GPIO_ACTIVE_LOW>;
linux,code = <8>;
};
event-fanboost-presence {
label = "fanboost-presence";
gpios = <&pca0 9 GPIO_ACTIVE_LOW>;
linux,code = <9>;
};
};
leds {
compatible = "gpio-leds";
fan0 {
retain-state-shutdown;
default-state = "keep";
gpios = <&pca0 0 GPIO_ACTIVE_LOW>;
};
fan1 {
retain-state-shutdown;
default-state = "keep";
gpios = <&pca0 1 GPIO_ACTIVE_LOW>;
};
fan2 {
retain-state-shutdown;
default-state = "keep";
gpios = <&pca0 2 GPIO_ACTIVE_LOW>;
};
fan3 {
retain-state-shutdown;
default-state = "keep";
gpios = <&pca0 3 GPIO_ACTIVE_LOW>;
};
fanboost {
retain-state-shutdown;
default-state = "keep";
gpios = <&pca0 4 GPIO_ACTIVE_LOW>;
};
front-fault {
retain-state-shutdown;
default-state = "keep";
gpios = <&pca1 2 GPIO_ACTIVE_LOW>;
};
front-power {
retain-state-shutdown;
default-state = "keep";
gpios = <&pca1 3 GPIO_ACTIVE_LOW>;
};
front-id {
retain-state-shutdown;
default-state = "keep";
gpios = <&pca1 0 GPIO_ACTIVE_LOW>;
};
rear-fault {
gpios = <&gpio ASPEED_GPIO(N, 2) GPIO_ACTIVE_LOW>;
};
rear-id {
gpios = <&gpio ASPEED_GPIO(N, 4) GPIO_ACTIVE_LOW>;
};
};
fsi: gpio-fsi {
compatible = "fsi-master-gpio", "fsi-master";
#address-cells = <2>;
#size-cells = <0>;
no-gpio-delays;
clock-gpios = <&gpio ASPEED_GPIO(P, 1) GPIO_ACTIVE_HIGH>;
data-gpios = <&gpio ASPEED_GPIO(P, 2) GPIO_ACTIVE_HIGH>;
mux-gpios = <&gpio ASPEED_GPIO(P, 4) GPIO_ACTIVE_HIGH>;
enable-gpios = <&gpio ASPEED_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
trans-gpios = <&gpio ASPEED_GPIO(P, 3) GPIO_ACTIVE_HIGH>;
};
iio-hwmon-dps310 {
compatible = "iio-hwmon";
io-channels = <&dps 0>;
};
};
&fmc {
status = "okay";
flash@0 {
status = "okay";
label = "bmc";
m25p,fast-read;
spi-max-frequency = <100000000>;
partitions {
#address-cells = < 1 >;
#size-cells = < 1 >;
compatible = "fixed-partitions";
u-boot@0 {
reg = < 0 0x60000 >;
label = "u-boot";
};
u-boot-env@60000 {
reg = < 0x60000 0x20000 >;
label = "u-boot-env";
};
obmc-ubi@80000 {
reg = < 0x80000 0x7F80000>;
label = "obmc-ubi";
};
};
};
flash@1 {
status = "okay";
label = "alt-bmc";
m25p,fast-read;
spi-max-frequency = <100000000>;
partitions {
#address-cells = < 1 >;
#size-cells = < 1 >;
compatible = "fixed-partitions";
u-boot@0 {
reg = < 0 0x60000 >;
label = "alt-u-boot";
};
u-boot-env@60000 {
reg = < 0x60000 0x20000 >;
label = "alt-u-boot-env";
};
obmc-ubi@80000 {
reg = < 0x80000 0x7F80000>;
label = "alt-obmc-ubi";
};
};
};
};
&spi1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spi1_default>;
flash@0 {
status = "okay";
label = "pnor";
m25p,fast-read;
spi-max-frequency = <100000000>;
};
};
&uart1 {
/* Rear RS-232 connector */
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_txd1_default
&pinctrl_rxd1_default
&pinctrl_nrts1_default
&pinctrl_ndtr1_default
&pinctrl_ndsr1_default
&pinctrl_ncts1_default
&pinctrl_ndcd1_default
&pinctrl_nri1_default>;
};
&uart2 {
/* APSS */
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_txd2_default &pinctrl_rxd2_default>;
};
&uart5 {
status = "okay";
};
&lpc_ctrl {
status = "okay";
memory-region = <&flash_memory>;
flash = <&spi1>;
};
&mac0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rmii1_default>;
use-ncsi;
clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
<&syscon ASPEED_CLK_MAC1RCLK>;
clock-names = "MACCLK", "RCLK";
};
&i2c2 {
status = "okay";
/* MUX ->
* Samtec 1
* Samtec 2
*/
};
&i2c3 {
status = "okay";
max31785@52 {
compatible = "maxim,max31785a";
reg = <0x52>;
#address-cells = <1>;
#size-cells = <0>;
fan@0 {
compatible = "pmbus-fan";
reg = <0>;
tach-pulses = <2>;
maxim,fan-rotor-input = "tach";
maxim,fan-pwm-freq = <25000>;
maxim,fan-no-watchdog;
maxim,fan-no-fault-ramp;
maxim,fan-ramp = <2>;
maxim,fan-fault-pin-mon;
};
fan@1 {
compatible = "pmbus-fan";
reg = <1>;
tach-pulses = <2>;
maxim,fan-rotor-input = "tach";
maxim,fan-pwm-freq = <25000>;
maxim,fan-no-watchdog;
maxim,fan-no-fault-ramp;
maxim,fan-ramp = <2>;
maxim,fan-fault-pin-mon;
};
fan@2 {
compatible = "pmbus-fan";
reg = <2>;
tach-pulses = <2>;
maxim,fan-rotor-input = "tach";
maxim,fan-pwm-freq = <25000>;
maxim,fan-no-watchdog;
maxim,fan-no-fault-ramp;
maxim,fan-ramp = <2>;
maxim,fan-fault-pin-mon;
};
fan@3 {
compatible = "pmbus-fan";
reg = <3>;
tach-pulses = <2>;
maxim,fan-rotor-input = "tach";
maxim,fan-pwm-freq = <25000>;
maxim,fan-no-watchdog;
maxim,fan-no-fault-ramp;
maxim,fan-ramp = <2>;
maxim,fan-fault-pin-mon;
};
fan@4 {
compatible = "pmbus-fan";
reg = <4>;
tach-pulses = <2>;
maxim,fan-rotor-input = "tach";
maxim,fan-pwm-freq = <25000>;
maxim,fan-no-watchdog;
maxim,fan-no-fault-ramp;
maxim,fan-ramp = <2>;
maxim,fan-fault-pin-mon;
};
};
pca0: pca9552@60 {
compatible = "nxp,pca9552";
reg = <0x60>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio@0 {
reg = <0>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@1 {
reg = <1>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@2 {
reg = <2>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@3 {
reg = <3>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@4 {
reg = <4>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@5 {
reg = <5>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@6 {
reg = <6>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@7 {
reg = <7>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@8 {
reg = <8>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@9 {
reg = <9>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@10 {
reg = <10>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@11 {
reg = <11>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@12 {
reg = <12>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@13 {
reg = <13>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@14 {
reg = <14>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@15 {
reg = <15>;
type = <PCA955X_TYPE_GPIO>;
};
};
power-supply@68 {
compatible = "ibm,cffps2";
reg = <0x68>;
};
eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
};
power-supply@69 {
compatible = "ibm,cffps2";
reg = <0x69>;
};
eeprom@51 {
compatible = "atmel,24c64";
reg = <0x51>;
};
};
&i2c7 {
status = "okay";
dps: dps310@76 {
compatible = "infineon,dps310";
reg = <0x76>;
#io-channel-cells = <0>;
};
tmp275@48 {
compatible = "ti,tmp275";
reg = <0x48>;
};
si7021a20@20 {
compatible = "si,si7021a20";
reg = <0x20>;
};
eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
};
pca1: pca9551@60 {
compatible = "nxp,pca9551";
reg = <0x60>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio@0 {
reg = <0>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@1 {
reg = <1>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@2 {
reg = <2>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@3 {
reg = <3>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@4 {
reg = <4>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@5 {
reg = <5>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@6 {
reg = <6>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@7 {
reg = <7>;
type = <PCA955X_TYPE_GPIO>;
};
};
};
&i2c8 {
status = "okay";
pca9552: pca9552@60 {
compatible = "nxp,pca9552";
reg = <0x60>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "PS_SMBUS_RESET_N", "APSS_RESET_N",
"GPU0_TH_OVERT_N_BUFF", "GPU1_TH_OVERT_N_BUFF",
"GPU2_TH_OVERT_N_BUFF", "GPU3_TH_OVERT_N_BUFF",
"P9_SCM0_PRES", "P9_SCM1_PRES",
"GPU0_PWR_GOOD_BUFF", "GPU1_PWR_GOOD_BUFF",
"GPU2_PWR_GOOD_BUFF", "GPU3_PWR_GOOD_BUFF",
"PRESENT_VRM_CP0_N", "PRESENT_VRM_CP1_N",
"12V_BREAKER_FLT_N", "THROTTLE_UNLATCHED_N";
gpio@0 {
reg = <0>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@1 {
reg = <1>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@2 {
reg = <2>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@3 {
reg = <3>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@4 {
reg = <4>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@5 {
reg = <5>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@6 {
reg = <6>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@7 {
reg = <7>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@8 {
reg = <8>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@9 {
reg = <9>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@10 {
reg = <10>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@11 {
reg = <11>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@12 {
reg = <12>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@13 {
reg = <13>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@14 {
reg = <14>;
type = <PCA955X_TYPE_GPIO>;
};
gpio@15 {
reg = <15>;
type = <PCA955X_TYPE_GPIO>;
};
};
rtc@32 {
compatible = "epson,rx8900";
reg = <0x32>;
};
eeprom@51 {
compatible = "atmel,24c64";
reg = <0x51>;
};
ucd90160@64 {
compatible = "ti,ucd90160";
reg = <0x64>;
};
};
&i2c9 {
status = "okay";
eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
};
tmp423a@4c {
compatible = "ti,tmp423";
reg = <0x4c>;
};
ir35221@71 {
compatible = "infineon,ir35221";
reg = <0x71>;
};
ir35221@72 {
compatible = "infineon,ir35221";
reg = <0x72>;
};
pca2: pca9539@74 {
compatible = "nxp,pca9539";
reg = <0x74>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio@0 {
reg = <0>;
};
gpio@1 {
reg = <1>;
};
gpio@2 {
reg = <2>;
};
gpio@3 {
reg = <3>;
};
gpio@4 {
reg = <4>;
};
gpio@5 {
reg = <5>;
};
gpio@6 {
reg = <6>;
};
gpio@7 {
reg = <7>;
};
gpio@8 {
reg = <8>;
};
gpio@9 {
reg = <9>;
};
gpio@10 {
reg = <10>;
};
gpio@11 {
reg = <11>;
};
gpio@12 {
reg = <12>;
};
gpio@13 {
reg = <13>;
};
gpio@14 {
reg = <14>;
};
gpio@15 {
reg = <15>;
};
};
};
&i2c10 {
status = "okay";
eeprom@50 {
compatible = "atmel,24c64";
reg = <0x50>;
};
tmp423a@4c {
compatible = "ti,tmp423";
reg = <0x4c>;
};
ir35221@71 {
compatible = "infineon,ir35221";
reg = <0x71>;
};
ir35221@72 {
compatible = "infineon,ir35221";
reg = <0x72>;
};
pca3: pca9539@74 {
compatible = "nxp,pca9539";
reg = <0x74>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio@0 {
reg = <0>;
};
gpio@1 {
reg = <1>;
};
gpio@2 {
reg = <2>;
};
gpio@3 {
reg = <3>;
};
gpio@4 {
reg = <4>;
};
gpio@5 {
reg = <5>;
};
gpio@6 {
reg = <6>;
};
gpio@7 {
reg = <7>;
};
gpio@8 {
reg = <8>;
};
gpio@9 {
reg = <9>;
};
gpio@10 {
reg = <10>;
};
gpio@11 {
reg = <11>;
};
gpio@12 {
reg = <12>;
};
gpio@13 {
reg = <13>;
};
gpio@14 {
reg = <14>;
};
gpio@15 {
reg = <15>;
};
};
};
&i2c11 {
/* MUX
* -> PCIe Slot 0
* -> PCIe Slot 1
* -> PCIe Slot 2
* -> PCIe Slot 3
*/
status = "okay";
};
&i2c12 {
status = "okay";
tmp275@48 {
compatible = "ti,tmp275";
reg = <0x48>;
};
tmp275@4a {
compatible = "ti,tmp275";
reg = <0x4a>;
};
};
&i2c13 {
status = "okay";
};
&vuart {
status = "okay";
};
&gfx {
status = "okay";
memory-region = <&gfx_memory>;
};
&wdt1 {
aspeed,reset-type = "none";
aspeed,external-signal;
aspeed,ext-push-pull;
aspeed,ext-active-high;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wdtrst1_default>;
};
&wdt2 {
aspeed,alt-boot;
};
&ibt {
status = "okay";
};
&adc {
status = "okay";
};
&sdmmc {
status = "okay";
};
&sdhci1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sd2_default>;
};
#include "ibm-power9-dual.dtsi"

View File

@@ -509,25 +509,25 @@
/*AB0-AB7*/ "","","","","","","","",
/*AC0-AC7*/ "","","","","","","","";
line_iso_u146_en {
line-iso-u146-en-hog {
gpio-hog;
gpios = <ASPEED_GPIO(O, 4) GPIO_ACTIVE_HIGH>;
output-high;
};
ncsi_mux_en_n {
ncsi-mux-en-n-hog {
gpio-hog;
gpios = <ASPEED_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
output-low;
};
line_bmc_i2c2_sw_rst_n {
line-bmc-i2c2-sw-rst-n-hog {
gpio-hog;
gpios = <ASPEED_GPIO(P, 1) GPIO_ACTIVE_HIGH>;
output-high;
};
line_bmc_i2c5_sw_rst_n {
line-bmc-i2c5-sw-rst-n-hog {
gpio-hog;
gpios = <ASPEED_GPIO(P, 3) GPIO_ACTIVE_HIGH>;
output-high;

View File

@@ -184,13 +184,69 @@
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xfffe8000 0x8100>;
ranges = <0 0xfffe8000 0x10000>;
timer: timer@80 {
compatible = "brcm,bcm6328-timer", "syscon";
reg = <0x80 0x3c>;
};
/* GPIOs 0 .. 31 */
gpio0: gpio@100 {
compatible = "brcm,bcm6345-gpio";
reg = <0x100 0x04>, <0x114 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@104 {
compatible = "brcm,bcm6345-gpio";
reg = <0x104 0x04>, <0x118 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@108 {
compatible = "brcm,bcm6345-gpio";
reg = <0x108 0x04>, <0x11c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@10c {
compatible = "brcm,bcm6345-gpio";
reg = <0x10c 0x04>, <0x120 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@110 {
compatible = "brcm,bcm6345-gpio";
reg = <0x110 0x04>, <0x124 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@300 {
compatible = "brcm,iproc-rng200";
reg = <0x300 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
serial0: serial@600 {
compatible = "brcm,bcm6345-uart";
reg = <0x600 0x1b>;
@@ -209,6 +265,14 @@
status = "disabled";
};
leds: led-controller@700 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x700 0xdc>;
status = "disabled";
};
hsspi: spi@1000 {
#address-cells = <1>;
#size-cells = <0>;
@@ -248,6 +312,19 @@
reg = <0x8000 0x50>;
};
pl081_dma: dma-controller@d000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0xd000 0x1000>;
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
reboot {
compatible = "syscon-reboot";
regmap = <&timer>;

View File

@@ -99,6 +99,62 @@
#size-cells = <1>;
ranges = <0 0xfffe8000 0x8000>;
/* GPIOs 0 .. 31 */
gpio0: gpio@100 {
compatible = "brcm,bcm6345-gpio";
reg = <0x100 0x04>, <0x114 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@104 {
compatible = "brcm,bcm6345-gpio";
reg = <0x104 0x04>, <0x118 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@108 {
compatible = "brcm,bcm6345-gpio";
reg = <0x108 0x04>, <0x11c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@10c {
compatible = "brcm,bcm6345-gpio";
reg = <0x10c 0x04>, <0x120 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@110 {
compatible = "brcm,bcm6345-gpio";
reg = <0x110 0x04>, <0x124 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@300 {
compatible = "brcm,iproc-rng200";
reg = <0x300 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
uart0: serial@600 {
compatible = "brcm,bcm6345-uart";
reg = <0x600 0x20>;
@@ -108,6 +164,14 @@
status = "disabled";
};
leds: led-controller@700 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x700 0xdc>;
status = "disabled";
};
hsspi: spi@1000 {
#address-cells = <1>;
#size-cells = <0>;

View File

@@ -117,6 +117,97 @@
#size-cells = <1>;
ranges = <0 0xff800000 0x800000>;
watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x10>;
};
/* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x520 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x524 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
};
hsspi: spi@1000 {
#address-cells = <1>;
#size-cells = <0>;
@@ -143,6 +234,27 @@
};
};
leds: led-controller@3000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x3000 0xdc>;
status = "disabled";
};
pl081_dma: dma-controller@11000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x11000 0x1000>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;

View File

@@ -196,6 +196,7 @@
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
leds: led-controller@800 {

View File

@@ -116,6 +116,103 @@
#size-cells = <1>;
ranges = <0 0xff800000 0x800000>;
watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x10>;
};
watchdog@4c0 {
compatible = "brcm,bcm6345-wdt";
reg = <0x4c0 0x10>;
status = "disabled";
};
/* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x520 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x524 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
};
hsspi: spi@1000 {
#address-cells = <1>;
#size-cells = <0>;
@@ -143,6 +240,27 @@
};
};
leds: led-controller@3000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x3000 0xdc>;
status = "disabled";
};
pl081_dma: dma-controller@11000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x11000 0x1000>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
@@ -151,5 +269,14 @@
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
uart1: serial@13000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x13000 0x1000>;
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
};
};

View File

@@ -108,6 +108,111 @@
#size-cells = <1>;
ranges = <0 0xff800000 0x800000>;
watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x10>;
};
watchdog@4c0 {
compatible = "brcm,bcm6345-wdt";
reg = <0x4c0 0x10>;
status = "disabled";
};
/* GPIOs 0 .. 31 */
gpio0: gpio@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x04>, <0x520 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 32 .. 63 */
gpio1: gpio@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x04>, <0x524 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 64 .. 95 */
gpio2: gpio@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x04>, <0x528 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 96 .. 127 */
gpio3: gpio@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x04>, <0x52c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 128 .. 159 */
gpio4: gpio@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x04>, <0x530 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 160 .. 191 */
gpio5: gpio@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x04>, <0x534 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 192 .. 223 */
gpio6: gpio@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x04>, <0x538 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
/* GPIOs 224 .. 255 */
gpio7: gpio@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x04>, <0x53c 0x04>;
reg-names = "dirout", "dat";
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
rng@b80 {
compatible = "brcm,iproc-rng200";
reg = <0xb80 0x28>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
};
leds: led-controller@700 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,bcm63138-leds";
reg = <0x700 0xdc>;
status = "disabled";
};
hsspi: spi@1000 {
#address-cells = <1>;
#size-cells = <0>;
@@ -134,10 +239,23 @@
};
};
pl081_dma: dma-controller@11000 {
compatible = "arm,pl081", "arm,primecell";
// The magic B105F00D info is missing
arm,primecell-periphid = <0x00041081>;
reg = <0x11000 0x1000>;
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
memcpy-burst-size = <256>;
memcpy-bus-width = <32>;
clocks = <&periph_clk>;
clock-names = "apb_pclk";
#dma-cells = <2>;
};
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";

View File

@@ -17,21 +17,21 @@
led-1 {
function = LED_FUNCTION_INDICATOR;
color = <LED_COLOR_ID_RED>;
pwms = <&pwm 1 50000>;
pwms = <&pwm 1 50000 0>;
max-brightness = <255>;
};
led-2 {
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_GREEN>;
pwms = <&pwm 2 50000>;
pwms = <&pwm 2 50000 0>;
max-brightness = <255>;
};
led-3 {
function = LED_FUNCTION_INDICATOR;
color = <LED_COLOR_ID_BLUE>;
pwms = <&pwm 3 50000>;
pwms = <&pwm 3 50000 0>;
max-brightness = <255>;
};
};
@@ -132,7 +132,6 @@
&pwm {
status = "okay";
#pwm-cells = <2>;
};
&uart0 {

View File

@@ -27,8 +27,8 @@
i2c {
compatible = "i2c-gpio";
gpios = < &gpio0 8 GPIO_ACTIVE_HIGH /* sda */
&gpio0 9 GPIO_ACTIVE_HIGH>; /* scl */
sda-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
scl-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
i2c-gpio,delay-us = <2>; /* ~100 kHz */
};
};

View File

@@ -1,6 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_MEDIATEK) += \
mt2701-evb.dtb \
mt6572-jty-d101.dtb \
mt6572-lenovo-a369i.dtb \
mt6580-evbp1.dtb \
mt6582-prestigio-pmt5008-3g.dtb \
mt6589-aquaris5.dtb \

View File

@@ -0,0 +1,61 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2025 Max Shevchenko <wctrl@proton.me>
*/
/dts-v1/;
#include "mt6572.dtsi"
/ {
model = "JTY D101";
compatible = "jty,d101", "mediatek,mt6572";
aliases {
serial0 = &uart0;
};
chosen {
#address-cells = <1>;
#size-cells = <1>;
stdout-path = "serial0:921600n8";
framebuffer: framebuffer@bf400000 {
compatible = "simple-framebuffer";
memory-region = <&framebuffer_reserved>;
width = <1024>;
height = <600>;
stride = <(1024 * 2)>;
format = "r5g6b5";
};
};
memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x40000000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
connsys@80000000 {
reg = <0x80000000 0x100000>;
no-map;
};
modem@be000000 {
reg = <0xbe000000 0x1400000>;
no-map;
};
framebuffer_reserved: framebuffer@bf400000 {
reg = <0xbf400000 0xc00000>;
no-map;
};
};
};
&uart0 {
status = "okay";
};

View File

@@ -0,0 +1,56 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2025 Max Shevchenko <wctrl@proton.me>
*/
/dts-v1/;
#include "mt6572.dtsi"
/ {
model = "Lenovo A369i";
compatible = "lenovo,a369i", "mediatek,mt6572";
aliases {
serial0 = &uart0;
};
chosen {
#address-cells = <1>;
#size-cells = <1>;
stdout-path = "serial0:921600n8";
framebuffer: framebuffer@9fa00000 {
compatible = "simple-framebuffer";
memory-region = <&framebuffer_reserved>;
width = <480>;
height = <800>;
stride = <(480 * 2)>;
format = "r5g6b5";
};
};
memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x20000000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
connsys@80000000 {
reg = <0x80000000 0x100000>;
no-map;
};
framebuffer_reserved: framebuffer@9fa00000 {
reg = <0x9fa00000 0x600000>;
no-map;
};
};
};
&uart0 {
status = "okay";
};

View File

@@ -0,0 +1,108 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2025 Max Shevchenko <wctrl@proton.me>
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&sysirq>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
enable-method = "mediatek,mt6589-smp";
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
};
cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x1>;
};
};
uart_clk: dummy26m {
compatible = "fixed-clock";
clock-frequency = <26000000>;
#clock-cells = <0>;
};
system_clk: dummy13m {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
rtc_clk: dummy32k {
compatible = "fixed-clock";
clock-frequency = <32000>;
#clock-cells = <0>;
};
soc {
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
ranges;
watchdog: watchdog@10007000 {
compatible = "mediatek,mt6572-wdt", "mediatek,mt6589-wdt";
reg = <0x10007000 0x100>;
interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_LOW>;
timeout-sec = <15>;
#reset-cells = <1>;
};
timer: timer@10008000 {
compatible = "mediatek,mt6572-timer", "mediatek,mt6577-timer";
reg = <0x10008000 0x80>;
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_LOW>;
clocks = <&system_clk>, <&rtc_clk>;
clock-names = "system-clk", "rtc-clk";
};
sysirq: interrupt-controller@10200100 {
compatible = "mediatek,mt6572-sysirq", "mediatek,mt6577-sysirq";
reg = <0x10200100 0x1c>;
interrupt-controller;
#interrupt-cells = <3>;
interrupt-parent = <&gic>;
};
gic: interrupt-controller@10211000 {
compatible = "arm,cortex-a7-gic";
reg = <0x10211000 0x1000>,
<0x10212000 0x2000>,
<0x10214000 0x2000>,
<0x10216000 0x2000>;
interrupt-controller;
#interrupt-cells = <3>;
interrupt-parent = <&gic>;
};
uart0: serial@11005000 {
compatible = "mediatek,mt6572-uart", "mediatek,mt6577-uart";
reg = <0x11005000 0x400>;
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>;
clocks = <&uart_clk>;
clock-names = "baud";
status = "disabled";
};
uart1: serial@11006000 {
compatible = "mediatek,mt6572-uart", "mediatek,mt6577-uart";
reg = <0x11006000 0x400>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
clocks = <&uart_clk>;
clock-names = "baud";
status = "disabled";
};
};
};

View File

@@ -609,7 +609,7 @@
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <104000000>;
spi-cs-setup-ns = <7>;
spi-cs-setup-delay-ns = <7>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
m25p,fast-read;

View File

@@ -44,7 +44,7 @@
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <104000000>;
spi-cs-setup-ns = <7>;
spi-cs-setup-delay-ns = <7>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
m25p,fast-read;

View File

@@ -234,7 +234,7 @@
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <104000000>;
spi-cs-setup-ns = <7>;
spi-cs-setup-delay-ns = <7>;
spi-rx-bus-width = <4>;
spi-tx-bus-width = <4>;
m25p,fast-read;
@@ -385,7 +385,7 @@
wilc: wifi@0 {
reg = <0>;
compatible = "microchip,wilc1000";
compatible = "microchip,wilc3000", "microchip,wilc1000";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wilc_default>;
clocks = <&pmc PMC_TYPE_SYSTEM 9>;

View File

@@ -714,7 +714,7 @@
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <104000000>;
spi-cs-setup-ns = <7>;
spi-cs-setup-delay-ns = <7>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
m25p,fast-read;

View File

@@ -38,7 +38,24 @@
regulator-max-microvolt = <5000000>;
regulator-always-on;
};
};
&can1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_can1_default>;
status = "okay";
};
&can2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_can2_default>;
status = "okay";
};
&can3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_can3_default>;
status = "okay";
};
&dma0 {
@@ -278,6 +295,24 @@
};
&pioa {
pinctrl_can1_default: can1-default {
pinmux = <PIN_PD10__CANTX1>,
<PIN_PD11__CANRX1>;
bias-disable;
};
pinctrl_can2_default: can2-default {
pinmux = <PIN_PD12__CANTX2>,
<PIN_PD13__CANRX2>;
bias-disable;
};
pinctrl_can3_default: can3-default {
pinmux = <PIN_PD14__CANTX3>,
<PIN_PD15__CANRX3>;
bias-disable;
};
pinctrl_gmac0_default: gmac0-default {
pinmux = <PIN_PA26__G0_TX0>,
<PIN_PA27__G0_TX1>,

View File

@@ -35,16 +35,6 @@
i2c2 = &i2c9;
};
clocks {
slow_xtal {
clock-frequency = <32768>;
};
main_xtal {
clock-frequency = <24000000>;
};
};
gpio-keys {
compatible = "gpio-keys";
@@ -556,6 +546,10 @@
pinctrl-0 = <&pinctrl_i2s0_default>;
};
&main_xtal {
clock-frequency = <24000000>;
};
&pdmc0 {
#sound-dai-cells = <0>;
microchip,mic-pos = <MCHP_PDMC_DS0 MCHP_PDMC_CLK_NEGATIVE>, /* MIC 1 */
@@ -885,6 +879,10 @@
};
};
&slow_xtal {
clock-frequency = <32768>;
};
&spdifrx {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spdifrx_default>;

View File

@@ -714,9 +714,8 @@
i2c-gpio-0 {
compatible = "i2c-gpio";
gpios = <&pioA 25 GPIO_ACTIVE_HIGH /* sda */
&pioA 26 GPIO_ACTIVE_HIGH /* scl */
>;
sda-gpios = <&pioA 25 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA 26 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */

View File

@@ -781,9 +781,8 @@
i2c_gpio0: i2c-gpio-0 {
compatible = "i2c-gpio";
gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */
&pioA 24 GPIO_ACTIVE_HIGH /* scl */
>;
sda-gpios = <&pioA 23 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA 24 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */

View File

@@ -655,8 +655,8 @@
compatible = "i2c-gpio";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c_bitbang>;
gpios = <&pioA 7 GPIO_ACTIVE_HIGH>, /* sda */
<&pioA 8 GPIO_ACTIVE_HIGH>; /* scl */
sda-gpios = <&pioA 7 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA 8 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */

View File

@@ -826,9 +826,8 @@
i2c-gpio-0 {
compatible = "i2c-gpio";
gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */
&pioB 5 GPIO_ACTIVE_HIGH /* scl */
>;
sda-gpios = <&pioB 4 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioB 5 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */

View File

@@ -46,7 +46,7 @@
led-power-green {
label = "smartgw:power:green";
gpios = <&pioC 20 GPIO_ACTIVE_HIGH>;
default-state = "on";
linux,default-trigger = "timer";
};
led-power-red {

View File

@@ -1010,9 +1010,8 @@
i2c-gpio-0 {
compatible = "i2c-gpio";
gpios = <&pioA 20 GPIO_ACTIVE_HIGH /* sda */
&pioA 21 GPIO_ACTIVE_HIGH /* scl */
>;
sda-gpios = <&pioA 20 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA 21 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <5>; /* ~100 kHz */

View File

@@ -786,9 +786,8 @@
i2c-gpio-0 {
compatible = "i2c-gpio";
gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */
&pioA 31 GPIO_ACTIVE_HIGH /* scl */
>;
sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA 31 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */

View File

@@ -833,8 +833,8 @@
i2c-gpio-0 {
compatible = "i2c-gpio";
gpios = <&pioA 23 GPIO_ACTIVE_HIGH>, /* sda */
<&pioA 24 GPIO_ACTIVE_HIGH>; /* scl */
sda-gpios = <&pioA 23 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA 24 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */
@@ -847,8 +847,8 @@
i2c-gpio-1 {
compatible = "i2c-gpio";
gpios = <&pioD 10 GPIO_ACTIVE_HIGH>, /* sda */
<&pioD 11 GPIO_ACTIVE_HIGH>; /* scl */
sda-gpios = <&pioD 10 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioD 11 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */

View File

@@ -933,9 +933,8 @@
i2c-gpio-0 {
compatible = "i2c-gpio";
gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */
&pioA 31 GPIO_ACTIVE_HIGH /* scl */
>;
sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioA 31 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */
@@ -948,9 +947,8 @@
i2c-gpio-1 {
compatible = "i2c-gpio";
gpios = <&pioC 0 GPIO_ACTIVE_HIGH /* sda */
&pioC 1 GPIO_ACTIVE_HIGH /* scl */
>;
sda-gpios = <&pioC 0 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioC 1 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */
@@ -963,9 +961,8 @@
i2c-gpio-2 {
compatible = "i2c-gpio";
gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */
&pioB 5 GPIO_ACTIVE_HIGH /* scl */
>;
sda-gpios = <&pioB 4 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pioB 5 GPIO_ACTIVE_HIGH>;
i2c-gpio,sda-open-drain;
i2c-gpio,scl-open-drain;
i2c-gpio,delay-us = <2>; /* ~100 kHz */

View File

@@ -45,11 +45,13 @@
clocks {
slow_xtal: clock-slowxtal {
compatible = "fixed-clock";
clock-output-names = "slow_xtal";
#clock-cells = <0>;
};
main_xtal: clock-mainxtal {
compatible = "fixed-clock";
clock-output-names = "main_xtal";
#clock-cells = <0>;
};
};
@@ -983,6 +985,32 @@
status = "disabled";
};
hlcdc: hlcdc@f8038000 {
compatible = "microchip,sam9x75-xlcdc";
reg = <0xf8038000 0x4000>;
interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 25>, <&pmc PMC_TYPE_GCK 25>, <&clk32k 1>;
clock-names = "periph_clk", "sys_clk", "slow_clk";
status = "disabled";
display-controller {
compatible = "atmel,hlcdc-display-controller";
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
};
};
pwm {
compatible = "atmel,hlcdc-pwm";
#pwm-cells = <3>;
};
};
flx9: flexcom@f8040000 {
compatible = "microchip,sam9x7-flexcom", "atmel,sama5d2-flexcom";
reg = <0xf8040000 0x200>;
@@ -1087,6 +1115,15 @@
};
};
lvds_controller: lvds-controller@f8060000 {
compatible = "microchip,sam9x75-lvds";
reg = <0xf8060000 0x100>;
interrupts = <56 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&pmc PMC_TYPE_PERIPHERAL 56>;
clock-names = "pclk";
status = "disabled";
};
matrix: matrix@ffffde00 {
compatible = "microchip,sam9x7-matrix", "atmel,at91sam9x5-matrix", "syscon";
reg = <0xffffde00 0x200>;

View File

@@ -32,6 +32,8 @@
device_type = "cpu";
compatible = "arm,cortex-a5";
reg = <0>;
d-cache-size = <0x8000>; // L1, 32 KB
i-cache-size = <0x8000>; // L1, 32 KB
next-level-cache = <&L2>;
};
};
@@ -160,6 +162,7 @@
interrupts = <63 IRQ_TYPE_LEVEL_HIGH 4>;
cache-unified;
cache-level = <2>;
cache-size = <0x20000>; // L2, 128 KB
};
ebi: ebi@10000000 {

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