Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'riscv-dt-for-v6.4' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt

RISC-V Devicetrees for v6.4

Microchip:
A "fix" for the system controller's regs on PolarFire SoC, adding a
missing reg property.
The patch had been sitting there for months and I only re-found it
recently, so you can guess how much of a "fix" it actually is. It'll
become needed when the system controller's QSPI gets added in the future,
but at present there's no urgency as the driver can handle both the
current and "fixed" versions.

StarFive:
Basic support for the JH7110 & the associated first-party dev board, the
VisionFive v2 (in two forms). There's a bunch of dt-bindings required
for this too, all of which have had input from the DT folk. There's
enough in this tag to boot to a console w/ an initramfs but little more.
The SoC supports some of the "new" bit manipulation instructions, which
is a good test for the recently added Zbb support in the kernel.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

* tag 'riscv-dt-for-v6.4' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
riscv: dts: starfive: Add StarFive JH7110 VisionFive 2 board device tree
riscv: dts: starfive: Add StarFive JH7110 pin function definitions
riscv: dts: starfive: Add initial StarFive JH7110 device tree
dt-bindings: riscv: Add SiFive S7 compatible
dt-bindings: interrupt-controller: Add StarFive JH7110 plic
dt-bindings: timer: Add StarFive JH7110 clint
dt-bindings: clock: Add StarFive JH7110 always-on clock and reset generator
dt-bindings: clock: Add StarFive JH7110 system clock and reset generator
riscv: dts: microchip: fix the mpfs' mailbox regs
riscv: dts: microchip: add mpfs specific macb reset support

