Skip to content

Commit ba81791

Browse files
committed
Merge tag 'riscv-dt-for-v6.6' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt
RISC-V Devicetrees for v6.6 StarFive: There's only StarFive stuff this time around, starting with some bindings to get clock ID defines out of the binding headers. Getting these (and the syscon bindings) in unblocked a swathe of stuff sitting on the list. Added are: new clock controllers and sycons, ethernet support, thermal sensors, USB and PCIe PHYs, hwrng, mmc and a few more besides for the VisionFive v2. The original VisionFive and BeagleV Starlight got some the thermal sensor support too, as that is supported by the same driver. These changes make the board actually usable with something other than an initramfs. Overlay support by way of the -@ flag set during dtb building, is added also. Signed-off-by: Conor Dooley <conor.dooley@microchip.com> * tag 'riscv-dt-for-v6.6' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux: (26 commits) riscv: dts: starfive: jh7110: Fix GMAC configuration riscv: dts: starfive - Add hwrng node for JH7110 SoC riscv: dts: starfive - Add crypto and DMA node for JH7110 riscv: dts: starfive: Add mmc nodes on VisionFive 2 board riscv: dts: starfive: enable DCDC1&ALDO4 node in axp15060 riscv: dts: starfive: Add QSPI controller node for StarFive JH7110 SoC riscv: dts: starfive: jh7110: add the node and pins configuration for tdm riscv: dts: starfive: jh7110: add dma controller node riscv: dts: starfive: Add spi node and pins configuration riscv: dts: starfive: Add USB dts node for JH7110 riscv: dts: starfive: Add USB and PCIe PHY nodes for JH7110 riscv: dts: starfive: jh7110: Add temperature sensor node and thermal-zones riscv: dts: starfive: jh7100: Add temperature sensor node and thermal-zones riscv: dts: starfive: visionfive 2: Add configuration of gmac and phy riscv: dts: starfive: jh7110: Add ethernet device nodes riscv: dts: starfive: jh7110: Add PLL clocks source in SYSCRG node riscv: dts: starfive: jh7110: Add syscon nodes riscv: dts: starfive: jh7110: Add STGCRG/ISPCRG/VOUTCRG nodes riscv: dts: starfive: jh7110: Add DVP and HDMI TX pixel external clocks dt-bindings: clock: Add StarFive JH7110 Video-Output clock and reset generator ... Link: https://lore.kernel.org/r/20230813-naturist-fragment-ac7d10c453ba@spud Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents eeb751c + f331eb1 commit ba81791

15 files changed

