linux/arch/arm64/boot/dts/amlogic/meson-s4-s805x2-aq222.dts

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2021 Amlogic, Inc. All rights reserved.
 */

/dts-v1/;

#include "meson-s4.dtsi"

/ {
	model = "Amlogic Meson S4 AQ222 Development Board";
	compatible = "amlogic,aq222", "amlogic,s4";
	interrupt-parent = <&gic>;
	#address-cells = <2>;
	#size-cells = <2>;

	aliases {
		serial0 = &uart_b;
	};

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

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		/* 52 MiB reserved for ARM Trusted Firmware */
		secmon_reserved: secmon@5000000 {
			reg = <0x0 0x05000000 0x0 0x3400000>;
			no-map;
		};
	};

	sdio_32k: sdio-32k {
		compatible = "pwm-clock";
		#clock-cells = <0>;
		clock-frequency = <32768>;
		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
	};

	sdio_pwrseq: sdio-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
		clocks = <&sdio_32k>;
		clock-names = "ext_clock";
	};

	main_12v: regulator-main-12v {
		compatible = "regulator-fixed";
		regulator-name = "12V";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		regulator-always-on;
	};

	vddao_3v3: regulator-vddao-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VDDAO_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&main_12v>;
		regulator-always-on;
	};

	vddio_ao1v8: regulator-vddio-ao1v8 {
	       compatible = "regulator-fixed";
	       regulator-name = "VDDIO_AO1V8";
	       regulator-min-microvolt = <1800000>;
	       regulator-max-microvolt = <1800000>;
	       vin-supply = <&vddao_3v3>;
	       regulator-always-on;
	};

	/* SY8120B1ABC DC/DC Regulator. */
	vddcpu: regulator-vddcpu {
		compatible = "pwm-regulator";

		regulator-name = "VDDCPU";
		regulator-min-microvolt = <689000>;
		regulator-max-microvolt = <1049000>;

		vin-supply = <&main_12v>;

		pwms = <&pwm_ij 1 1500 0>;
		pwm-dutycycle-range = <100 0>;

		regulator-boot-on;
		regulator-always-on;
		/* Voltage Duty-Cycle */
		voltage-table = <1049000 0>,
				<1039000 3>,
				<1029000 6>,
				<1019000 9>,
				<1009000 12>,
				<999000 14>,
				<989000 17>,
				<979000 20>,
				<969000 23>,
				<959000 26>,
				<949000 29>,
				<939000 31>,
				<929000 34>,
				<919000 37>,
				<909000 40>,
				<899000 43>,
				<889000 45>,
				<879000 48>,
				<869000 51>,
				<859000 54>,
				<849000 56>,
				<839000 59>,
				<829000 62>,
				<819000 65>,
				<809000 68>,
				<799000 70>,
				<789000 73>,
				<779000 76>,
				<769000 79>,
				<759000 81>,
				<749000 84>,
				<739000 87>,
				<729000 89>,
				<719000 92>,
				<709000 95>,
				<699000 98>,
				<689000 100>;
	};
};

&pwm_ef {
	status = "okay";
	pinctrl-0 = <&pwm_e_pins1>;
	pinctrl-names = "default";
};

&pwm_ij {
	status = "okay";
};

&uart_b {
	status = "okay";
};

&ir {
	status = "okay";
	pinctrl-0 = <&remote_pins>;
	pinctrl-names = "default";
};

&sdio {
	pinctrl-0 = <&sdio_pins>;
	pinctrl-1 = <&sdio_clk_gate_pins>;
	pinctrl-names = "default", "clk-gate";
	#address-cells = <1>;
	#size-cells = <0>;
	bus-width = <4>;
	cap-sd-highspeed;
	sd-uhs-sdr50;
	sd-uhs-sdr104;
	max-frequency = <200000000>;
	non-removable;
	disable-wp;
	no-sd;
	no-mmc;
	vmmc-supply = <&vddao_3v3>;
	vqmmc-supply = <&vddio_ao1v8>;
};

&sd {
	status = "okay";
	pinctrl-0 = <&sdcard_pins>;
	pinctrl-1 = <&sdcard_clk_gate_pins>;
	pinctrl-names = "default", "clk-gate";
	bus-width = <4>;
	cap-sd-highspeed;
	max-frequency = <200000000>;
	disable-wp;

	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
	vmmc-supply = <&vddao_3v3>;
	vqmmc-supply = <&vddao_3v3>;
};

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

	pinctrl-0 = <&nand_pins>;
	pinctrl-names = "default";

	nand@0 {
		reg = <0>;
		#address-cells = <1>;
		#size-cells = <1>;

		nand-on-flash-bbt;

		partition@0 {
			label = "boot";
			reg = <0x0 0x00200000>;
		};
		partition@200000 {
			label = "env";
			reg = <0x00200000 0x00400000>;
		};
		partition@600000 {
			label = "system";
			reg = <0x00600000 0x00a00000>;
		};
		partition@1000000 {
			label = "rootfs";
			reg = <0x01000000 0x03000000>;
		};
		partition@4000000 {
			label = "media";
			reg = <0x04000000 0x8000000>;
		};
	};
};

&spicc0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spicc0_pins_x>;
	cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
};

&ethmac {
	status = "okay";
	phy-handle = <&internal_ephy>;
	phy-mode = "rmii";
};