linux/arch/powerpc/boot/dts/gamecube.dts

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * arch/powerpc/boot/dts/gamecube.dts
 *
 * Nintendo GameCube platform device tree source
 * Copyright (C) 2007-2009 The GameCube Linux Team
 * Copyright (C) 2007,2008,2009 Albert Herranz
 */

/dts-v1/;

/ {
	model = "nintendo,gamecube";
	compatible = "nintendo,gamecube";
	#address-cells = <1>;
	#size-cells = <1>;

	chosen {
		bootargs = "root=/dev/gcnsda2 rootwait udbg-immortal";
	};

	memory {
		device_type = "memory";
		reg = <0x00000000 0x01800000>;
	};

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

		PowerPC,gekko@0 {
			device_type = "cpu";
			reg = <0>;
			clock-frequency = <486000000>; /* 486MHz */
			bus-frequency = <162000000>; /* 162MHz core-to-bus 3x */
			timebase-frequency = <40500000>; /* 162MHz / 4 */
			i-cache-line-size = <32>;
			d-cache-line-size = <32>;
			i-cache-size = <32768>;
			d-cache-size = <32768>;
		};
	};

	/* devices contained int the flipper chipset */
	flipper {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "nintendo,flipper";
		ranges = <0x0c000000 0x0c000000 0x00010000>;
		interrupt-parent = <&PIC>;

		video@c002000 {
			compatible = "nintendo,flipper-vi";
			reg = <0x0c002000 0x100>;
			interrupts = <8>;
		};

		processor-interface@c003000 {
			compatible = "nintendo,flipper-pi";
			reg = <0x0c003000 0x100>;

			PIC: pic {
				#interrupt-cells = <1>;
				compatible = "nintendo,flipper-pic";
				interrupt-controller;
			};
		};

		dsp@c005000 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "nintendo,flipper-dsp";
			reg = <0x0c005000 0x200>;
			interrupts = <6>;

			memory@0 {
				compatible = "nintendo,flipper-aram";
				reg = <0 0x1000000>;	/* 16MB */
			};
		};

		disk@c006000 {
			compatible = "nintendo,flipper-di";
			reg = <0x0c006000 0x40>;
			interrupts = <2>;
		};

		audio@c006c00 {
			compatible = "nintendo,flipper-ai";
			reg = <0x0c006c00 0x20>;
			interrupts = <6>;
		};

		gamepad-controller@c006400 {
			compatible = "nintendo,flipper-si";
			reg = <0x0c006400 0x100>;
			interrupts = <3>;
		};

		/* External Interface bus */
		exi@c006800 {
			compatible = "nintendo,flipper-exi";
			reg = <0x0c006800 0x40>;
			virtual-reg = <0x0c006800>;
			interrupts = <4>;
		};
        };
};