Lines changed: 1433 additions & 4 deletions
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/starfive,jh7110-ispcrg.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: StarFive JH7110 Image-Signal-Process Clock and Reset Generator
8+
9+
maintainers:
10+
- Xingyu Wu <xingyu.wu@starfivetech.com>
11+
12+
properties:
13+
compatible:
14+
const: starfive,jh7110-ispcrg
15+
16+
reg:
17+
maxItems: 1
18+
19+
clocks:
20+
items:
21+
- description: ISP Top core
22+
- description: ISP Top Axi
23+
- description: NOC ISP Bus
24+
- description: external DVP
25+
26+
clock-names:
27+
items:
28+
- const: isp_top_core
29+
- const: isp_top_axi
30+
- const: noc_bus_isp_axi
31+
- const: dvp_clk
32+
33+
resets:
34+
items:
35+
- description: ISP Top core
36+
- description: ISP Top Axi
37+
- description: NOC ISP Bus
38+
39+
'#clock-cells':
40+
const: 1
41+
description:
42+
See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices.
43+
44+
'#reset-cells':
45+
const: 1
46+
description:
47+
See <dt-bindings/reset/starfive,jh7110-crg.h> for valid indices.
48+
49+
power-domains:
50+
maxItems: 1
51+
description:
52+
ISP domain power
53+
54+
required:
55+
- compatible
56+
- reg
57+
- clocks
58+
- clock-names
59+
- resets
60+
- '#clock-cells'
61+
- '#reset-cells'
62+
- power-domains
63+
64+
additionalProperties: false
65+
66+
examples:
67+
- |
68+
#include <dt-bindings/clock/starfive,jh7110-crg.h>
69+
#include <dt-bindings/power/starfive,jh7110-pmu.h>
70+
#include <dt-bindings/reset/starfive,jh7110-crg.h>
71+
72+
ispcrg: clock-controller@19810000 {
73+
compatible = "starfive,jh7110-ispcrg";
74+
reg = <0x19810000 0x10000>;
75+
clocks = <&syscrg JH7110_SYSCLK_ISP_TOP_CORE>,
76+
<&syscrg JH7110_SYSCLK_ISP_TOP_AXI>,
77+
<&syscrg JH7110_SYSCLK_NOC_BUS_ISP_AXI>,
78+
<&dvp_clk>;
79+
clock-names = "isp_top_core", "isp_top_axi",
80+
"noc_bus_isp_axi", "dvp_clk";
81+
resets = <&syscrg JH7110_SYSRST_ISP_TOP>,
82+
<&syscrg JH7110_SYSRST_ISP_TOP_AXI>,
83+
<&syscrg JH7110_SYSRST_NOC_BUS_ISP_AXI>;
84+
#clock-cells = <1>;
85+
#reset-cells = <1>;
86+
power-domains = <&pwrc JH7110_PD_ISP>;
87+
};
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/starfive,jh7110-pll.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: StarFive JH7110 PLL Clock Generator
8+
9+
description:
10+
These PLLs are high speed, low jitter frequency synthesizers in the JH7110.
11+
Each PLL works in integer mode or fraction mode, with configuration
12+
registers in the sys syscon. So the PLLs node should be a child of
13+
SYS-SYSCON node.
14+
The formula for calculating frequency is
15+
Fvco = Fref * (NI + NF) / M / Q1
16+
17+
maintainers:
18+
- Xingyu Wu <xingyu.wu@starfivetech.com>
19+
20+
properties:
21+
compatible:
22+
const: starfive,jh7110-pll
23+
24+
clocks:
25+
maxItems: 1
26+
description: Main Oscillator (24 MHz)
27+
28+
'#clock-cells':
29+
const: 1
30+
description:
31+
See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices.
32+
33+
required:
34+
- compatible
35+
- clocks
36+
- '#clock-cells'
37+
38+
additionalProperties: false
39+
40+
examples:
41+
- |
42+
clock-controller {
43+
compatible = "starfive,jh7110-pll";
44+
clocks = <&osc>;
45+
#clock-cells = <1>;
46+
};
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/starfive,jh7110-stgcrg.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: StarFive JH7110 System-Top-Group Clock and Reset Generator
8+
9+
maintainers:
10+
- Xingyu Wu <xingyu.wu@starfivetech.com>
11+
12+
properties:
13+
compatible:
14+
const: starfive,jh7110-stgcrg
15+
16+
reg:
17+
maxItems: 1
18+
19+
clocks:
20+
items:
21+
- description: Main Oscillator (24 MHz)
22+
- description: HIFI4 core
23+
- description: STG AXI/AHB
24+
- description: USB (125 MHz)
25+
- description: CPU Bus
26+
- description: HIFI4 Axi
27+
- description: NOC STG Bus
28+
- description: APB Bus
29+
30+
clock-names:
31+
items:
32+
- const: osc
33+
- const: hifi4_core
34+
- const: stg_axiahb
35+
- const: usb_125m
36+
- const: cpu_bus
37+
- const: hifi4_axi
38+
- const: nocstg_bus
39+
- const: apb_bus
40+
41+
'#clock-cells':
42+
const: 1
43+
description:
44+
See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices.
45+
46+
'#reset-cells':
47+
const: 1
48+
description:
49+
See <dt-bindings/reset/starfive,jh7110-crg.h> for valid indices.
50+
51+
required:
52+
- compatible
53+
- reg
54+
- clocks
55+
- clock-names
56+
- '#clock-cells'
57+
- '#reset-cells'
58+
59+
additionalProperties: false
60+
61+
examples:
62+
- |
63+
#include <dt-bindings/clock/starfive,jh7110-crg.h>
64+
65+
stgcrg: clock-controller@10230000 {
66+
compatible = "starfive,jh7110-stgcrg";
67+
reg = <0x10230000 0x10000>;
68+
clocks = <&osc>,
69+
<&syscrg JH7110_SYSCLK_HIFI4_CORE>,
70+
<&syscrg JH7110_SYSCLK_STG_AXIAHB>,
71+
<&syscrg JH7110_SYSCLK_USB_125M>,
72+
<&syscrg JH7110_SYSCLK_CPU_BUS>,
73+
<&syscrg JH7110_SYSCLK_HIFI4_AXI>,
74+
<&syscrg JH7110_SYSCLK_NOCSTG_BUS>,
75+
<&syscrg JH7110_SYSCLK_APB_BUS>;
76+
clock-names = "osc", "hifi4_core",
77+
"stg_axiahb", "usb_125m",
78+
"cpu_bus", "hifi4_axi",
79+
"nocstg_bus", "apb_bus";
80+
#clock-cells = <1>;
81+
#reset-cells = <1>;
82+
};

Documentation/devicetree/bindings/clock/starfive,jh7110-syscrg.yaml

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ properties:
2727
- description: External I2S RX left/right channel clock
2828
- description: External TDM clock
2929
- description: External audio master clock
30+
- description: PLL0
31+
- description: PLL1
32+
- description: PLL2
3033

