Commit a9d21d15 authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'actions-arm64-dt-for-v5.5' of...

Merge tag 'actions-arm64-dt-for-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mani/linux-actions into arm/dt

Actions Semi ARM64 changes for v5.5:

Most of the basic infrastructure is completed for the ARM64 S900 SoC.
It can now boot a distro from eMMC/uSD with mainline kernel. Below are
the changes for this cycle (only S900):

- Added MMC controller support for S900 SoC. There are 4 controllers in
  this SoC, each capable of accessing MMC cards as well as SDIO.
- Added onboard eMMC and uSD support for 96Boards Bubblegum96 board based
  on S900. Since the MMC driver is not capable of supporting SDIO currently,
  it is not enabled for now. And with the absence of PMIC support, fixed
  regulators are used to model the power supply.

* tag 'actions-arm64-dt-for-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mani/linux-actions:
  arm64: dts: actions: Add uSD and eMMC support for Bubblegum96
  arm64: dts: actions: Add MMC controller support for S900

Link: https://lore.kernel.org/r/20191022145012.GB3601@Mani-XPS-13-9360


Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents bae92f33 7d578b7d
Loading
Loading
Loading
Loading
+62 −0
Original line number Diff line number Diff line
@@ -12,6 +12,9 @@
	model = "Bubblegum-96";

	aliases {
		mmc0 = &mmc0;
		mmc1 = &mmc1;
		mmc2 = &mmc2;
		serial5 = &uart5;
	};

@@ -23,6 +26,24 @@
		device_type = "memory";
		reg = <0x0 0x0 0x0 0x80000000>;
	};

	/* Fixed regulator used in the absence of PMIC */
	vcc_3v1: vcc-3v1 {
		compatible = "regulator-fixed";
		regulator-name = "fixed-3.1V";
		regulator-min-microvolt = <3100000>;
		regulator-max-microvolt = <3100000>;
		regulator-always-on;
	};

	/* Fixed regulator used in the absence of PMIC */
	sd_vcc: sd-vcc {
		compatible = "regulator-fixed";
		regulator-name = "fixed-3.1V";
		regulator-min-microvolt = <3100000>;
		regulator-max-microvolt = <3100000>;
		regulator-always-on;
	};
};

&i2c0 {
@@ -241,6 +262,47 @@
			bias-pull-up;
		};
	};

	mmc0_default: mmc0_default {
		pinmux {
			groups = "sd0_d0_mfp", "sd0_d1_mfp", "sd0_d2_d3_mfp",
				 "sd0_cmd_mfp", "sd0_clk_mfp";
			function = "sd0";
		};
	};

	mmc2_default: mmc2_default {
		pinmux {
			groups = "nand0_d0_ceb3_mfp";
			function = "sd2";
		};
	};
};

/* uSD */
&mmc0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&mmc0_default>;
	no-sdio;
	no-mmc;
	no-1-8-v;
	cd-gpios = <&pinctrl 120 GPIO_ACTIVE_LOW>;
	bus-width = <4>;
	vmmc-supply = <&sd_vcc>;
	vqmmc-supply = <&sd_vcc>;
};

/* eMMC */
&mmc2 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&mmc2_default>;
	no-sdio;
	no-sd;
	non-removable;
	bus-width = <8>;
	vmmc-supply = <&vcc_3v1>;
};

&timer {
+45 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
 */

#include <dt-bindings/clock/actions,s900-cmu.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/actions,s900-reset.h>

@@ -284,5 +285,49 @@
			dma-requests = <46>;
			clocks = <&cmu CLK_DMAC>;
		};

		mmc0: mmc@e0330000 {
			compatible = "actions,owl-mmc";
			reg = <0x0 0xe0330000 0x0 0x4000>;
			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cmu CLK_SD0>;
			resets = <&cmu RESET_SD0>;
			dmas = <&dma 2>;
			dma-names = "mmc";
			status = "disabled";
		};

		mmc1: mmc@e0334000 {
			compatible = "actions,owl-mmc";
			reg = <0x0 0xe0334000 0x0 0x4000>;
			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cmu CLK_SD1>;
			resets = <&cmu RESET_SD1>;
			dmas = <&dma 3>;
			dma-names = "mmc";
			status = "disabled";
		};

		mmc2: mmc@e0338000 {
			compatible = "actions,owl-mmc";
			reg = <0x0 0xe0338000 0x0 0x4000>;
			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cmu CLK_SD2>;
			resets = <&cmu RESET_SD2>;
			dmas = <&dma 4>;
			dma-names = "mmc";
			status = "disabled";
		};

		mmc3: mmc@e033c000 {
			compatible = "actions,owl-mmc";
			reg = <0x0 0xe033c000 0x0 0x4000>;
			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&cmu CLK_SD3>;
			resets = <&cmu RESET_SD3>;
			dmas = <&dma 46>;
			dma-names = "mmc";
			status = "disabled";
		};
	};
};