Unverified Commit 01a7f9e1 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'riscv-dt-for-v6.10-take2' of...

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

 into soc/dt-late

RISC-V Devicetrees for v6.10

Microchip:
A simple addition of a power-monitor on the Icicle dev board, as the
binding for it is now in mainline.

StarFive:
Support for the Milk-V Mars. This board is incredibly similar to the
VisionFive v2 that is already supported, with only the really ethernet
configuration being slightly different. Emil requested that a common
dtsi file, so my fixes branch is pulled into for-next to avoid an
annoying conflict between moved content and some erroneously added
nodes that were removed as fixes this cycle.

T-Head:
Re-ordering of some nodes to match the DTS coding style on the th1520.

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

* tag 'riscv-dt-for-v6.10-take2' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
  riscv: dts: microchip: add pac1934 power-monitor to icicle
  riscv: dts: thead: Fix node ordering in TH1520 device tree
  riscv: dts: starfive: add Milkv Mars board device tree
  riscv: dts: starfive: introduce a common board dtsi for jh7110 based boards
  riscv: dts: starfive: visionfive 2: add "disable-wp" for tfcard
  riscv: dts: starfive: visionfive 2: add tf cd-gpios
  riscv: dts: starfive: visionfive 2: use cpus label for timebase freq
  riscv: dts: starfive: visionfive 2: update sound and codec dt node name
  dt-bindings: riscv: starfive: add Milkv Mars board
  riscv: dts: starfive: add 'cpus' label to jh7110 and jh7100 soc dtsi
  riscv: dts: starfive: visionfive 2: Remove non-existing I2S hardware
  riscv: dts: starfive: visionfive 2: Remove non-existing TDM hardware
  riscv: dts: starfive: Remove PMIC interrupt info for Visionfive 2 board

Link: https://lore.kernel.org/r/20240508-crafter-cement-4f54e4182270@spud


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents aa32dec6 1c80d50b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ properties:

      - items:
          - enum:
              - milkv,mars
              - starfive,visionfive-2-v1.2a
              - starfive,visionfive-2-v1.3b
          - const: starfive,jh7110
+32 −0
Original line number Diff line number Diff line
@@ -100,6 +100,38 @@ &i2c0 {

&i2c1 {
	status = "okay";

	power-monitor@10 {
		compatible = "microchip,pac1934";
		reg = <0x10>;

		#address-cells = <1>;
		#size-cells = <0>;

		channel@1 {
			reg = <0x1>;
			shunt-resistor-micro-ohms = <10000>;
			label = "VDDREG";
		};

		channel@2 {
			reg = <0x2>;
			shunt-resistor-micro-ohms = <10000>;
			label = "VDDA25";
		};

		channel@3 {
			reg = <0x3>;
			shunt-resistor-micro-ohms = <10000>;
			label = "VDD25";
		};

		channel@4 {
			reg = <0x4>;
			shunt-resistor-micro-ohms = <10000>;
			label = "VDDA_REG";
		};
	};
};

&i2c2 {
+1 −0
Original line number Diff line number Diff line
@@ -8,5 +8,6 @@ DTC_FLAGS_jh7110-starfive-visionfive-2-v1.3b := -@
dtb-$(CONFIG_ARCH_STARFIVE) += jh7100-beaglev-starlight.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7100-starfive-visionfive-v1.dtb

dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-milkv-mars.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.2a.dtb
dtb-$(CONFIG_ARCH_STARFIVE) += jh7110-starfive-visionfive-2-v1.3b.dtb
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ / {
	#address-cells = <2>;
	#size-cells = <2>;

	cpus {
	cpus: cpus {
		#address-cells = <1>;
		#size-cells = <0>;

+599 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
 * Copyright (C) 2022 StarFive Technology Co., Ltd.
 * Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk>
 */

/dts-v1/;
#include "jh7110.dtsi"
#include "jh7110-pinfunc.h"
#include <dt-bindings/gpio/gpio.h>

/ {
	aliases {
		ethernet0 = &gmac0;
		i2c0 = &i2c0;
		i2c2 = &i2c2;
		i2c5 = &i2c5;
		i2c6 = &i2c6;
		mmc0 = &mmc0;
		mmc1 = &mmc1;
		serial0 = &uart0;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	memory@40000000 {
		device_type = "memory";
		reg = <0x0 0x40000000 0x1 0x0>;
	};

	gpio-restart {
		compatible = "gpio-restart";
		gpios = <&sysgpio 35 GPIO_ACTIVE_HIGH>;
		priority = <224>;
	};

	pwmdac_codec: audio-codec {
		compatible = "linux,spdif-dit";
		#sound-dai-cells = <0>;
	};

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "StarFive-PWMDAC-Sound-Card";
		#address-cells = <1>;
		#size-cells = <0>;

		simple-audio-card,dai-link@0 {
			reg = <0>;
			format = "left_j";
			bitclock-master = <&sndcpu0>;
			frame-master = <&sndcpu0>;

			sndcpu0: cpu {
				sound-dai = <&pwmdac>;
			};

			codec {
				sound-dai = <&pwmdac_codec>;
			};
		};
	};
};

&cpus {
	timebase-frequency = <4000000>;
};

&dvp_clk {
	clock-frequency = <74250000>;
};

&gmac0_rgmii_rxin {
	clock-frequency = <125000000>;
};

&gmac0_rmii_refin {
	clock-frequency = <50000000>;
};

&gmac1_rgmii_rxin {
	clock-frequency = <125000000>;
};

&gmac1_rmii_refin {
	clock-frequency = <50000000>;
};

&hdmitx0_pixelclk {
	clock-frequency = <297000000>;
};

&i2srx_bclk_ext {
	clock-frequency = <12288000>;
};

&i2srx_lrck_ext {
	clock-frequency = <192000>;
};

&i2stx_bclk_ext {
	clock-frequency = <12288000>;
};

&i2stx_lrck_ext {
	clock-frequency = <192000>;
};

&mclk_ext {
	clock-frequency = <12288000>;
};

&osc {
	clock-frequency = <24000000>;
};

&rtc_osc {
	clock-frequency = <32768>;
};

&tdm_ext {
	clock-frequency = <49152000>;
};

&camss {
	assigned-clocks = <&ispcrg JH7110_ISPCLK_DOM4_APB_FUNC>,
			  <&ispcrg JH7110_ISPCLK_MIPI_RX0_PXL>;
	assigned-clock-rates = <49500000>, <198000000>;
	status = "okay";

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;
		};

		port@1 {
			reg = <1>;

			camss_from_csi2rx: endpoint {
				remote-endpoint = <&csi2rx_to_camss>;
			};
		};
	};
};

&csi2rx {
	assigned-clocks = <&ispcrg JH7110_ISPCLK_VIN_SYS>;
	assigned-clock-rates = <297000000>;
	status = "okay";

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;

			/* remote MIPI sensor endpoint */
		};

		port@1 {
			reg = <1>;

			csi2rx_to_camss: endpoint {
				remote-endpoint = <&camss_from_csi2rx>;
			};
		};
	};
};

&gmac0 {
	phy-handle = <&phy0>;
	phy-mode = "rgmii-id";
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "snps,dwmac-mdio";

		phy0: ethernet-phy@0 {
			reg = <0>;
		};
	};
};