3134
- items:
3235
- description: Main Oscillator (24 MHz)
@@ -38,6 +41,9 @@ properties:
3841
- description: External I2S RX left/right channel clock
3942
- description: External TDM clock
4043
- description: External audio master clock
44+
- description: PLL0
45+
- description: PLL1
46+
- description: PLL2
4147

4248
clock-names:
4349
oneOf:
@@ -52,6 +58,9 @@ properties:
5258
- const: i2srx_lrck_ext
5359
- const: tdm_ext
5460
- const: mclk_ext
61+
- const: pll0_out
62+
- const: pll1_out
63+
- const: pll2_out
5564

5665
- items:
5766
- const: osc
@@ -63,6 +72,9 @@ properties:
6372
- const: i2srx_lrck_ext
6473
- const: tdm_ext
6574
- const: mclk_ext
75+
- const: pll0_out
76+
- const: pll1_out
77+
- const: pll2_out
6678

6779
'#clock-cells':
6880
const: 1
@@ -93,12 +105,14 @@ examples:
93105
<&gmac1_rgmii_rxin>,
94106
<&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
95107
<&i2srx_bclk_ext>, <&i2srx_lrck_ext>,
96-
<&tdm_ext>, <&mclk_ext>;
108+
<&tdm_ext>, <&mclk_ext>,
109+
<&pllclk 0>, <&pllclk 1>, <&pllclk 2>;
97110
clock-names = "osc", "gmac1_rmii_refin",
98111
"gmac1_rgmii_rxin",
99112
"i2stx_bclk_ext", "i2stx_lrck_ext",
100113
"i2srx_bclk_ext", "i2srx_lrck_ext",
101-
"tdm_ext", "mclk_ext";
114+
"tdm_ext", "mclk_ext",
115+
"pll0_out", "pll1_out", "pll2_out";
102116
#clock-cells = <1>;
103117
#reset-cells = <1>;
104118
};
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/starfive,jh7110-voutcrg.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: StarFive JH7110 Video-Output Clock and Reset Generator
8+
9+
maintainers:
10+
- Xingyu Wu <xingyu.wu@starfivetech.com>
11+
12+
properties:
13+
compatible:
14+
const: starfive,jh7110-voutcrg
15+
16+
reg:
17+
maxItems: 1
18+
19+
clocks:
20+
items:
21+
- description: Vout Top core
22+
- description: Vout Top Ahb
23+
- description: Vout Top Axi
24+
- description: Vout Top HDMI MCLK
25+
- description: I2STX0 BCLK
26+
- description: external HDMI pixel
27+
28+
clock-names:
29+
items:
30+
- const: vout_src
31+
- const: vout_top_ahb
32+
- const: vout_top_axi
33+
- const: vout_top_hdmitx0_mclk
34+
- const: i2stx0_bclk
35+
- const: hdmitx0_pixelclk
36+
37+
resets:
38+
maxItems: 1
39+
description: Vout Top core
40+
41+
'#clock-cells':
42+
const: 1
43+
description:
44+
See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices.
45+
46+
'#reset-cells':
47+
const: 1
48+
description:
49+
See <dt-bindings/reset/starfive,jh7110-crg.h> for valid indices.
50+
51+
power-domains:
52+
maxItems: 1
53+
description:
54+
Vout domain power
55+
56+
required:
57+
- compatible
58+
- reg
59+
- clocks
60+
- clock-names
61+
- resets
62+
- '#clock-cells'
63+
- '#reset-cells'
64+
- power-domains
65+
66+
additionalProperties: false
67+
68+
examples:
69+
- |
70+
#include <dt-bindings/clock/starfive,jh7110-crg.h>
71+
#include <dt-bindings/power/starfive,jh7110-pmu.h>
72+
#include <dt-bindings/reset/starfive,jh7110-crg.h>
73+
74+
voutcrg: clock-controller@295C0000 {
75+
compatible = "starfive,jh7110-voutcrg";
76+
reg = <0x295C0000 0x10000>;
77+
clocks = <&syscrg JH7110_SYSCLK_VOUT_SRC>,
78+
<&syscrg JH7110_SYSCLK_VOUT_TOP_AHB>,
79+
<&syscrg JH7110_SYSCLK_VOUT_TOP_AXI>,
80+
<&syscrg JH7110_SYSCLK_VOUT_TOP_HDMITX0_MCLK>,
81+
<&syscrg JH7110_SYSCLK_I2STX0_BCLK>,
82+
<&hdmitx0_pixelclk>;
83+
clock-names = "vout_src", "vout_top_ahb",
84+
"vout_top_axi", "vout_top_hdmitx0_mclk",
85+
"i2stx0_bclk", "hdmitx0_pixelclk";
86+
resets = <&syscrg JH7110_SYSRST_VOUT_TOP_SRC>;
87+
#clock-cells = <1>;
88+
#reset-cells = <1>;
89+
power-domains = <&pwrc JH7110_PD_VOUT>;
90+
};

0 commit comments

Comments
 (0)