Link: https://lore.kernel.org/r/20230406-shank-impromptu-3d483bbc249f@spud
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+1650 -4
+107
Documentation/devicetree/bindings/clock/starfive,jh7110-aoncrg.yaml
··· 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-aoncrg.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: StarFive JH7110 Always-On Clock and Reset Generator 8 + 9 + maintainers: 10 + - Emil Renner Berthing <kernel@esmil.dk> 11 + 12 + properties: 13 + compatible: 14 + const: starfive,jh7110-aoncrg 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + clocks: 20 + oneOf: 21 + - items: 22 + - description: Main Oscillator (24 MHz) 23 + - description: GMAC0 RMII reference or GMAC0 RGMII RX 24 + - description: STG AXI/AHB 25 + - description: APB Bus 26 + - description: GMAC0 GTX 27 + 28 + - items: 29 + - description: Main Oscillator (24 MHz) 30 + - description: GMAC0 RMII reference or GMAC0 RGMII RX 31 + - description: STG AXI/AHB or GMAC0 RGMII RX 32 + - description: APB Bus or STG AXI/AHB 33 + - description: GMAC0 GTX or APB Bus 34 + - description: RTC Oscillator (32.768 kHz) or GMAC0 GTX 35 + 36 + - items: 37 + - description: Main Oscillator (24 MHz) 38 + - description: GMAC0 RMII reference 39 + - description: GMAC0 RGMII RX 40 + - description: STG AXI/AHB 41 + - description: APB Bus 42 + - description: GMAC0 GTX 43 + - description: RTC Oscillator (32.768 kHz) 44 + 45 + clock-names: 46 + oneOf: 47 + - minItems: 5 48 + items: 49 + - const: osc 50 + - enum: 51 + - gmac0_rmii_refin 52 + - gmac0_rgmii_rxin 53 + - const: stg_axiahb 54 + - const: apb_bus 55 + - const: gmac0_gtxclk 56 + - const: rtc_osc 57 + 58 + - minItems: 6 59 + items: 60 + - const: osc 61 + - const: gmac0_rmii_refin 62 + - const: gmac0_rgmii_rxin 63 + - const: stg_axiahb 64 + - const: apb_bus 65 + - const: gmac0_gtxclk 66 + - const: rtc_osc 67 + 68 + '#clock-cells': 69 + const: 1 70 + description: 71 + See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices. 72 + 73 + '#reset-cells': 74 + const: 1 75 + description: 76 + See <dt-bindings/reset/starfive,jh7110-crg.h> for valid indices. 77 + 78 + required: 79 + - compatible 80 + - reg 81 + - clocks 82 + - clock-names 83 + - '#clock-cells' 84 + - '#reset-cells' 85 + 86 + additionalProperties: false 87 + 88 + examples: 89 + - | 90 + #include <dt-bindings/clock/starfive,jh7110-crg.h> 91 + 92 + clock-controller@17000000 { 93 + compatible = "starfive,jh7110-aoncrg"; 94 + reg = <0x17000000 0x10000>; 95 + clocks = <&osc>, <&gmac0_rmii_refin>, 96 + <&gmac0_rgmii_rxin>, 97 + <&syscrg JH7110_SYSCLK_STG_AXIAHB>, 98 + <&syscrg JH7110_SYSCLK_APB_BUS>, 99 + <&syscrg JH7110_SYSCLK_GMAC0_GTXCLK>, 100 + <&rtc_osc>; 101 + clock-names = "osc", "gmac0_rmii_refin", 102 + "gmac0_rgmii_rxin", "stg_axiahb", 103 + "apb_bus", "gmac0_gtxclk", 104 + "rtc_osc"; 105 + #clock-cells = <1>; 106 + #reset-cells = <1>; 107 + };
+104
Documentation/devicetree/bindings/clock/starfive,jh7110-syscrg.yaml
··· 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-syscrg.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: StarFive JH7110 System Clock and Reset Generator 8 + 9 + maintainers: 10 + - Emil Renner Berthing <kernel@esmil.dk> 11 + 12 + properties: 13 + compatible: 14 + const: starfive,jh7110-syscrg 15 + 16 + reg: 17 + maxItems: 1 18 + 19 + clocks: 20 + oneOf: 21 + - items: 22 + - description: Main Oscillator (24 MHz) 23 + - description: GMAC1 RMII reference or GMAC1 RGMII RX 24 + - description: External I2S TX bit clock 25 + - description: External I2S TX left/right channel clock 26 + - description: External I2S RX bit clock 27 + - description: External I2S RX left/right channel clock 28 + - description: External TDM clock 29 + - description: External audio master clock 30 + 31 + - items: 32 + - description: Main Oscillator (24 MHz) 33 + - description: GMAC1 RMII reference 34 + - description: GMAC1 RGMII RX 35 + - description: External I2S TX bit clock 36 + - description: External I2S TX left/right channel clock 37 + - description: External I2S RX bit clock 38 + - description: External I2S RX left/right channel clock 39 + - description: External TDM clock 40 + - description: External audio master clock 41 + 42 + clock-names: 43 + oneOf: 44 + - items: 45 + - const: osc 46 + - enum: 47 + - gmac1_rmii_refin 48 + - gmac1_rgmii_rxin 49 + - const: i2stx_bclk_ext 50 + - const: i2stx_lrck_ext 51 + - const: i2srx_bclk_ext 52 + - const: i2srx_lrck_ext 53 + - const: tdm_ext 54 + - const: mclk_ext 55 + 56 + - items: 57 + - const: osc 58 + - const: gmac1_rmii_refin 59 + - const: gmac1_rgmii_rxin 60 + - const: i2stx_bclk_ext 61 + - const: i2stx_lrck_ext 62 + - const: i2srx_bclk_ext 63 + - const: i2srx_lrck_ext 64 + - const: tdm_ext 65 + - const: mclk_ext 66 + 67 + '#clock-cells': 68 + const: 1 69 + description: 70 + See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices. 71 + 72 + '#reset-cells': 73 + const: 1 74 + description: 75 + See <dt-bindings/reset/starfive,jh7110-crg.h> for valid indices. 76 + 77 + required: 78 + - compatible 79 + - reg 80 + - clocks 81 + - clock-names 82 + - '#clock-cells' 83 + - '#reset-cells' 84 + 85 + additionalProperties: false 86 + 87 + examples: 88 + - | 89 + clock-controller@13020000 { 90 + compatible = "starfive,jh7110-syscrg"; 91 + reg = <0x13020000 0x10000>; 92 + clocks = <&osc>, <&gmac1_rmii_refin>, 93 + <&gmac1_rgmii_rxin>, 94 + <&i2stx_bclk_ext>, <&i2stx_lrck_ext>, 95 + <&i2srx_bclk_ext>, <&i2srx_lrck_ext>, 96 + <&tdm_ext>, <&mclk_ext>; 97 + clock-names = "osc", "gmac1_rmii_refin", 98 + "gmac1_rgmii_rxin", 99 + "i2stx_bclk_ext", "i2stx_lrck_ext", 100 + "i2srx_bclk_ext", "i2srx_lrck_ext", 101 + "tdm_ext", "mclk_ext"; 102 + #clock-cells = <1>; 103 + #reset-cells = <1>; 104 + };
+1
Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml
··· 59 59 - enum: 60 60 - sifive,fu540-c000-plic 61 61 - starfive,jh7100-plic 62 + - starfive,jh7110-plic 62 63 - canaan,k210-plic 63 64 - const: sifive,plic-1.0.0 64 65 - items:
+1
Documentation/devicetree/bindings/riscv/cpus.yaml
··· 35 35 - sifive,e7 36 36 - sifive,e71 37 37 - sifive,rocket0 38 + - sifive,s7 38 39 - sifive,u5 39 40 - sifive,u54 40 41 - sifive,u7
+1
Documentation/devicetree/bindings/timer/sifive,clint.yaml
··· 31 31 - enum: 32 32 - sifive,fu540-c000-clint 33 33 - starfive,jh7100-clint 34 + - starfive,jh7110-clint 34 35 - canaan,k210-clint 35 36 - const: sifive,clint0 36 37 - items:
+7 -3
arch/riscv/boot/dts/microchip/mpfs.dtsi
··· 234 234 reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>; 235 235 clocks = <&refclk>; 236 236 #clock-cells = <1>; 237 + #reset-cells = <1>; 237 238 }; 238 239 239 240 ccc_se: clock-controller@38010000 { ··· 416 415 }; 417 416 418 417 mac0: ethernet@20110000 { 419 - compatible = "cdns,macb"; 418 + compatible = "microchip,mpfs-macb", "cdns,macb"; 420 419 reg = <0x0 0x20110000 0x0 0x2000>; 421 420 #address-cells = <1>; 422 421 #size-cells = <0>; ··· 425 424 local-mac-address = [00 00 00 00 00 00]; 426 425 clocks = <&clkcfg CLK_MAC0>, <&clkcfg CLK_AHB>; 427 426 clock-names = "pclk", "hclk"; 427 + resets = <&clkcfg CLK_MAC0>; 428 428 status = "disabled"; 429 429 }; 430 430 431 431 mac1: ethernet@20112000 { 432 - compatible = "cdns,macb"; 432 + compatible = "microchip,mpfs-macb", "cdns,macb"; 433 433 reg = <0x0 0x20112000 0x0 0x2000>; 434 434 #address-cells = <1>; 435 435 #size-cells = <0>; ··· 439 437 local-mac-address = [00 00 00 00 00 00]; 440 438 clocks = <&clkcfg CLK_MAC1>, <&clkcfg CLK_AHB>; 441 439 clock-names = "pclk", "hclk"; 440 + resets = <&clkcfg CLK_MAC1>; 442 441 status = "disabled"; 443 442 }; 444 443 ··· 501 498 502 499 mbox: mailbox@37020000 { 503 500 compatible = "microchip,mpfs-mailbox"; 504 - reg = <0x0 0x37020000 0x0 0x1000>, <0x0 0x2000318C 0x0 0x40>; 501 + reg = <0x0 0x37020000 0x0 0x58>, <0x0 0x2000318C 0x0 0x40>, 502 + <0x0 0x37020800 0x0 0x100>; 505 503 interrupt-parent = <&plic>; 506 504 interrupts = <96>; 507 505 #mbox-cells = <1>;
+5 -1
arch/riscv/boot/dts/starfive/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - dtb-$(CONFIG_ARCH_STARFIVE) += jh7100-beaglev-starlight.dtb jh7100-starfive-visionfive-v1.dtb 2 + dtb-$(CONFIG_ARCH_STARFIVE) += jh7100-beaglev-starlight.dtb 3 + dtb-$(CONFIG_ARCH_STARFIVE) += jh7100-starfive-visionfive-v1.dtb 4 + 5 + dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.2a.dtb 6 + dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.3b.dtb
+308
arch/riscv/boot/dts/starfive/jh7110-pinfunc.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 OR MIT */ 2 + /* 3 + * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk> 4 + * Copyright (C) 2022 StarFive Technology Co., Ltd. 5 + */ 6 + 7 + #ifndef __JH7110_PINFUNC_H__ 8 + #define __JH7110_PINFUNC_H__ 9 + 10 + /* 11 + * mux bits: 12 + * | 31 - 24 | 23 - 16 | 15 - 10 | 9 - 8 | 7 - 0 | 13 + * | din | dout | doen | function | gpio nr | 14 + * 15 + * dout: output signal 16 + * doen: output enable signal 17 + * din: optional input signal, 0xff = none 18 + * function: function selector 19 + * gpio nr: gpio number, 0 - 63 20 + */ 21 + #define GPIOMUX(n, dout, doen, din) ( \ 22 + (((din) & 0xff) << 24) | \ 23 + (((dout) & 0xff) << 16) | \ 24 + (((doen) & 0x3f) << 10) | \ 25 + ((n) & 0x3f)) 26 + 27 + #define PINMUX(n, func) ((1 << 10) | (((func) & 0x3) << 8) | ((n) & 0xff)) 28 + 29 + /* sys_iomux dout */ 30 + #define GPOUT_LOW 0 31 + #define GPOUT_HIGH 1 32 + #define GPOUT_SYS_WAVE511_UART_TX 2 33 + #define GPOUT_SYS_CAN0_STBY 3 34 + #define GPOUT_SYS_CAN0_TST_NEXT_BIT 4 35 + #define GPOUT_SYS_CAN0_TST_SAMPLE_POINT 5 36 + #define GPOUT_SYS_CAN0_TXD 6 37 + #define GPOUT_SYS_USB_DRIVE_VBUS 7 38 + #define GPOUT_SYS_QSPI_CS1 8 39 + #define GPOUT_SYS_SPDIF 9 40 + #define GPOUT_SYS_HDMI_CEC_SDA 10 41 + #define GPOUT_SYS_HDMI_DDC_SCL 11 42 + #define GPOUT_SYS_HDMI_DDC_SDA 12 43 + #define GPOUT_SYS_WATCHDOG 13 44 + #define GPOUT_SYS_I2C0_CLK 14 45 + #define GPOUT_SYS_I2C0_DATA 15 46 + #define GPOUT_SYS_SDIO0_BACK_END_POWER 16 47 + #define GPOUT_SYS_SDIO0_CARD_POWER_EN 17 48 + #define GPOUT_SYS_SDIO0_CCMD_OD_PULLUP_EN 18 49 + #define GPOUT_SYS_SDIO0_RST 19 50 + #define GPOUT_SYS_UART0_TX 20 51 + #define GPOUT_SYS_HIFI4_JTAG_TDO 21 52 + #define GPOUT_SYS_JTAG_TDO 22 53 + #define GPOUT_SYS_PDM_MCLK 23 54 + #define GPOUT_SYS_PWM_CHANNEL0 24 55 + #define GPOUT_SYS_PWM_CHANNEL1 25 56 + #define GPOUT_SYS_PWM_CHANNEL2 26 57 + #define GPOUT_SYS_PWM_CHANNEL3 27 58 + #define GPOUT_SYS_PWMDAC_LEFT 28 59 + #define GPOUT_SYS_PWMDAC_RIGHT 29 60 + #define GPOUT_SYS_SPI0_CLK 30 61 + #define GPOUT_SYS_SPI0_FSS 31 62 + #define GPOUT_SYS_SPI0_TXD 32 63 + #define GPOUT_SYS_GMAC_PHYCLK 33 64 + #define GPOUT_SYS_I2SRX_BCLK 34 65 + #define GPOUT_SYS_I2SRX_LRCK 35 66 + #define GPOUT_SYS_I2STX0_BCLK 36 67 + #define GPOUT_SYS_I2STX0_LRCK 37 68 + #define GPOUT_SYS_MCLK 38 69 + #define GPOUT_SYS_TDM_CLK 39 70 + #define GPOUT_SYS_TDM_SYNC 40 71 + #define GPOUT_SYS_TDM_TXD 41 72 + #define GPOUT_SYS_TRACE_DATA0 42 73 + #define GPOUT_SYS_TRACE_DATA1 43 74 + #define GPOUT_SYS_TRACE_DATA2 44 75 + #define GPOUT_SYS_TRACE_DATA3 45 76 + #define GPOUT_SYS_TRACE_REF 46 77 + #define GPOUT_SYS_CAN1_STBY 47 78 + #define GPOUT_SYS_CAN1_TST_NEXT_BIT 48 79 + #define GPOUT_SYS_CAN1_TST_SAMPLE_POINT 49 80 + #define GPOUT_SYS_CAN1_TXD 50 81 + #define GPOUT_SYS_I2C1_CLK 51 82 + #define GPOUT_SYS_I2C1_DATA 52 83 + #define GPOUT_SYS_SDIO1_BACK_END_POWER 53 84 + #define GPOUT_SYS_SDIO1_CARD_POWER_EN 54 85 + #define GPOUT_SYS_SDIO1_CLK 55 86 + #define GPOUT_SYS_SDIO1_CMD_OD_PULLUP_EN 56 87 + #define GPOUT_SYS_SDIO1_CMD 57 88 + #define GPOUT_SYS_SDIO1_DATA0 58 89 + #define GPOUT_SYS_SDIO1_DATA1 59 90 + #define GPOUT_SYS_SDIO1_DATA2 60 91 + #define GPOUT_SYS_SDIO1_DATA3 61 92 + #define GPOUT_SYS_SDIO1_DATA4 63 93 + #define GPOUT_SYS_SDIO1_DATA5 63 94 + #define GPOUT_SYS_SDIO1_DATA6 64 95 + #define GPOUT_SYS_SDIO1_DATA7 65 96 + #define GPOUT_SYS_SDIO1_RST 66 97 + #define GPOUT_SYS_UART1_RTS 67 98 + #define GPOUT_SYS_UART1_TX 68 99 + #define GPOUT_SYS_I2STX1_SDO0 69 100 + #define GPOUT_SYS_I2STX1_SDO1 70 101 + #define GPOUT_SYS_I2STX1_SDO2 71 102 + #define GPOUT_SYS_I2STX1_SDO3 72 103 + #define GPOUT_SYS_SPI1_CLK 73 104 + #define GPOUT_SYS_SPI1_FSS 74 105 + #define GPOUT_SYS_SPI1_TXD 75 106 + #define GPOUT_SYS_I2C2_CLK 76 107 + #define GPOUT_SYS_I2C2_DATA 77 108 + #define GPOUT_SYS_UART2_RTS 78 109 + #define GPOUT_SYS_UART2_TX 79 110 + #define GPOUT_SYS_SPI2_CLK 80 111 + #define GPOUT_SYS_SPI2_FSS 81 112 + #define GPOUT_SYS_SPI2_TXD 82 113 + #define GPOUT_SYS_I2C3_CLK 83 114 + #define GPOUT_SYS_I2C3_DATA 84 115 + #define GPOUT_SYS_UART3_TX 85 116 + #define GPOUT_SYS_SPI3_CLK 86 117 + #define GPOUT_SYS_SPI3_FSS 87 118 + #define GPOUT_SYS_SPI3_TXD 88 119 + #define GPOUT_SYS_I2C4_CLK 89 120 + #define GPOUT_SYS_I2C4_DATA 90 121 + #define GPOUT_SYS_UART4_RTS 91 122 + #define GPOUT_SYS_UART4_TX 92 123 + #define GPOUT_SYS_SPI4_CLK 93 124 + #define GPOUT_SYS_SPI4_FSS 94 125 + #define GPOUT_SYS_SPI4_TXD 95 126 + #define GPOUT_SYS_I2C5_CLK 96 127 + #define GPOUT_SYS_I2C5_DATA 97 128 + #define GPOUT_SYS_UART5_RTS 98 129 + #define GPOUT_SYS_UART5_TX 99 130 + #define GPOUT_SYS_SPI5_CLK 100 131 + #define GPOUT_SYS_SPI5_FSS 101 132 + #define GPOUT_SYS_SPI5_TXD 102 133 + #define GPOUT_SYS_I2C6_CLK 103 134 + #define GPOUT_SYS_I2C6_DATA 104 135 + #define GPOUT_SYS_SPI6_CLK 105 136 + #define GPOUT_SYS_SPI6_FSS 106 137 + #define GPOUT_SYS_SPI6_TXD 107 138 + 139 + /* aon_iomux dout */ 140 + #define GPOUT_AON_CLK_32K_OUT 2 141 + #define GPOUT_AON_PTC0_PWM4 3 142 + #define GPOUT_AON_PTC0_PWM5 4 143 + #define GPOUT_AON_PTC0_PWM6 5 144 + #define GPOUT_AON_PTC0_PWM7 6 145 + #define GPOUT_AON_CLK_GCLK0 7 146 + #define GPOUT_AON_CLK_GCLK1 8 147 + #define GPOUT_AON_CLK_GCLK2 9 148 + 149 + /* sys_iomux doen */ 150 + #define GPOEN_ENABLE 0 151 + #define GPOEN_DISABLE 1 152 + #define GPOEN_SYS_HDMI_CEC_SDA 2 153 + #define GPOEN_SYS_HDMI_DDC_SCL 3 154 + #define GPOEN_SYS_HDMI_DDC_SDA 4 155 + #define GPOEN_SYS_I2C0_CLK 5 156 + #define GPOEN_SYS_I2C0_DATA 6 157 + #define GPOEN_SYS_HIFI4_JTAG_TDO 7 158 + #define GPOEN_SYS_JTAG_TDO 8 159 + #define GPOEN_SYS_PWM0_CHANNEL0 9 160 + #define GPOEN_SYS_PWM0_CHANNEL1 10 161 + #define GPOEN_SYS_PWM0_CHANNEL2 11 162 + #define GPOEN_SYS_PWM0_CHANNEL3 12 163 + #define GPOEN_SYS_SPI0_NSSPCTL 13 164 + #define GPOEN_SYS_SPI0_NSSP 14 165 + #define GPOEN_SYS_TDM_SYNC 15 166 + #define GPOEN_SYS_TDM_TXD 16 167 + #define GPOEN_SYS_I2C1_CLK 17 168 + #define GPOEN_SYS_I2C1_DATA 18 169 + #define GPOEN_SYS_SDIO1_CMD 19 170 + #define GPOEN_SYS_SDIO1_DATA0 20 171 + #define GPOEN_SYS_SDIO1_DATA1 21 172 + #define GPOEN_SYS_SDIO1_DATA2 22 173 + #define GPOEN_SYS_SDIO1_DATA3 23 174 + #define GPOEN_SYS_SDIO1_DATA4 24 175 + #define GPOEN_SYS_SDIO1_DATA5 25 176 + #define GPOEN_SYS_SDIO1_DATA6 26 177 + #define GPOEN_SYS_SDIO1_DATA7 27 178 + #define GPOEN_SYS_SPI1_NSSPCTL 28 179 + #define GPOEN_SYS_SPI1_NSSP 29 180 + #define GPOEN_SYS_I2C2_CLK 30 181 + #define GPOEN_SYS_I2C2_DATA 31 182 + #define GPOEN_SYS_SPI2_NSSPCTL 32 183 + #define GPOEN_SYS_SPI2_NSSP 33 184 + #define GPOEN_SYS_I2C3_CLK 34 185 + #define GPOEN_SYS_I2C3_DATA 35 186 + #define GPOEN_SYS_SPI3_NSSPCTL 36 187 + #define GPOEN_SYS_SPI3_NSSP 37 188 + #define GPOEN_SYS_I2C4_CLK 38 189 + #define GPOEN_SYS_I2C4_DATA 39 190 + #define GPOEN_SYS_SPI4_NSSPCTL 40 191 + #define GPOEN_SYS_SPI4_NSSP 41 192 + #define GPOEN_SYS_I2C5_CLK 42 193 + #define GPOEN_SYS_I2C5_DATA 43 194 + #define GPOEN_SYS_SPI5_NSSPCTL 44 195 + #define GPOEN_SYS_SPI5_NSSP 45 196 + #define GPOEN_SYS_I2C6_CLK 46 197 + #define GPOEN_SYS_I2C6_DATA 47 198 + #define GPOEN_SYS_SPI6_NSSPCTL 48 199 + #define GPOEN_SYS_SPI6_NSSP 49 200 + 201 + /* aon_iomux doen */ 202 + #define GPOEN_AON_PTC0_OE_N_4 2 203 + #define GPOEN_AON_PTC0_OE_N_5 3 204 + #define GPOEN_AON_PTC0_OE_N_6 4 205 + #define GPOEN_AON_PTC0_OE_N_7 5 206 + 207 + /* sys_iomux gin */ 208 + #define GPI_NONE 255 209 + 210 + #define GPI_SYS_WAVE511_UART_RX 0 211 + #define GPI_SYS_CAN0_RXD 1 212 + #define GPI_SYS_USB_OVERCURRENT 2 213 + #define GPI_SYS_SPDIF 3 214 + #define GPI_SYS_JTAG_RST 4 215 + #define GPI_SYS_HDMI_CEC_SDA 5 216 + #define GPI_SYS_HDMI_DDC_SCL 6 217 + #define GPI_SYS_HDMI_DDC_SDA 7 218 + #define GPI_SYS_HDMI_HPD 8 219 + #define GPI_SYS_I2C0_CLK 9 220 + #define GPI_SYS_I2C0_DATA 10 221 + #define GPI_SYS_SDIO0_CD 11 222 + #define GPI_SYS_SDIO0_INT 12 223 + #define GPI_SYS_SDIO0_WP 13 224 + #define GPI_SYS_UART0_RX 14 225 + #define GPI_SYS_HIFI4_JTAG_TCK 15 226 + #define GPI_SYS_HIFI4_JTAG_TDI 16 227 + #define GPI_SYS_HIFI4_JTAG_TMS 17 228 + #define GPI_SYS_HIFI4_JTAG_RST 18 229 + #define GPI_SYS_JTAG_TDI 19 230 + #define GPI_SYS_JTAG_TMS 20 231 + #define GPI_SYS_PDM_DMIC0 21 232 + #define GPI_SYS_PDM_DMIC1 22 233 + #define GPI_SYS_I2SRX_SDIN0 23 234 + #define GPI_SYS_I2SRX_SDIN1 24 235 + #define GPI_SYS_I2SRX_SDIN2 25 236 + #define GPI_SYS_SPI0_CLK 26 237 + #define GPI_SYS_SPI0_FSS 27 238 + #define GPI_SYS_SPI0_RXD 28 239 + #define GPI_SYS_JTAG_TCK 29 240 + #define GPI_SYS_MCLK_EXT 30 241 + #define GPI_SYS_I2SRX_BCLK 31 242 + #define GPI_SYS_I2SRX_LRCK 32 243 + #define GPI_SYS_I2STX0_BCLK 33 244 + #define GPI_SYS_I2STX0_LRCK 34 245 + #define GPI_SYS_TDM_CLK 35 246 + #define GPI_SYS_TDM_RXD 36 247 + #define GPI_SYS_TDM_SYNC 37 248 + #define GPI_SYS_CAN1_RXD 38 249 + #define GPI_SYS_I2C1_CLK 39 250 + #define GPI_SYS_I2C1_DATA 40 251 + #define GPI_SYS_SDIO1_CD 41 252 + #define GPI_SYS_SDIO1_INT 42 253 + #define GPI_SYS_SDIO1_WP 43 254 + #define GPI_SYS_SDIO1_CMD 44 255 + #define GPI_SYS_SDIO1_DATA0 45 256 + #define GPI_SYS_SDIO1_DATA1 46 257 + #define GPI_SYS_SDIO1_DATA2 47 258 + #define GPI_SYS_SDIO1_DATA3 48 259 + #define GPI_SYS_SDIO1_DATA4 49 260 + #define GPI_SYS_SDIO1_DATA5 50 261 + #define GPI_SYS_SDIO1_DATA6 51 262 + #define GPI_SYS_SDIO1_DATA7 52 263 + #define GPI_SYS_SDIO1_STRB 53 264 + #define GPI_SYS_UART1_CTS 54 265 + #define GPI_SYS_UART1_RX 55 266 + #define GPI_SYS_SPI1_CLK 56 267 + #define GPI_SYS_SPI1_FSS 57 268 + #define GPI_SYS_SPI1_RXD 58 269 + #define GPI_SYS_I2C2_CLK 59 270 + #define GPI_SYS_I2C2_DATA 60 271 + #define GPI_SYS_UART2_CTS 61 272 + #define GPI_SYS_UART2_RX 62 273 + #define GPI_SYS_SPI2_CLK 63 274 + #define GPI_SYS_SPI2_FSS 64 275 + #define GPI_SYS_SPI2_RXD 65 276 + #define GPI_SYS_I2C3_CLK 66 277 + #define GPI_SYS_I2C3_DATA 67 278 + #define GPI_SYS_UART3_RX 68 279 + #define GPI_SYS_SPI3_CLK 69 280 + #define GPI_SYS_SPI3_FSS 70 281 + #define GPI_SYS_SPI3_RXD 71 282 + #define GPI_SYS_I2C4_CLK 72 283 + #define GPI_SYS_I2C4_DATA 73 284 + #define GPI_SYS_UART4_CTS 74 285 + #define GPI_SYS_UART4_RX 75 286 + #define GPI_SYS_SPI4_CLK 76 287 + #define GPI_SYS_SPI4_FSS 77 288 + #define GPI_SYS_SPI4_RXD 78 289 + #define GPI_SYS_I2C5_CLK 79 290 + #define GPI_SYS_I2C5_DATA 80 291 + #define GPI_SYS_UART5_CTS 81 292 + #define GPI_SYS_UART5_RX 82 293 + #define GPI_SYS_SPI5_CLK 83 294 + #define GPI_SYS_SPI5_FSS 84 295 + #define GPI_SYS_SPI5_RXD 85 296 + #define GPI_SYS_I2C6_CLK 86 297 + #define GPI_SYS_I2C6_DATA 87 298 + #define GPI_SYS_SPI6_CLK 88 299 + #define GPI_SYS_SPI6_FSS 89 300 + #define GPI_SYS_SPI6_RXD 90 301 + 302 + /* aon_iomux gin */ 303 + #define GPI_AON_PMU_GPIO_WAKEUP_0 0 304 + #define GPI_AON_PMU_GPIO_WAKEUP_1 1 305 + #define GPI_AON_PMU_GPIO_WAKEUP_2 2 306 + #define GPI_AON_PMU_GPIO_WAKEUP_3 3 307 + 308 + #endif
+13
arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2-v1.2a.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 OR MIT 2 + /* 3 + * Copyright (C) 2022 StarFive Technology Co., Ltd. 4 + * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk> 5 + */ 6 + 7 + /dts-v1/; 8 + #include "jh7110-starfive-visionfive-2.dtsi" 9 + 10 + / { 11 + model = "StarFive VisionFive 2 v1.2A"; 12 + compatible = "starfive,visionfive-2-v1.2a", "starfive,jh7110"; 13 + };
+13
arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2-v1.3b.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 OR MIT 2 + /* 3 + * Copyright (C) 2022 StarFive Technology Co., Ltd. 4 + * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk> 5 + */ 6 + 7 + /dts-v1/; 8 + #include "jh7110-starfive-visionfive-2.dtsi" 9 + 10 + / { 11 + model = "StarFive VisionFive 2 v1.3B"; 12 + compatible = "starfive,visionfive-2-v1.3b", "starfive,jh7110"; 13 + };
+215
arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 OR MIT 2 + /* 3 + * Copyright (C) 2022 StarFive Technology Co., Ltd. 4 + * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk> 5 + */ 6 + 7 + /dts-v1/; 8 + #include "jh7110.dtsi" 9 + #include "jh7110-pinfunc.h" 10 + #include <dt-bindings/gpio/gpio.h> 11 + 12 + / { 13 + aliases { 14 + i2c0 = &i2c0; 15 + i2c2 = &i2c2; 16 + i2c5 = &i2c5; 17 + i2c6 = &i2c6; 18 + serial0 = &uart0; 19 + }; 20 + 21 + chosen { 22 + stdout-path = "serial0:115200n8"; 23 + }; 24 + 25 + cpus { 26 + timebase-frequency = <4000000>; 27 + }; 28 + 29 + memory@40000000 { 30 + device_type = "memory"; 31 + reg = <0x0 0x40000000 0x1 0x0>; 32 + }; 33 + 34 + gpio-restart { 35 + compatible = "gpio-restart"; 36 + gpios = <&sysgpio 35 GPIO_ACTIVE_HIGH>; 37 + priority = <224>; 38 + }; 39 + }; 40 + 41 + &gmac0_rgmii_rxin { 42 + clock-frequency = <125000000>; 43 + }; 44 + 45 + &gmac0_rmii_refin { 46 + clock-frequency = <50000000>; 47 + }; 48 + 49 + &gmac1_rgmii_rxin { 50 + clock-frequency = <125000000>; 51 + }; 52 + 53 + &gmac1_rmii_refin { 54 + clock-frequency = <50000000>; 55 + }; 56 + 57 + &i2srx_bclk_ext { 58 + clock-frequency = <12288000>; 59 + }; 60 + 61 + &i2srx_lrck_ext { 62 + clock-frequency = <192000>; 63 + }; 64 + 65 + &i2stx_bclk_ext { 66 + clock-frequency = <12288000>; 67 + }; 68 + 69 + &i2stx_lrck_ext { 70 + clock-frequency = <192000>; 71 + }; 72 + 73 + &mclk_ext { 74 + clock-frequency = <12288000>; 75 + }; 76 + 77 + &osc { 78 + clock-frequency = <24000000>; 79 + }; 80 + 81 + &rtc_osc { 82 + clock-frequency = <32768>; 83 + }; 84 + 85 + &tdm_ext { 86 + clock-frequency = <49152000>; 87 + }; 88 + 89 + &i2c0 { 90 + clock-frequency = <100000>; 91 + i2c-sda-hold-time-ns = <300>; 92 + i2c-sda-falling-time-ns = <510>; 93 + i2c-scl-falling-time-ns = <510>; 94 + pinctrl-names = "default"; 95 + pinctrl-0 = <&i2c0_pins>; 96 + status = "okay"; 97 + }; 98 + 99 + &i2c2 { 100 + clock-frequency = <100000>; 101 + i2c-sda-hold-time-ns = <300>; 102 + i2c-sda-falling-time-ns = <510>; 103 + i2c-scl-falling-time-ns = <510>; 104 + pinctrl-names = "default"; 105 + pinctrl-0 = <&i2c2_pins>; 106 + status = "okay"; 107 + }; 108 + 109 + &i2c5 { 110 + clock-frequency = <100000>; 111 + i2c-sda-hold-time-ns = <300>; 112 + i2c-sda-falling-time-ns = <510>; 113 + i2c-scl-falling-time-ns = <510>; 114 + pinctrl-names = "default"; 115 + pinctrl-0 = <&i2c5_pins>; 116 + status = "okay"; 117 + }; 118 + 119 + &i2c6 { 120 + clock-frequency = <100000>; 121 + i2c-sda-hold-time-ns = <300>; 122 + i2c-sda-falling-time-ns = <510>; 123 + i2c-scl-falling-time-ns = <510>; 124 + pinctrl-names = "default"; 125 + pinctrl-0 = <&i2c6_pins>; 126 + status = "okay"; 127 + }; 128 + 129 + &sysgpio { 130 + i2c0_pins: i2c0-0 { 131 + i2c-pins { 132 + pinmux = <GPIOMUX(57, GPOUT_LOW, 133 + GPOEN_SYS_I2C0_CLK, 134 + GPI_SYS_I2C0_CLK)>, 135 + <GPIOMUX(58, GPOUT_LOW, 136 + GPOEN_SYS_I2C0_DATA, 137 + GPI_SYS_I2C0_DATA)>; 138 + bias-disable; /* external pull-up */ 139 + input-enable; 140 + input-schmitt-enable; 141 + }; 142 + }; 143 + 144 + i2c2_pins: i2c2-0 { 145 + i2c-pins { 146 + pinmux = <GPIOMUX(3, GPOUT_LOW, 147 + GPOEN_SYS_I2C2_CLK, 148 + GPI_SYS_I2C2_CLK)>, 149 + <GPIOMUX(2, GPOUT_LOW, 150 + GPOEN_SYS_I2C2_DATA, 151 + GPI_SYS_I2C2_DATA)>; 152 + bias-disable; /* external pull-up */ 153 + input-enable; 154 + input-schmitt-enable; 155 + }; 156 + }; 157 + 158 + i2c5_pins: i2c5-0 { 159 + i2c-pins { 160 + pinmux = <GPIOMUX(19, GPOUT_LOW, 161 + GPOEN_SYS_I2C5_CLK, 162 + GPI_SYS_I2C5_CLK)>, 163 + <GPIOMUX(20, GPOUT_LOW, 164 + GPOEN_SYS_I2C5_DATA, 165 + GPI_SYS_I2C5_DATA)>; 166 + bias-disable; /* external pull-up */ 167 + input-enable; 168 + input-schmitt-enable; 169 + }; 170 + }; 171 + 172 + i2c6_pins: i2c6-0 { 173 + i2c-pins { 174 + pinmux = <GPIOMUX(16, GPOUT_LOW, 175 + GPOEN_SYS_I2C6_CLK, 176 + GPI_SYS_I2C6_CLK)>, 177 + <GPIOMUX(17, GPOUT_LOW, 178 + GPOEN_SYS_I2C6_DATA, 179 + GPI_SYS_I2C6_DATA)>; 180 + bias-disable; /* external pull-up */ 181 + input-enable; 182 + input-schmitt-enable; 183 + }; 184 + }; 185 + 186 + uart0_pins: uart0-0 { 187 + tx-pins { 188 + pinmux = <GPIOMUX(5, GPOUT_SYS_UART0_TX, 189 + GPOEN_ENABLE, 190 + GPI_NONE)>; 191 + bias-disable; 192 + drive-strength = <12>; 193 + input-disable; 194 + input-schmitt-disable; 195 + slew-rate = <0>; 196 + }; 197 + 198 + rx-pins { 199 + pinmux = <GPIOMUX(6, GPOUT_LOW, 200 + GPOEN_DISABLE, 201 + GPI_SYS_UART0_RX)>; 202 + bias-disable; /* external pull-up */ 203 + drive-strength = <2>; 204 + input-enable; 205 + input-schmitt-enable; 206 + slew-rate = <0>; 207 + }; 208 + }; 209 + }; 210 + 211 + &uart0 { 212 + pinctrl-names = "default"; 213 + pinctrl-0 = <&uart0_pins>; 214 + status = "okay"; 215 + };
+500
arch/riscv/boot/dts/starfive/jh7110.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 OR MIT 2 + /* 3 + * Copyright (C) 2022 StarFive Technology Co., Ltd. 4 + * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk> 5 + */ 6 + 7 + /dts-v1/; 8 + #include <dt-bindings/clock/starfive,jh7110-crg.h> 9 + #include <dt-bindings/reset/starfive,jh7110-crg.h> 10 + 11 + / { 12 + compatible = "starfive,jh7110"; 13 + #address-cells = <2>; 14 + #size-cells = <2>; 15 + 16 + cpus { 17 + #address-cells = <1>; 18 + #size-cells = <0>; 19 + 20 + S7_0: cpu@0 { 21 + compatible = "sifive,s7", "riscv"; 22 + reg = <0>; 23 + device_type = "cpu"; 24 + i-cache-block-size = <64>; 25 + i-cache-sets = <64>; 26 + i-cache-size = <16384>; 27 + next-level-cache = <&ccache>; 28 + riscv,isa = "rv64imac_zba_zbb"; 29 + status = "disabled"; 30 + 31 + cpu0_intc: interrupt-controller { 32 + compatible = "riscv,cpu-intc"; 33 + interrupt-controller; 34 + #interrupt-cells = <1>; 35 + }; 36 + }; 37 + 38 + U74_1: cpu@1 { 39 + compatible = "sifive,u74-mc", "riscv"; 40 + reg = <1>; 41 + d-cache-block-size = <64>; 42 + d-cache-sets = <64>; 43 + d-cache-size = <32768>; 44 + d-tlb-sets = <1>; 45 + d-tlb-size = <40>; 46 + device_type = "cpu"; 47 + i-cache-block-size = <64>; 48 + i-cache-sets = <64>; 49 + i-cache-size = <32768>; 50 + i-tlb-sets = <1>; 51 + i-tlb-size = <40>; 52 + mmu-type = "riscv,sv39"; 53 + next-level-cache = <&ccache>; 54 + riscv,isa = "rv64imafdc_zba_zbb"; 55 + tlb-split; 56 + 57 + cpu1_intc: interrupt-controller { 58 + compatible = "riscv,cpu-intc"; 59 + interrupt-controller; 60 + #interrupt-cells = <1>; 61 + }; 62 + }; 63 + 64 + U74_2: cpu@2 { 65 + compatible = "sifive,u74-mc", "riscv"; 66 + reg = <2>; 67 + d-cache-block-size = <64>; 68 + d-cache-sets = <64>; 69 + d-cache-size = <32768>; 70 + d-tlb-sets = <1>; 71 + d-tlb-size = <40>; 72 + device_type = "cpu"; 73 + i-cache-block-size = <64>; 74 + i-cache-sets = <64>; 75 + i-cache-size = <32768>; 76 + i-tlb-sets = <1>; 77 + i-tlb-size = <40>; 78 + mmu-type = "riscv,sv39"; 79 + next-level-cache = <&ccache>; 80 + riscv,isa = "rv64imafdc_zba_zbb"; 81 + tlb-split; 82 + 83 + cpu2_intc: interrupt-controller { 84 + compatible = "riscv,cpu-intc"; 85 + interrupt-controller; 86 + #interrupt-cells = <1>; 87 + }; 88 + }; 89 + 90 + U74_3: cpu@3 { 91 + compatible = "sifive,u74-mc", "riscv"; 92 + reg = <3>; 93 + d-cache-block-size = <64>; 94 + d-cache-sets = <64>; 95 + d-cache-size = <32768>; 96 + d-tlb-sets = <1>; 97 + d-tlb-size = <40>; 98 + device_type = "cpu"; 99 + i-cache-block-size = <64>; 100 + i-cache-sets = <64>; 101 + i-cache-size = <32768>; 102 + i-tlb-sets = <1>; 103 + i-tlb-size = <40>; 104 + mmu-type = "riscv,sv39"; 105 + next-level-cache = <&ccache>; 106 + riscv,isa = "rv64imafdc_zba_zbb"; 107 + tlb-split; 108 + 109 + cpu3_intc: interrupt-controller { 110 + compatible = "riscv,cpu-intc"; 111 + interrupt-controller; 112 + #interrupt-cells = <1>; 113 + }; 114 + }; 115 + 116 + U74_4: cpu@4 { 117 + compatible = "sifive,u74-mc", "riscv"; 118 + reg = <4>; 119 + d-cache-block-size = <64>; 120 + d-cache-sets = <64>; 121 + d-cache-size = <32768>; 122 + d-tlb-sets = <1>; 123 + d-tlb-size = <40>; 124 + device_type = "cpu"; 125 + i-cache-block-size = <64>; 126 + i-cache-sets = <64>; 127 + i-cache-size = <32768>; 128 + i-tlb-sets = <1>; 129 + i-tlb-size = <40>; 130 + mmu-type = "riscv,sv39"; 131 + next-level-cache = <&ccache>; 132 + riscv,isa = "rv64imafdc_zba_zbb"; 133 + tlb-split; 134 + 135 + cpu4_intc: interrupt-controller { 136 + compatible = "riscv,cpu-intc"; 137 + interrupt-controller; 138 + #interrupt-cells = <1>; 139 + }; 140 + }; 141 + 142 + cpu-map { 143 + cluster0 { 144 + core0 { 145 + cpu = <&S7_0>; 146 + }; 147 + 148 + core1 { 149 + cpu = <&U74_1>; 150 + }; 151 + 152 + core2 { 153 + cpu = <&U74_2>; 154 + }; 155 + 156 + core3 { 157 + cpu = <&U74_3>; 158 + }; 159 + 160 + core4 { 161 + cpu = <&U74_4>; 162 + }; 163 + }; 164 + }; 165 + }; 166 + 167 + gmac0_rgmii_rxin: gmac0-rgmii-rxin-clock { 168 + compatible = "fixed-clock"; 169 + clock-output-names = "gmac0_rgmii_rxin"; 170 + #clock-cells = <0>; 171 + }; 172 + 173 + gmac0_rmii_refin: gmac0-rmii-refin-clock { 174 + compatible = "fixed-clock"; 175 + clock-output-names = "gmac0_rmii_refin"; 176 + #clock-cells = <0>; 177 + }; 178 + 179 + gmac1_rgmii_rxin: gmac1-rgmii-rxin-clock { 180 + compatible = "fixed-clock"; 181 + clock-output-names = "gmac1_rgmii_rxin"; 182 + #clock-cells = <0>; 183 + }; 184 + 185 + gmac1_rmii_refin: gmac1-rmii-refin-clock { 186 + compatible = "fixed-clock"; 187 + clock-output-names = "gmac1_rmii_refin"; 188 + #clock-cells = <0>; 189 + }; 190 + 191 + i2srx_bclk_ext: i2srx-bclk-ext-clock { 192 + compatible = "fixed-clock"; 193 + clock-output-names = "i2srx_bclk_ext"; 194 + #clock-cells = <0>; 195 + }; 196 + 197 + i2srx_lrck_ext: i2srx-lrck-ext-clock { 198 + compatible = "fixed-clock"; 199 + clock-output-names = "i2srx_lrck_ext"; 200 + #clock-cells = <0>; 201 + }; 202 + 203 + i2stx_bclk_ext: i2stx-bclk-ext-clock { 204 + compatible = "fixed-clock"; 205 + clock-output-names = "i2stx_bclk_ext"; 206 + #clock-cells = <0>; 207 + }; 208 + 209 + i2stx_lrck_ext: i2stx-lrck-ext-clock { 210 + compatible = "fixed-clock"; 211 + clock-output-names = "i2stx_lrck_ext"; 212 + #clock-cells = <0>; 213 + }; 214 + 215 + mclk_ext: mclk-ext-clock { 216 + compatible = "fixed-clock"; 217 + clock-output-names = "mclk_ext"; 218 + #clock-cells = <0>; 219 + }; 220 + 221 + osc: oscillator { 222 + compatible = "fixed-clock"; 223 + clock-output-names = "osc"; 224 + #clock-cells = <0>; 225 + }; 226 + 227 + rtc_osc: rtc-oscillator { 228 + compatible = "fixed-clock"; 229 + clock-output-names = "rtc_osc"; 230 + #clock-cells = <0>; 231 + }; 232 + 233 + tdm_ext: tdm-ext-clock { 234 + compatible = "fixed-clock"; 235 + clock-output-names = "tdm_ext"; 236 + #clock-cells = <0>; 237 + }; 238 + 239 + soc { 240 + compatible = "simple-bus"; 241 + interrupt-parent = <&plic>; 242 + #address-cells = <2>; 243 + #size-cells = <2>; 244 + ranges; 245 + 246 + clint: timer@2000000 { 247 + compatible = "starfive,jh7110-clint", "sifive,clint0"; 248 + reg = <0x0 0x2000000 0x0 0x10000>; 249 + interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>, 250 + <&cpu1_intc 3>, <&cpu1_intc 7>, 251 + <&cpu2_intc 3>, <&cpu2_intc 7>, 252 + <&cpu3_intc 3>, <&cpu3_intc 7>, 253 + <&cpu4_intc 3>, <&cpu4_intc 7>; 254 + }; 255 + 256 + ccache: cache-controller@2010000 { 257 + compatible = "starfive,jh7110-ccache", "sifive,ccache0", "cache"; 258 + reg = <0x0 0x2010000 0x0 0x4000>; 259 + interrupts = <1>, <3>, <4>, <2>; 260 + cache-block-size = <64>; 261 + cache-level = <2>; 262 + cache-sets = <2048>; 263 + cache-size = <2097152>; 264 + cache-unified; 265 + }; 266 + 267 + plic: interrupt-controller@c000000 { 268 + compatible = "starfive,jh7110-plic", "sifive,plic-1.0.0"; 269 + reg = <0x0 0xc000000 0x0 0x4000000>; 270 + interrupts-extended = <&cpu0_intc 11>, 271 + <&cpu1_intc 11>, <&cpu1_intc 9>, 272 + <&cpu2_intc 11>, <&cpu2_intc 9>, 273 + <&cpu3_intc 11>, <&cpu3_intc 9>, 274 + <&cpu4_intc 11>, <&cpu4_intc 9>; 275 + interrupt-controller; 276 + #interrupt-cells = <1>; 277 + #address-cells = <0>; 278 + riscv,ndev = <136>; 279 + }; 280 + 281 + uart0: serial@10000000 { 282 + compatible = "snps,dw-apb-uart"; 283 + reg = <0x0 0x10000000 0x0 0x10000>; 284 + clocks = <&syscrg JH7110_SYSCLK_UART0_CORE>, 285 + <&syscrg JH7110_SYSCLK_UART0_APB>; 286 + clock-names = "baudclk", "apb_pclk"; 287 + resets = <&syscrg JH7110_SYSRST_UART0_APB>; 288 + interrupts = <32>; 289 + reg-io-width = <4>; 290 + reg-shift = <2>; 291 + status = "disabled"; 292 + }; 293 + 294 + uart1: serial@10010000 { 295 + compatible = "snps,dw-apb-uart"; 296 + reg = <0x0 0x10010000 0x0 0x10000>; 297 + clocks = <&syscrg JH7110_SYSCLK_UART1_CORE>, 298 + <&syscrg JH7110_SYSCLK_UART1_APB>; 299 + clock-names = "baudclk", "apb_pclk"; 300 + resets = <&syscrg JH7110_SYSRST_UART1_APB>; 301 + interrupts = <33>; 302 + reg-io-width = <4>; 303 + reg-shift = <2>; 304 + status = "disabled"; 305 + }; 306 + 307 + uart2: serial@10020000 { 308 + compatible = "snps,dw-apb-uart"; 309 + reg = <0x0 0x10020000 0x0 0x10000>; 310 + clocks = <&syscrg JH7110_SYSCLK_UART2_CORE>, 311 + <&syscrg JH7110_SYSCLK_UART2_APB>; 312 + clock-names = "baudclk", "apb_pclk"; 313 + resets = <&syscrg JH7110_SYSRST_UART2_APB>; 314 + interrupts = <34>; 315 + reg-io-width = <4>; 316 + reg-shift = <2>; 317 + status = "disabled"; 318 + }; 319 + 320 + i2c0: i2c@10030000 { 321 + compatible = "snps,designware-i2c"; 322 + reg = <0x0 0x10030000 0x0 0x10000>; 323 + clocks = <&syscrg JH7110_SYSCLK_I2C0_APB>; 324 + clock-names = "ref"; 325 + resets = <&syscrg JH7110_SYSRST_I2C0_APB>; 326 + interrupts = <35>; 327 + #address-cells = <1>; 328 + #size-cells = <0>; 329 + status = "disabled"; 330 + }; 331 + 332 + i2c1: i2c@10040000 { 333 + compatible = "snps,designware-i2c"; 334 + reg = <0x0 0x10040000 0x0 0x10000>; 335 + clocks = <&syscrg JH7110_SYSCLK_I2C1_APB>; 336 + clock-names = "ref"; 337 + resets = <&syscrg JH7110_SYSRST_I2C1_APB>; 338 + interrupts = <36>; 339 + #address-cells = <1>; 340 + #size-cells = <0>; 341 + status = "disabled"; 342 + }; 343 + 344 + i2c2: i2c@10050000 { 345 + compatible = "snps,designware-i2c"; 346 + reg = <0x0 0x10050000 0x0 0x10000>; 347 + clocks = <&syscrg JH7110_SYSCLK_I2C2_APB>; 348 + clock-names = "ref"; 349 + resets = <&syscrg JH7110_SYSRST_I2C2_APB>; 350 + interrupts = <37>; 351 + #address-cells = <1>; 352 + #size-cells = <0>; 353 + status = "disabled"; 354 + }; 355 + 356 + uart3: serial@12000000 { 357 + compatible = "snps,dw-apb-uart"; 358 + reg = <0x0 0x12000000 0x0 0x10000>; 359 + clocks = <&syscrg JH7110_SYSCLK_UART3_CORE>, 360 + <&syscrg JH7110_SYSCLK_UART3_APB>; 361 + clock-names = "baudclk", "apb_pclk"; 362 + resets = <&syscrg JH7110_SYSRST_UART3_APB>; 363 + interrupts = <45>; 364 + reg-io-width = <4>; 365 + reg-shift = <2>; 366 + status = "disabled"; 367 + }; 368 + 369 + uart4: serial@12010000 { 370 + compatible = "snps,dw-apb-uart"; 371 + reg = <0x0 0x12010000 0x0 0x10000>; 372 + clocks = <&syscrg JH7110_SYSCLK_UART4_CORE>, 373 + <&syscrg JH7110_SYSCLK_UART4_APB>; 374 + clock-names = "baudclk", "apb_pclk"; 375 + resets = <&syscrg JH7110_SYSRST_UART4_APB>; 376 + interrupts = <46>; 377 + reg-io-width = <4>; 378 + reg-shift = <2>; 379 + status = "disabled"; 380 + }; 381 + 382 + uart5: serial@12020000 { 383 + compatible = "snps,dw-apb-uart"; 384 + reg = <0x0 0x12020000 0x0 0x10000>; 385 + clocks = <&syscrg JH7110_SYSCLK_UART5_CORE>, 386 + <&syscrg JH7110_SYSCLK_UART5_APB>; 387 + clock-names = "baudclk", "apb_pclk"; 388 + resets = <&syscrg JH7110_SYSRST_UART5_APB>; 389 + interrupts = <47>; 390 + reg-io-width = <4>; 391 + reg-shift = <2>; 392 + status = "disabled"; 393 + }; 394 + 395 + i2c3: i2c@12030000 { 396 + compatible = "snps,designware-i2c"; 397 + reg = <0x0 0x12030000 0x0 0x10000>; 398 + clocks = <&syscrg JH7110_SYSCLK_I2C3_APB>; 399 + clock-names = "ref"; 400 + resets = <&syscrg JH7110_SYSRST_I2C3_APB>; 401 + interrupts = <48>; 402 + #address-cells = <1>; 403 + #size-cells = <0>; 404 + status = "disabled"; 405 + }; 406 + 407 + i2c4: i2c@12040000 { 408 + compatible = "snps,designware-i2c"; 409 + reg = <0x0 0x12040000 0x0 0x10000>; 410 + clocks = <&syscrg JH7110_SYSCLK_I2C4_APB>; 411 + clock-names = "ref"; 412 + resets = <&syscrg JH7110_SYSRST_I2C4_APB>; 413 + interrupts = <49>; 414 + #address-cells = <1>; 415 + #size-cells = <0>; 416 + status = "disabled"; 417 + }; 418 + 419 + i2c5: i2c@12050000 { 420 + compatible = "snps,designware-i2c"; 421 + reg = <0x0 0x12050000 0x0 0x10000>; 422 + clocks = <&syscrg JH7110_SYSCLK_I2C5_APB>; 423 + clock-names = "ref"; 424 + resets = <&syscrg JH7110_SYSRST_I2C5_APB>; 425 + interrupts = <50>; 426 + #address-cells = <1>; 427 + #size-cells = <0>; 428 + status = "disabled"; 429 + }; 430 + 431 + i2c6: i2c@12060000 { 432 + compatible = "snps,designware-i2c"; 433 + reg = <0x0 0x12060000 0x0 0x10000>; 434 + clocks = <&syscrg JH7110_SYSCLK_I2C6_APB>; 435 + clock-names = "ref"; 436 + resets = <&syscrg JH7110_SYSRST_I2C6_APB>; 437 + interrupts = <51>; 438 + #address-cells = <1>; 439 + #size-cells = <0>; 440 + status = "disabled"; 441 + }; 442 + 443 + syscrg: clock-controller@13020000 { 444 + compatible = "starfive,jh7110-syscrg"; 445 + reg = <0x0 0x13020000 0x0 0x10000>; 446 + clocks = <&osc>, <&gmac1_rmii_refin>, 447 + <&gmac1_rgmii_rxin>, 448 + <&i2stx_bclk_ext>, <&i2stx_lrck_ext>, 449 + <&i2srx_bclk_ext>, <&i2srx_lrck_ext>, 450 + <&tdm_ext>, <&mclk_ext>; 451 + clock-names = "osc", "gmac1_rmii_refin", 452 + "gmac1_rgmii_rxin", 453 + "i2stx_bclk_ext", "i2stx_lrck_ext", 454 + "i2srx_bclk_ext", "i2srx_lrck_ext", 455 + "tdm_ext", "mclk_ext"; 456 + #clock-cells = <1>; 457 + #reset-cells = <1>; 458 + }; 459 + 460 + sysgpio: pinctrl@13040000 { 461 + compatible = "starfive,jh7110-sys-pinctrl"; 462 + reg = <0x0 0x13040000 0x0 0x10000>; 463 + clocks = <&syscrg JH7110_SYSCLK_IOMUX_APB>; 464 + resets = <&syscrg JH7110_SYSRST_IOMUX_APB>; 465 + interrupts = <86>; 466 + interrupt-controller; 467 + #interrupt-cells = <2>; 468 + gpio-controller; 469 + #gpio-cells = <2>; 470 + }; 471 + 472 + aoncrg: clock-controller@17000000 { 473 + compatible = "starfive,jh7110-aoncrg"; 474 + reg = <0x0 0x17000000 0x0 0x10000>; 475 + clocks = <&osc>, <&gmac0_rmii_refin>, 476 + <&gmac0_rgmii_rxin>, 477 + <&syscrg JH7110_SYSCLK_STG_AXIAHB>, 478 + <&syscrg JH7110_SYSCLK_APB_BUS>, 479 + <&syscrg JH7110_SYSCLK_GMAC0_GTXCLK>, 480 + <&rtc_osc>; 481 + clock-names = "osc", "gmac0_rmii_refin", 482 + "gmac0_rgmii_rxin", "stg_axiahb", 483 + "apb_bus", "gmac0_gtxclk", 484 + "rtc_osc"; 485 + #clock-cells = <1>; 486 + #reset-cells = <1>; 487 + }; 488 + 489 + aongpio: pinctrl@17020000 { 490 + compatible = "starfive,jh7110-aon-pinctrl"; 491 + reg = <0x0 0x17020000 0x0 0x10000>; 492 + resets = <&aoncrg JH7110_AONRST_IOMUX>; 493 + interrupts = <85>; 494 + interrupt-controller; 495 + #interrupt-cells = <2>; 496 + gpio-controller; 497 + #gpio-cells = <2>; 498 + }; 499 + }; 500 + };
+221
include/dt-bindings/clock/starfive,jh7110-crg.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 OR MIT */ 2 + /* 3 + * Copyright 2022 Emil Renner Berthing <kernel@esmil.dk> 4 + */ 5 + 6 + #ifndef __DT_BINDINGS_CLOCK_STARFIVE_JH7110_CRG_H__ 7 + #define __DT_BINDINGS_CLOCK_STARFIVE_JH7110_CRG_H__ 8 + 9 + /* SYSCRG clocks */ 10 + #define JH7110_SYSCLK_CPU_ROOT 0 11 + #define JH7110_SYSCLK_CPU_CORE 1 12 + #define JH7110_SYSCLK_CPU_BUS 2 13 + #define JH7110_SYSCLK_GPU_ROOT 3 14 + #define JH7110_SYSCLK_PERH_ROOT 4 15 + #define JH7110_SYSCLK_BUS_ROOT 5 16 + #define JH7110_SYSCLK_NOCSTG_BUS 6 17 + #define JH7110_SYSCLK_AXI_CFG0 7 18 + #define JH7110_SYSCLK_STG_AXIAHB 8 19 + #define JH7110_SYSCLK_AHB0 9 20 + #define JH7110_SYSCLK_AHB1 10 21 + #define JH7110_SYSCLK_APB_BUS 11 22 + #define JH7110_SYSCLK_APB0 12 23 + #define JH7110_SYSCLK_PLL0_DIV2 13 24 + #define JH7110_SYSCLK_PLL1_DIV2 14 25 + #define JH7110_SYSCLK_PLL2_DIV2 15 26 + #define JH7110_SYSCLK_AUDIO_ROOT 16 27 + #define JH7110_SYSCLK_MCLK_INNER 17 28 + #define JH7110_SYSCLK_MCLK 18 29 + #define JH7110_SYSCLK_MCLK_OUT 19 30 + #define JH7110_SYSCLK_ISP_2X 20 31 + #define JH7110_SYSCLK_ISP_AXI 21 32 + #define JH7110_SYSCLK_GCLK0 22 33 + #define JH7110_SYSCLK_GCLK1 23 34 + #define JH7110_SYSCLK_GCLK2 24 35 + #define JH7110_SYSCLK_CORE 25 36 + #define JH7110_SYSCLK_CORE1 26 37 + #define JH7110_SYSCLK_CORE2 27 38 + #define JH7110_SYSCLK_CORE3 28 39 + #define JH7110_SYSCLK_CORE4 29 40 + #define JH7110_SYSCLK_DEBUG 30 41 + #define JH7110_SYSCLK_RTC_TOGGLE 31 42 + #define JH7110_SYSCLK_TRACE0 32 43 + #define JH7110_SYSCLK_TRACE1 33 44 + #define JH7110_SYSCLK_TRACE2 34 45 + #define JH7110_SYSCLK_TRACE3 35 46 + #define JH7110_SYSCLK_TRACE4 36 47 + #define JH7110_SYSCLK_TRACE_COM 37 48 + #define JH7110_SYSCLK_NOC_BUS_CPU_AXI 38 49 + #define JH7110_SYSCLK_NOC_BUS_AXICFG0_AXI 39 50 + #define JH7110_SYSCLK_OSC_DIV2 40 51 + #define JH7110_SYSCLK_PLL1_DIV4 41 52 + #define JH7110_SYSCLK_PLL1_DIV8 42 53 + #define JH7110_SYSCLK_DDR_BUS 43 54 + #define JH7110_SYSCLK_DDR_AXI 44 55 + #define JH7110_SYSCLK_GPU_CORE 45 56 + #define JH7110_SYSCLK_GPU_CORE_CLK 46 57 + #define JH7110_SYSCLK_GPU_SYS_CLK 47 58 + #define JH7110_SYSCLK_GPU_APB 48 59 + #define JH7110_SYSCLK_GPU_RTC_TOGGLE 49 60 + #define JH7110_SYSCLK_NOC_BUS_GPU_AXI 50 61 + #define JH7110_SYSCLK_ISP_TOP_CORE 51 62 + #define JH7110_SYSCLK_ISP_TOP_AXI 52 63 + #define JH7110_SYSCLK_NOC_BUS_ISP_AXI 53 64 + #define JH7110_SYSCLK_HIFI4_CORE 54 65 + #define JH7110_SYSCLK_HIFI4_AXI 55 66 + #define JH7110_SYSCLK_AXI_CFG1_MAIN 56 67 + #define JH7110_SYSCLK_AXI_CFG1_AHB 57 68 + #define JH7110_SYSCLK_VOUT_SRC 58 69 + #define JH7110_SYSCLK_VOUT_AXI 59 70 + #define JH7110_SYSCLK_NOC_BUS_DISP_AXI 60 71 + #define JH7110_SYSCLK_VOUT_TOP_AHB 61 72 + #define JH7110_SYSCLK_VOUT_TOP_AXI 62 73 + #define JH7110_SYSCLK_VOUT_TOP_HDMITX0_MCLK 63 74 + #define JH7110_SYSCLK_VOUT_TOP_MIPIPHY_REF 64 75 + #define JH7110_SYSCLK_JPEGC_AXI 65 76 + #define JH7110_SYSCLK_CODAJ12_AXI 66 77 + #define JH7110_SYSCLK_CODAJ12_CORE 67 78 + #define JH7110_SYSCLK_CODAJ12_APB 68 79 + #define JH7110_SYSCLK_VDEC_AXI 69 80 + #define JH7110_SYSCLK_WAVE511_AXI 70 81 + #define JH7110_SYSCLK_WAVE511_BPU 71 82 + #define JH7110_SYSCLK_WAVE511_VCE 72 83 + #define JH7110_SYSCLK_WAVE511_APB 73 84 + #define JH7110_SYSCLK_VDEC_JPG 74 85 + #define JH7110_SYSCLK_VDEC_MAIN 75 86 + #define JH7110_SYSCLK_NOC_BUS_VDEC_AXI 76 87 + #define JH7110_SYSCLK_VENC_AXI 77 88 + #define JH7110_SYSCLK_WAVE420L_AXI 78 89 + #define JH7110_SYSCLK_WAVE420L_BPU 79 90 + #define JH7110_SYSCLK_WAVE420L_VCE 80 91 + #define JH7110_SYSCLK_WAVE420L_APB 81 92 + #define JH7110_SYSCLK_NOC_BUS_VENC_AXI 82 93 + #define JH7110_SYSCLK_AXI_CFG0_MAIN_DIV 83 94 + #define JH7110_SYSCLK_AXI_CFG0_MAIN 84 95 + #define JH7110_SYSCLK_AXI_CFG0_HIFI4 85 96 + #define JH7110_SYSCLK_AXIMEM2_AXI 86 97 + #define JH7110_SYSCLK_QSPI_AHB 87 98 + #define JH7110_SYSCLK_QSPI_APB 88 99 + #define JH7110_SYSCLK_QSPI_REF_SRC 89 100 + #define JH7110_SYSCLK_QSPI_REF 90 101 + #define JH7110_SYSCLK_SDIO0_AHB 91 102 + #define JH7110_SYSCLK_SDIO1_AHB 92 103 + #define JH7110_SYSCLK_SDIO0_SDCARD 93 104 + #define JH7110_SYSCLK_SDIO1_SDCARD 94 105 + #define JH7110_SYSCLK_USB_125M 95 106 + #define JH7110_SYSCLK_NOC_BUS_STG_AXI 96 107 + #define JH7110_SYSCLK_GMAC1_AHB 97 108 + #define JH7110_SYSCLK_GMAC1_AXI 98 109 + #define JH7110_SYSCLK_GMAC_SRC 99 110 + #define JH7110_SYSCLK_GMAC1_GTXCLK 100 111 + #define JH7110_SYSCLK_GMAC1_RMII_RTX 101 112 + #define JH7110_SYSCLK_GMAC1_PTP 102 113 + #define JH7110_SYSCLK_GMAC1_RX 103 114 + #define JH7110_SYSCLK_GMAC1_RX_INV 104 115 + #define JH7110_SYSCLK_GMAC1_TX 105 116 + #define JH7110_SYSCLK_GMAC1_TX_INV 106 117 + #define JH7110_SYSCLK_GMAC1_GTXC 107 118 + #define JH7110_SYSCLK_GMAC0_GTXCLK 108 119 + #define JH7110_SYSCLK_GMAC0_PTP 109 120 + #define JH7110_SYSCLK_GMAC_PHY 110 121 + #define JH7110_SYSCLK_GMAC0_GTXC 111 122 + #define JH7110_SYSCLK_IOMUX_APB 112 123 + #define JH7110_SYSCLK_MAILBOX_APB 113 124 + #define JH7110_SYSCLK_INT_CTRL_APB 114 125 + #define JH7110_SYSCLK_CAN0_APB 115 126 + #define JH7110_SYSCLK_CAN0_TIMER 116 127 + #define JH7110_SYSCLK_CAN0_CAN 117 128 + #define JH7110_SYSCLK_CAN1_APB 118 129 + #define JH7110_SYSCLK_CAN1_TIMER 119 130 + #define JH7110_SYSCLK_CAN1_CAN 120 131 + #define JH7110_SYSCLK_PWM_APB 121 132 + #define JH7110_SYSCLK_WDT_APB 122 133 + #define JH7110_SYSCLK_WDT_CORE 123 134 + #define JH7110_SYSCLK_TIMER_APB 124 135 + #define JH7110_SYSCLK_TIMER0 125 136 + #define JH7110_SYSCLK_TIMER1 126 137 + #define JH7110_SYSCLK_TIMER2 127 138 + #define JH7110_SYSCLK_TIMER3 128 139 + #define JH7110_SYSCLK_TEMP_APB 129 140 + #define JH7110_SYSCLK_TEMP_CORE 130 141 + #define JH7110_SYSCLK_SPI0_APB 131 142 + #define JH7110_SYSCLK_SPI1_APB 132 143 + #define JH7110_SYSCLK_SPI2_APB 133 144 + #define JH7110_SYSCLK_SPI3_APB 134 145 + #define JH7110_SYSCLK_SPI4_APB 135 146 + #define JH7110_SYSCLK_SPI5_APB 136 147 + #define JH7110_SYSCLK_SPI6_APB 137 148 + #define JH7110_SYSCLK_I2C0_APB 138 149 + #define JH7110_SYSCLK_I2C1_APB 139 150 + #define JH7110_SYSCLK_I2C2_APB 140 151 + #define JH7110_SYSCLK_I2C3_APB 141 152 + #define JH7110_SYSCLK_I2C4_APB 142 153 + #define JH7110_SYSCLK_I2C5_APB 143 154 + #define JH7110_SYSCLK_I2C6_APB 144 155 + #define JH7110_SYSCLK_UART0_APB 145 156 + #define JH7110_SYSCLK_UART0_CORE 146 157 + #define JH7110_SYSCLK_UART1_APB 147 158 + #define JH7110_SYSCLK_UART1_CORE 148 159 + #define JH7110_SYSCLK_UART2_APB 149 160 + #define JH7110_SYSCLK_UART2_CORE 150 161 + #define JH7110_SYSCLK_UART3_APB 151 162 + #define JH7110_SYSCLK_UART3_CORE 152 163 + #define JH7110_SYSCLK_UART4_APB 153 164 + #define JH7110_SYSCLK_UART4_CORE 154 165 + #define JH7110_SYSCLK_UART5_APB 155 166 + #define JH7110_SYSCLK_UART5_CORE 156 167 + #define JH7110_SYSCLK_PWMDAC_APB 157 168 + #define JH7110_SYSCLK_PWMDAC_CORE 158 169 + #define JH7110_SYSCLK_SPDIF_APB 159 170 + #define JH7110_SYSCLK_SPDIF_CORE 160 171 + #define JH7110_SYSCLK_I2STX0_APB 161 172 + #define JH7110_SYSCLK_I2STX0_BCLK_MST 162 173 + #define JH7110_SYSCLK_I2STX0_BCLK_MST_INV 163 174 + #define JH7110_SYSCLK_I2STX0_LRCK_MST 164 175 + #define JH7110_SYSCLK_I2STX0_BCLK 165 176 + #define JH7110_SYSCLK_I2STX0_BCLK_INV 166 177 + #define JH7110_SYSCLK_I2STX0_LRCK 167 178 + #define JH7110_SYSCLK_I2STX1_APB 168 179 + #define JH7110_SYSCLK_I2STX1_BCLK_MST 169 180 + #define JH7110_SYSCLK_I2STX1_BCLK_MST_INV 170 181 + #define JH7110_SYSCLK_I2STX1_LRCK_MST 171 182 + #define JH7110_SYSCLK_I2STX1_BCLK 172 183 + #define JH7110_SYSCLK_I2STX1_BCLK_INV 173 184 + #define JH7110_SYSCLK_I2STX1_LRCK 174 185 + #define JH7110_SYSCLK_I2SRX_APB 175 186 + #define JH7110_SYSCLK_I2SRX_BCLK_MST 176 187 + #define JH7110_SYSCLK_I2SRX_BCLK_MST_INV 177 188 + #define JH7110_SYSCLK_I2SRX_LRCK_MST 178 189 + #define JH7110_SYSCLK_I2SRX_BCLK 179 190 + #define JH7110_SYSCLK_I2SRX_BCLK_INV 180 191 + #define JH7110_SYSCLK_I2SRX_LRCK 181 192 + #define JH7110_SYSCLK_PDM_DMIC 182 193 + #define JH7110_SYSCLK_PDM_APB 183 194 + #define JH7110_SYSCLK_TDM_AHB 184 195 + #define JH7110_SYSCLK_TDM_APB 185 196 + #define JH7110_SYSCLK_TDM_INTERNAL 186 197 + #define JH7110_SYSCLK_TDM_TDM 187 198 + #define JH7110_SYSCLK_TDM_TDM_INV 188 199 + #define JH7110_SYSCLK_JTAG_CERTIFICATION_TRNG 189 200 + 201 + #define JH7110_SYSCLK_END 190 202 + 203 + /* AONCRG clocks */ 204 + #define JH7110_AONCLK_OSC_DIV4 0 205 + #define JH7110_AONCLK_APB_FUNC 1 206 + #define JH7110_AONCLK_GMAC0_AHB 2 207 + #define JH7110_AONCLK_GMAC0_AXI 3 208 + #define JH7110_AONCLK_GMAC0_RMII_RTX 4 209 + #define JH7110_AONCLK_GMAC0_TX 5 210 + #define JH7110_AONCLK_GMAC0_TX_INV 6 211 + #define JH7110_AONCLK_GMAC0_RX 7 212 + #define JH7110_AONCLK_GMAC0_RX_INV 8 213 + #define JH7110_AONCLK_OTPC_APB 9 214 + #define JH7110_AONCLK_RTC_APB 10 215 + #define JH7110_AONCLK_RTC_INTERNAL 11 216 + #define JH7110_AONCLK_RTC_32K 12 217 + #define JH7110_AONCLK_RTC_CAL 13 218 + 219 + #define JH7110_AONCLK_END 14 220 + 221 + #endif /* __DT_BINDINGS_CLOCK_STARFIVE_JH7110_CRG_H__ */
+154
include/dt-bindings/reset/starfive,jh7110-crg.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 OR MIT */ 2 + /* 3 + * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk> 4 + */ 5 + 6 + #ifndef __DT_BINDINGS_RESET_STARFIVE_JH7110_CRG_H__ 7 + #define __DT_BINDINGS_RESET_STARFIVE_JH7110_CRG_H__ 8 + 9 + /* SYSCRG resets */ 10 + #define JH7110_SYSRST_JTAG_APB 0 11 + #define JH7110_SYSRST_SYSCON_APB 1 12 + #define JH7110_SYSRST_IOMUX_APB 2 13 + #define JH7110_SYSRST_BUS 3 14 + #define JH7110_SYSRST_DEBUG 4 15 + #define JH7110_SYSRST_CORE0 5 16 + #define JH7110_SYSRST_CORE1 6 17 + #define JH7110_SYSRST_CORE2 7 18 + #define JH7110_SYSRST_CORE3 8 19 + #define JH7110_SYSRST_CORE4 9 20 + #define JH7110_SYSRST_CORE0_ST 10 21 + #define JH7110_SYSRST_CORE1_ST 11 22 + #define JH7110_SYSRST_CORE2_ST 12 23 + #define JH7110_SYSRST_CORE3_ST 13 24 + #define JH7110_SYSRST_CORE4_ST 14 25 + #define JH7110_SYSRST_TRACE0 15 26 + #define JH7110_SYSRST_TRACE1 16 27 + #define JH7110_SYSRST_TRACE2 17 28 + #define JH7110_SYSRST_TRACE3 18 29 + #define JH7110_SYSRST_TRACE4 19 30 + #define JH7110_SYSRST_TRACE_COM 20 31 + #define JH7110_SYSRST_GPU_APB 21 32 + #define JH7110_SYSRST_GPU_DOMA 22 33 + #define JH7110_SYSRST_NOC_BUS_APB 23 34 + #define JH7110_SYSRST_NOC_BUS_AXICFG0_AXI 24 35 + #define JH7110_SYSRST_NOC_BUS_CPU_AXI 25 36 + #define JH7110_SYSRST_NOC_BUS_DISP_AXI 26 37 + #define JH7110_SYSRST_NOC_BUS_GPU_AXI 27 38 + #define JH7110_SYSRST_NOC_BUS_ISP_AXI 28 39 + #define JH7110_SYSRST_NOC_BUS_DDRC 29 40 + #define JH7110_SYSRST_NOC_BUS_STG_AXI 30 41 + #define JH7110_SYSRST_NOC_BUS_VDEC_AXI 31 42 + 43 + #define JH7110_SYSRST_NOC_BUS_VENC_AXI 32 44 + #define JH7110_SYSRST_AXI_CFG1_AHB 33 45 + #define JH7110_SYSRST_AXI_CFG1_MAIN 34 46 + #define JH7110_SYSRST_AXI_CFG0_MAIN 35 47 + #define JH7110_SYSRST_AXI_CFG0_MAIN_DIV 36 48 + #define JH7110_SYSRST_AXI_CFG0_HIFI4 37 49 + #define JH7110_SYSRST_DDR_AXI 38 50 + #define JH7110_SYSRST_DDR_OSC 39 51 + #define JH7110_SYSRST_DDR_APB 40 52 + #define JH7110_SYSRST_ISP_TOP 41 53 + #define JH7110_SYSRST_ISP_TOP_AXI 42 54 + #define JH7110_SYSRST_VOUT_TOP_SRC 43 55 + #define JH7110_SYSRST_CODAJ12_AXI 44 56 + #define JH7110_SYSRST_CODAJ12_CORE 45 57 + #define JH7110_SYSRST_CODAJ12_APB 46 58 + #define JH7110_SYSRST_WAVE511_AXI 47 59 + #define JH7110_SYSRST_WAVE511_BPU 48 60 + #define JH7110_SYSRST_WAVE511_VCE 49 61 + #define JH7110_SYSRST_WAVE511_APB 50 62 + #define JH7110_SYSRST_VDEC_JPG 51 63 + #define JH7110_SYSRST_VDEC_MAIN 52 64 + #define JH7110_SYSRST_AXIMEM0_AXI 53 65 + #define JH7110_SYSRST_WAVE420L_AXI 54 66 + #define JH7110_SYSRST_WAVE420L_BPU 55 67 + #define JH7110_SYSRST_WAVE420L_VCE 56 68 + #define JH7110_SYSRST_WAVE420L_APB 57 69 + #define JH7110_SYSRST_AXIMEM1_AXI 58 70 + #define JH7110_SYSRST_AXIMEM2_AXI 59 71 + #define JH7110_SYSRST_INTMEM 60 72 + #define JH7110_SYSRST_QSPI_AHB 61 73 + #define JH7110_SYSRST_QSPI_APB 62 74 + #define JH7110_SYSRST_QSPI_REF 63 75 + 76 + #define JH7110_SYSRST_SDIO0_AHB 64 77 + #define JH7110_SYSRST_SDIO1_AHB 65 78 + #define JH7110_SYSRST_GMAC1_AXI 66 79 + #define JH7110_SYSRST_GMAC1_AHB 67 80 + #define JH7110_SYSRST_MAILBOX_APB 68 81 + #define JH7110_SYSRST_SPI0_APB 69 82 + #define JH7110_SYSRST_SPI1_APB 70 83 + #define JH7110_SYSRST_SPI2_APB 71 84 + #define JH7110_SYSRST_SPI3_APB 72 85 + #define JH7110_SYSRST_SPI4_APB 73 86 + #define JH7110_SYSRST_SPI5_APB 74 87 + #define JH7110_SYSRST_SPI6_APB 75 88 + #define JH7110_SYSRST_I2C0_APB 76 89 + #define JH7110_SYSRST_I2C1_APB 77 90 + #define JH7110_SYSRST_I2C2_APB 78 91 + #define JH7110_SYSRST_I2C3_APB 79 92 + #define JH7110_SYSRST_I2C4_APB 80 93 + #define JH7110_SYSRST_I2C5_APB 81 94 + #define JH7110_SYSRST_I2C6_APB 82 95 + #define JH7110_SYSRST_UART0_APB 83 96 + #define JH7110_SYSRST_UART0_CORE 84 97 + #define JH7110_SYSRST_UART1_APB 85 98 + #define JH7110_SYSRST_UART1_CORE 86 99 + #define JH7110_SYSRST_UART2_APB 87 100 + #define JH7110_SYSRST_UART2_CORE 88 101 + #define JH7110_SYSRST_UART3_APB 89 102 + #define JH7110_SYSRST_UART3_CORE 90 103 + #define JH7110_SYSRST_UART4_APB 91 104 + #define JH7110_SYSRST_UART4_CORE 92 105 + #define JH7110_SYSRST_UART5_APB 93 106 + #define JH7110_SYSRST_UART5_CORE 94 107 + #define JH7110_SYSRST_SPDIF_APB 95 108 + 109 + #define JH7110_SYSRST_PWMDAC_APB 96 110 + #define JH7110_SYSRST_PDM_DMIC 97 111 + #define JH7110_SYSRST_PDM_APB 98 112 + #define JH7110_SYSRST_I2SRX_APB 99 113 + #define JH7110_SYSRST_I2SRX_BCLK 100 114 + #define JH7110_SYSRST_I2STX0_APB 101 115 + #define JH7110_SYSRST_I2STX0_BCLK 102 116 + #define JH7110_SYSRST_I2STX1_APB 103 117 + #define JH7110_SYSRST_I2STX1_BCLK 104 118 + #define JH7110_SYSRST_TDM_AHB 105 119 + #define JH7110_SYSRST_TDM_CORE 106 120 + #define JH7110_SYSRST_TDM_APB 107 121 + #define JH7110_SYSRST_PWM_APB 108 122 + #define JH7110_SYSRST_WDT_APB 109 123 + #define JH7110_SYSRST_WDT_CORE 110 124 + #define JH7110_SYSRST_CAN0_APB 111 125 + #define JH7110_SYSRST_CAN0_CORE 112 126 + #define JH7110_SYSRST_CAN0_TIMER 113 127 + #define JH7110_SYSRST_CAN1_APB 114 128 + #define JH7110_SYSRST_CAN1_CORE 115 129 + #define JH7110_SYSRST_CAN1_TIMER 116 130 + #define JH7110_SYSRST_TIMER_APB 117 131 + #define JH7110_SYSRST_TIMER0 118 132 + #define JH7110_SYSRST_TIMER1 119 133 + #define JH7110_SYSRST_TIMER2 120 134 + #define JH7110_SYSRST_TIMER3 121 135 + #define JH7110_SYSRST_INT_CTRL_APB 122 136 + #define JH7110_SYSRST_TEMP_APB 123 137 + #define JH7110_SYSRST_TEMP_CORE 124 138 + #define JH7110_SYSRST_JTAG_CERTIFICATION 125 139 + 140 + #define JH7110_SYSRST_END 126 141 + 142 + /* AONCRG resets */ 143 + #define JH7110_AONRST_GMAC0_AXI 0 144 + #define JH7110_AONRST_GMAC0_AHB 1 145 + #define JH7110_AONRST_IOMUX 2 146 + #define JH7110_AONRST_PMU_APB 3 147 + #define JH7110_AONRST_PMU_WKUP 4 148 + #define JH7110_AONRST_RTC_APB 5 149 + #define JH7110_AONRST_RTC_CAL 6 150 + #define JH7110_AONRST_RTC_32K 7 151 + 152 + #define JH7110_AONRST_END 8 153 + 154 + #endif /* __DT_BINDINGS_RESET_STARFIVE_JH7110_CRG_H__ */