&i2c0 {
	clock-frequency = <100000>;
	i2c-sda-hold-time-ns = <300>;
	i2c-sda-falling-time-ns = <510>;
	i2c-scl-falling-time-ns = <510>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins>;
	status = "okay";
};

&i2c2 {
	clock-frequency = <100000>;
	i2c-sda-hold-time-ns = <300>;
	i2c-sda-falling-time-ns = <510>;
	i2c-scl-falling-time-ns = <510>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2_pins>;
	status = "okay";
};

&i2c5 {
	clock-frequency = <100000>;
	i2c-sda-hold-time-ns = <300>;
	i2c-sda-falling-time-ns = <510>;
	i2c-scl-falling-time-ns = <510>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2c5_pins>;
	status = "okay";

	axp15060: pmic@36 {
		compatible = "x-powers,axp15060";
		reg = <0x36>;
		interrupt-controller;
		#interrupt-cells = <1>;

		regulators {
			vcc_3v3: dcdc1 {
				regulator-boot-on;
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc_3v3";
			};

			vdd_cpu: dcdc2 {
				regulator-always-on;
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1540000>;
				regulator-name = "vdd-cpu";
			};

			emmc_vdd: aldo4 {
				regulator-boot-on;
				regulator-always-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "emmc_vdd";
			};
		};
	};
};

&i2c6 {
	clock-frequency = <100000>;
	i2c-sda-hold-time-ns = <300>;
	i2c-sda-falling-time-ns = <510>;
	i2c-scl-falling-time-ns = <510>;
	pinctrl-names = "default";
	pinctrl-0 = <&i2c6_pins>;
	status = "okay";
};

&mmc0 {
	max-frequency = <100000000>;
	assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>;
	assigned-clock-rates = <50000000>;
	bus-width = <8>;
	cap-mmc-highspeed;
	mmc-ddr-1_8v;
	mmc-hs200-1_8v;
	cap-mmc-hw-reset;
	post-power-on-delay-ms = <200>;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc0_pins>;
	vmmc-supply = <&vcc_3v3>;
	vqmmc-supply = <&emmc_vdd>;
	status = "okay";
};

