// SPDX-License-Identifier: GPL-2.0
/*
 * Reference Device Tree Source for the R-Car M1A (R8A77781) Bock-W board
 *
 * Copyright (C) 2013  Renesas Solutions Corp.
 * Copyright (C) 2013  Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
 *
 * based on r8a7779
 *
 * Copyright (C) 2013 Renesas Solutions Corp.
 * Copyright (C) 2013 Simon Horman
 */

/dts-v1/;
#include "r8a7778.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "bockw";
	compatible = "renesas,bockw", "renesas,r8a7778";

	aliases {
		serial0 = &scif0;
	};

	chosen {
		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
		stdout-path = "serial0:115200n8";
	};

	memory@60000000 {
		device_type = "memory";
		reg = <0x60000000 0x10000000>;
	};

	fixedregulator3v3: regulator-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "fixed-3.3V";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		regulator-always-on;
	};

	sound {
		compatible = "simple-audio-card";

		simple-audio-card,format = "left_j";
		simple-audio-card,bitclock-master = <&sndcodec>;
		simple-audio-card,frame-master = <&sndcodec>;

		sndcpu: simple-audio-card,cpu {
			sound-dai = <&rcar_sound>;
		};

		sndcodec: simple-audio-card,codec {
			sound-dai = <&ak4643>;
			system-clock-frequency = <11289600>;
		};
	};
};

&bsc {
	ethernet@18300000 {
		compatible = "smsc,lan89218", "smsc,lan9115";
		reg = <0x18300000 0x1000>;

		phy-mode = "mii";
		interrupt-parent = <&irqpin>;
		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
		reg-io-width = <4>;
		vddvario-supply = <&fixedregulator3v3>;
		vdd33a-supply = <&fixedregulator3v3>;
	};
};

&extal_clk {
	clock-frequency = <33333333>;
};

&i2c0 {
	status = "okay";

	ak4643: codec@12 {
		compatible = "asahi-kasei,ak4643";
		#sound-dai-cells = <0>;
		reg = <0x12>;
	};

	camera@41 {
		compatible = "oki,ml86v7667";
		reg = <0x41>;
	};

	camera@43 {
		compatible = "oki,ml86v7667";
		reg = <0x43>;
	};

	rx8581: rtc@51 {
		compatible = "epson,rx8581";
		reg = <0x51>;
	};
};

&mmcif {
	pinctrl-0 = <&mmc_pins>;
	pinctrl-names = "default";

	vmmc-supply = <&fixedregulator3v3>;
	bus-width = <8>;
	broken-cd;
	status = "okay";
};

&irqpin {
	status = "okay";
};

&tmu0 {
	status = "okay";
};

&pfc {
	pinctrl-0 = <&scif_clk_pins>;
	pinctrl-names = "default";

	scif0_pins: scif0 {
		groups = "scif0_data_a", "scif0_ctrl";
		function = "scif0";
	};

	scif_clk_pins: scif_clk {
		groups = "scif_clk";
		function = "scif_clk";
	};

	mmc_pins: mmc {
		groups = "mmc_data8", "mmc_ctrl";
		function = "mmc";
	};

	sdhi0_pins: sd0 {
		groups = "sdhi0_data4", "sdhi0_ctrl";
		function = "sdhi0";
	};
	sdhi0_pup_pins: sd0_pup {
		groups = "sdhi0_cd", "sdhi0_wp";
		function = "sdhi0";
		bias-pull-up;
	};

	hspi0_pins: hspi0 {
		groups = "hspi0_a";
		function = "hspi0";
	};

	usb0_pins: usb0 {
		groups = "usb0";
		function = "usb0";
	};

	usb1_pins: usb1 {
		groups = "usb1";
		function = "usb1";
	};

	vin0_pins: vin0 {
		groups = "vin0_data8", "vin0_clk";
		function = "vin0";
	};

	vin1_pins: vin1 {
		groups = "vin1_data8", "vin1_clk";
		function = "vin1";
	};
};

&rcar_sound {
	/* Single DAI */
	#sound-dai-cells = <0>;
};

&sdhi0 {
	pinctrl-0 = <&sdhi0_pins>, <&sdhi0_pup_pins>;
	pinctrl-names = "default";

	vmmc-supply = <&fixedregulator3v3>;
	bus-width = <4>;
	status = "okay";
	wp-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
};

&hspi0 {
	pinctrl-0 = <&hspi0_pins>;
	pinctrl-names = "default";
	status = "okay";

	flash: flash@0 {
		compatible = "spansion,s25fl008k", "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <104000000>;
		m25p,fast-read;

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

			partition@0 {
				label = "data(spi)";
				reg = <0x00000000 0x00100000>;
			};
		};
	};
};

&scif0 {
	pinctrl-0 = <&scif0_pins>;
	pinctrl-names = "default";

	uart-has-rtscts;
	status = "okay";
};

&scif_clk {
	clock-frequency = <14745600>;
};
