blob: b259ff234ef65cc7b99445b7e577218e1eb55f51 [file] [log] [blame]
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Copyright (C) 2018 Synaptics Incorporated
*
* Author: Jisheng Zhang <jszhang@kernel.org>
*/
/dts-v1/;
/memreserve/ 0x1ff00000 0x00100000;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "as370.dtsi"
/ {
model = "Synaptics AS370 RDK";
compatible = "syna,as370-rdk", "syna,as370";
aliases {
i2c0 = &i2c0;
i2c1 = &i2c1;
};
cpus {
cpu@0 {
cpu0-supply = <&vcore>;
};
};
chosen {
bootargs = "console=ttyS0,115200 root=/dev/mtdblock7 rootfstype=squashfs";
};
memory {
device_type = "memory";
reg = <0 0x01000000 0 0x1f000000>;
};
ion {
compatible = "syna,ion-berlin-heaps";
pool-num = <1>;
reg-names = "NonSecure";
reg = <0 0x1ff00000 0 0x100000>;
attributes-num-per-pool = <2>;
pool-attributes = <0x00000102 0x00000F36>;
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
vmmc_sdio0: vmmc_sdio0 {
compatible = "regulator-fixed";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vmmc_sdio0";
enable-active-high;
regulator-boot-on;
gpio = <&portb 31 GPIO_ACTIVE_HIGH>;
};
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&gpio_keys_pmux>;
pinctrl-names = "default";
factory_reset {
wakeup-source;
label = "GPIO Key Factory Reset";
gpios = <&portb 30 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&adc {
status = "okay";
syna,adc-vref = <1800>;
};
&pinctrl {
gpio_keys_pmux: gpio_keys_pmux {
groups = "SD0_CDn";
function = "gpio";
};
i2c0_pmux: i2c0-pmux {
groups = "TW0_SCL", "TW0_SDA";
function = "tw0";
};
i2c1_pmux: i2c1-pmux {
groups = "TW1_SCL", "TW1_SDA";
function = "tw1";
};
nand_pmux: nand-pmux {
groups = "NAND_IO0", "NAND_IO1", "NAND_IO2", "NAND_IO3", "NAND_IO4", "NAND_IO5", "NAND_IO6", "NAND_IO7", "NAND_ALE", "NAND_CLE", "NAND_WEn", "NAND_REn", "NAND_WPn", "NAND_CEn", "NAND_RDY";
function = "nand";
};
pwm0_pmux: pwm0-pmux {
groups = "PWM0", "PWM1";
function = "pwm";
};
sd0_pmux: sd0-pmux {
groups = "SD0_CLK", "SD0_DAT0", "SD0_DAT1", "SD0_DAT2", "SD0_DAT3", "SD0_CMD";
function = "sd0";
};
sd0_gpio_pmux: sd0_gpio-pmux {
groups = "SD0_WP";
function = "gpio";
};
i2s1_pmux: i2s1-pmux {
groups = "I2S1_BCLKIO", "I2S1_LRCKIO", "I2S1_DO0", "I2S1_MCLK";
function = "i2s1";
};
i2s2_pmux: i2s2-pmux {
groups = "I2S2_BCLKIO", "I2S2_LRCKIO", "I2S2_DI0";
function = "i2s2";
};
spdifo_pmux: spdifo-pmux {
groups = "I2S1_DO3";
function = "spdifo";
};
pdm_pmux: pdm-pmux {
groups = "PDM_CLKO", "PDM_DI0", "PDM_DI1";
function = "pdm";
};
i2s3_pmux: i2s3-pmux {
groups = "I2S3_DI", "I2S3_DO", "I2S3_BCLKIO", "I2S3_LRCKIO";
function = "i2s3";
};
mute_pmux: mute-pmux {
groups = "I2S2_DI2";
function = "gpio";
};
};
&i2c0 {
status = "okay";
pinctrl-0 = <&i2c0_pmux>;
pinctrl-names = "default";
tas2770: tas2770@41 {
#sound-dai-cells = <0>;
compatible = "ti,tas2770";
reg = <0x41>;
ti,asi-format = <0>;
ti,reset-gpio = <&porta 17 GPIO_ACTIVE_HIGH>;
ti,left-slot = <0>;
ti,right-slot = <1>;
ti,imon-slot-no = <0>;
ti,vmon-slot-no = <4>;
};
vcore: regulator@00 {
compatible = "silergy,sy8824";
regulator-name = "vcore";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1150000>;
regulator-max-step-microvolt = <12500>;
regulator-always-on;
regulator-boot-on;
reg = <0x66>;
};
};
&i2c1 {
status = "okay";
pinctrl-0 = <&i2c1_pmux>;
pinctrl-names = "default";
};
&pwm0 {
status = "okay";
pinctrl-0 = <&pwm0_pmux>;
pinctrl-names = "default";
};
&sdhci0 {
status = "okay";
broken-cd;
non-removable;
vmmc-supply = <&vmmc_sdio0>;
pinctrl-0 = <&sd0_pmux>, <&sd0_gpio_pmux>;
pinctrl-names = "default";
};
&uart0 {
status = "okay";
};
&usb_phy0 {
status = "okay";
};
&usb0 {
dr_mode = "peripheral";
status = "okay";
};
&watchdog0 {
status = "okay";
};
&nand0 {
status = "okay";
pinctrl-0 = <&nand_pmux>;
pinctrl-names = "default";
nand-ecc-step-size = <2048>;
nand-ecc-strength = <48>;
zos-end = <0x240000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition_block0 {
label = "block0";
reg = <0x00000 0x40000>; /* 256 KiB */
read-only;
};
partition_prebootloader {
label = "prebootloader";
reg = <0x040000 0x200000>; /* 2 MiB */
read-only;
};
partition_tz {
label = "TZ";
reg = <0x240000 0x800000>; /* 8 MiB */
read-only;
};
partition_tz_b {
label = "TZ-B";
reg = <0xa40000 0x800000>; /* 8 MiB */
read-only;
};
partition_postbootloader {
label = "postbootloader";
reg = <0x1240000 0x100000>; /* 1 MiB */
read-only;
};
partition_postbootloader_b {
label = "postbootloader-B";
reg = <0x1340000 0x100000>; /* 1 MiB */
read-only;
};
partition_kernel {
label = "kernel";
reg = <0x1440000 0xa00000>; /* 10 MiB */
read-only;
};
partition_rootfs {
label = "rootfs";
reg = <0x1e40000 0xb400000>; /* 180 MiB */
read-only;
};
partition_cache {
label = "cache";
reg = <0xd240000 0x118c0000>; /* 287,488 KiB */
};
partition_recovery {
label = "recovery";
reg = <0x1eb00000 0xf00000>; /* 15 MiB */
};
partition_fts {
label = "fts";
reg = <0x1fa00000 0x100000>; /* 1 MiB */
};
partition_factory_store {
label = "factory_store";
reg = <0x1fb00000 0x300000>; /* 3 MiB */
};
partition_bbt {
label = "bbt";
reg = <0x1fe00000 0x200000>; /* 2 MiB */
read-only;
};
};
};
&as370_pdmi0 {
status = "okay";
pinctrl-0 = <&pdm_pmux>;
pinctrl-names = "default";
max-ch-inuse = <3>;
};
&as370_pdmi1 {
status = "okay";
pinctrl-0 = <&pdm_pmux>;
pinctrl-names = "default";
};
&as370_mic1_0 {
status = "okay";
pinctrl-0 = <&i2s2_pmux>;
pinctrl-names = "default";
};
&as370_mic2 {
status = "okay";
pinctrl-0 = <&i2s3_pmux>;
pinctrl-names = "default";
};
&as370_outdai {
status = "okay";
pinctrl-0 = <&i2s1_pmux>, <&spdifo_pmux>;
pinctrl-names = "default";
};
&as370_sec {
status = "okay";
pinctrl-0 = <&i2s3_pmux>;
pinctrl-names = "default";
};
&as370_pcm {
status = "okay";
};
&as370_asoc {
status = "okay";
pinctrl-0 = <&mute_pmux>;
pinctrl-names = "default";
mute-gpios = <&porta 11 GPIO_ACTIVE_HIGH>;
dummy_pdmi0: dummy-pdmi0 {
status = "okay";
stream-name = "dummy-pdmi0";
link-name = "dummy-pdmi0";
cpu-node = <&as370_pdmi0>;
codec-name = "snd-soc-dummy";
codec-dai-name = "snd-soc-dummy-dai";
platform-node = <&as370_pcm>;
};
outdai_tas2770: outdai-tas2770 {
status = "okay";
stream-name = "outdai-tas2770";
link-name = "outdai-tas2770";
cpu-node = <&as370_outdai>;
codec-node = <&tas2770>;
codec-dai-name = "tas2770 ASI1";
platform-node = <&as370_pcm>;
format = "i2s";
};
dummy_pdmi1: dummy-pdmi1 {
status = "okay";
stream-name = "dummy-pdmi1";
link-name = "dummy-pdmi1";
cpu-node = <&as370_pdmi1>;
codec-name = "snd-soc-dummy";
codec-dai-name = "snd-soc-dummy-dai";
platform-node = <&as370_pcm>;
};
tas2770_mic1: tas2770-mic1 {
status = "okay";
stream-name = "tas2770-mic1";
link-name = "tas2770-mic1";
cpu-node = <&as370_mic1_0>;
codec-node = <&tas2770>;
codec-dai-name = "tas2770 ASI1";
platform-node = <&as370_pcm>;
format = "i2s";
};
};
&nna {
status = "okay";
};
&aviodrv {
status = "okay";
};