&mmc1 {
	max-frequency = <100000000>;
	assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>;
	assigned-clock-rates = <50000000>;
	bus-width = <4>;
	no-sdio;
	no-mmc;
	cd-gpios = <&sysgpio 41 GPIO_ACTIVE_LOW>;
	disable-wp;
	cap-sd-highspeed;
	post-power-on-delay-ms = <200>;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc1_pins>;
	status = "okay";
};

&pwmdac {
	pinctrl-names = "default";
	pinctrl-0 = <&pwmdac_pins>;
	status = "okay";
};

&qspi {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	nor_flash: flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		cdns,read-delay = <5>;
		spi-max-frequency = <12000000>;
		cdns,tshsl-ns = <1>;
		cdns,tsd2d-ns = <1>;
		cdns,tchsh-ns = <1>;
		cdns,tslch-ns = <1>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			spl@0 {
				reg = <0x0 0x80000>;
			};
			uboot-env@f0000 {
				reg = <0xf0000 0x10000>;
			};
			uboot@100000 {
				reg = <0x100000 0x400000>;
			};
			reserved-data@600000 {
				reg = <0x600000 0xa00000>;
			};
		};
	};
};

&pwm {
	pinctrl-names = "default";
	pinctrl-0 = <&pwm_pins>;
	status = "okay";
};

&spi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0_pins>;
	status = "okay";

	spi_dev0: spi@0 {
		compatible = "rohm,dh2228fv";
		reg = <0>;
		spi-max-frequency = <10000000>;
	};
};

&sysgpio {
	i2c0_pins: i2c0-0 {
		i2c-pins {
			pinmux = <GPIOMUX(57, GPOUT_LOW,
					      GPOEN_SYS_I2C0_CLK,
					      GPI_SYS_I2C0_CLK)>,
				 <GPIOMUX(58, GPOUT_LOW,
					      GPOEN_SYS_I2C0_DATA,
					      GPI_SYS_I2C0_DATA)>;
			bias-disable; /* external pull-up */
			input-enable;
			input-schmitt-enable;
		};
	};

	i2c2_pins: i2c2-0 {
		i2c-pins {
			pinmux = <GPIOMUX(3, GPOUT_LOW,
					     GPOEN_SYS_I2C2_CLK,
					     GPI_SYS_I2C2_CLK)>,
				 <GPIOMUX(2, GPOUT_LOW,
					     GPOEN_SYS_I2C2_DATA,
					     GPI_SYS_I2C2_DATA)>;
			bias-disable; /* external pull-up */
			input-enable;
			input-schmitt-enable;
		};
	};

	i2c5_pins: i2c5-0 {
		i2c-pins {
			pinmux = <GPIOMUX(19, GPOUT_LOW,
					      GPOEN_SYS_I2C5_CLK,
					      GPI_SYS_I2C5_CLK)>,
				 <GPIOMUX(20, GPOUT_LOW,
					      GPOEN_SYS_I2C5_DATA,
					      GPI_SYS_I2C5_DATA)>;
			bias-disable; /* external pull-up */
			input-enable;
			input-schmitt-enable;
		};
	};

	i2c6_pins: i2c6-0 {
		i2c-pins {
			pinmux = <GPIOMUX(16, GPOUT_LOW,
					      GPOEN_SYS_I2C6_CLK,
					      GPI_SYS_I2C6_CLK)>,
				 <GPIOMUX(17, GPOUT_LOW,
					      GPOEN_SYS_I2C6_DATA,
					      GPI_SYS_I2C6_DATA)>;
			bias-disable; /* external pull-up */
			input-enable;
			input-schmitt-enable;
		};
	};

	mmc0_pins: mmc0-0 {
		 rst-pins {
			pinmux = <GPIOMUX(62, GPOUT_SYS_SDIO0_RST,
					      GPOEN_ENABLE,
					      GPI_NONE)>;
			bias-pull-up;
			drive-strength = <12>;
			input-disable;
			input-schmitt-disable;
			slew-rate = <0>;
		};

		mmc-pins {
			pinmux = <PINMUX(64, 0)>,
				 <PINMUX(65, 0)>,
				 <PINMUX(66, 0)>,
				 <PINMUX(67, 0)>,
				 <PINMUX(68, 0)>,
				 <PINMUX(69, 0)>,
				 <PINMUX(70, 0)>,
				 <PINMUX(71, 0)>,
				 <PINMUX(72, 0)>,
				 <PINMUX(73, 0)>;
			bias-pull-up;
			drive-strength = <12>;
			input-enable;
		};
	};

	mmc1_pins: mmc1-0 {
		clk-pins {
			pinmux = <GPIOMUX(10, GPOUT_SYS_SDIO1_CLK,
					      GPOEN_ENABLE,
					      GPI_NONE)>;
			bias-pull-up;
			drive-strength = <12>;
			input-disable;
			input-schmitt-disable;
			slew-rate = <0>;
		};

		mmc-pins {
			pinmux = <GPIOMUX(9, GPOUT_SYS_SDIO1_CMD,
					     GPOEN_SYS_SDIO1_CMD,
					     GPI_SYS_SDIO1_CMD)>,
				 <GPIOMUX(11, GPOUT_SYS_SDIO1_DATA0,
					      GPOEN_SYS_SDIO1_DATA0,
					      GPI_SYS_SDIO1_DATA0)>,
				 <GPIOMUX(12, GPOUT_SYS_SDIO1_DATA1,
					      GPOEN_SYS_SDIO1_DATA1,
					      GPI_SYS_SDIO1_DATA1)>,
				 <GPIOMUX(7, GPOUT_SYS_SDIO1_DATA2,
					     GPOEN_SYS_SDIO1_DATA2,
					     GPI_SYS_SDIO1_DATA2)>,
				 <GPIOMUX(8, GPOUT_SYS_SDIO1_DATA3,
					     GPOEN_SYS_SDIO1_DATA3,
					     GPI_SYS_SDIO1_DATA3)>;
			bias-pull-up;
			drive-strength = <12>;
			input-enable;
			input-schmitt-enable;
			slew-rate = <0>;
		};
	};

	pwmdac_pins: pwmdac-0 {
		pwmdac-pins {
			pinmux = <GPIOMUX(33, GPOUT_SYS_PWMDAC_LEFT,
					      GPOEN_ENABLE,
					      GPI_NONE)>,
				 <GPIOMUX(34, GPOUT_SYS_PWMDAC_RIGHT,
					      GPOEN_ENABLE,
					      GPI_NONE)>;
			bias-disable;
			drive-strength = <2>;
			input-disable;
			input-schmitt-disable;
			slew-rate = <0>;
		};
	};

	pwm_pins: pwm-0 {
		pwm-pins {
			pinmux = <GPIOMUX(46, GPOUT_SYS_PWM_CHANNEL0,
					      GPOEN_SYS_PWM0_CHANNEL0,
					      GPI_NONE)>,
				 <GPIOMUX(59, GPOUT_SYS_PWM_CHANNEL1,
					      GPOEN_SYS_PWM0_CHANNEL1,
					      GPI_NONE)>;
			bias-disable;
			drive-strength = <12>;
			input-disable;
			input-schmitt-disable;
			slew-rate = <0>;
		};
	};

	spi0_pins: spi0-0 {
		mosi-pins {
			pinmux = <GPIOMUX(52, GPOUT_SYS_SPI0_TXD,
					      GPOEN_ENABLE,
					      GPI_NONE)>;
			bias-disable;
			input-disable;
			input-schmitt-disable;
		};

		miso-pins {
			pinmux = <GPIOMUX(53, GPOUT_LOW,
					      GPOEN_DISABLE,
					      GPI_SYS_SPI0_RXD)>;
			bias-pull-up;
			input-enable;
			input-schmitt-enable;
		};

		sck-pins {
			pinmux = <GPIOMUX(48, GPOUT_SYS_SPI0_CLK,
					      GPOEN_ENABLE,
					      GPI_SYS_SPI0_CLK)>;
			bias-disable;
			input-disable;
			input-schmitt-disable;
		};

		ss-pins {
			pinmux = <GPIOMUX(49, GPOUT_SYS_SPI0_FSS,
					      GPOEN_ENABLE,
					      GPI_SYS_SPI0_FSS)>;
			bias-disable;
			input-disable;
			input-schmitt-disable;
		};
	};

	uart0_pins: uart0-0 {
		tx-pins {
			pinmux = <GPIOMUX(5, GPOUT_SYS_UART0_TX,
					     GPOEN_ENABLE,
					     GPI_NONE)>;
			bias-disable;
			drive-strength = <12>;
			input-disable;
			input-schmitt-disable;
			slew-rate = <0>;
		};

		rx-pins {
			pinmux = <GPIOMUX(6, GPOUT_LOW,
					     GPOEN_DISABLE,
					     GPI_SYS_UART0_RX)>;
			bias-disable; /* external pull-up */
			drive-strength = <2>;
			input-enable;
			input-schmitt-enable;
			slew-rate = <0>;
		};
	};
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_pins>;
	status = "okay";
};

&usb0 {
	dr_mode = "peripheral";
	status = "okay";
};

&U74_1 {
	cpu-supply = <&vdd_cpu>;
};

&U74_2 {
	cpu-supply = <&vdd_cpu>;
};

&U74_3 {
	cpu-supply = <&vdd_cpu>;
};

&U74_4 {
	cpu-supply = <&vdd_cpu>;
};
Loading