blob: b4feb2fd4141e8759dc99710d41a653b299551a8 [file] [log] [blame]
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Copyright (C) 2018 Synaptics Incorporated
*
* Author: Jisheng Zhang <jszhang@kernel.org>
*/
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "as370.dtsi"
/ {
model = "Synaptics AS370 EVK";
compatible = "syna,as370-evk", "syna,as370";
aliases {
i2c0 = &i2c0;
i2c1 = &i2c1;
};
cpus {
cpu@0 {
cpu0-supply = <&vcore>;
};
};
chosen {
bootargs = "console=ttyS0,115200";
};
memory {
device_type = "memory";
reg = <0 0x01000000 0 0x1f000000>;
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
reg_usb0_vbus: usb0_vbus {
compatible = "regulator-fixed";
regulator-name = "usb0_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&portb 0 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};
adc0-keys {
compatible = "adc-keys";
io-channels = <&adc 0>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>;
poll-interval = <100>;
trigger {
label = "Trigger";
linux,code = <KEY_ASSISTANT>;
press-threshold-microvolt = <1400000>;
};
next {
label = "Next";
linux,code = <KEY_NEXT>;
press-threshold-microvolt = <800000>;
};
};
adc1-keys {
compatible = "adc-keys";
io-channels = <&adc 1>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>;
poll-interval = <100>;
volume-up {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
press-threshold-microvolt = <1400000>;
};
volume-down {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
press-threshold-microvolt = <800000>;
};
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&gpio_keys_pmux>;
pinctrl-names = "default";
mic_mute {
label = "mic mute";
gpios = <&porta 16 GPIO_ACTIVE_LOW>;
linux,code = <KEY_MICMUTE>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&leds_pmux>;
trigger {
label = "trigger_led";
gpios = <&portb 10 GPIO_ACTIVE_HIGH>;
};
};
};
&adc {
status = "okay";
syna,adc-vref = <1800>;
};
&pinctrl {
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";
};
i2s1_pmux: i2s1-pmux {
groups = "I2S1_BCLKIO", "I2S1_LRCKIO", "I2S1_DO0", "I2S1_MCLK";
function = "i2s1";
};
i2s2_pmux: i2s2-pmux {
groups = "I2S2_DI0";
function = "i2s2";
};
pdm_pmux: pdm-pmux {
groups = "PDM_CLKO", "PDM_DI0", "PDM_DI1";
function = "pdm";
};
usb0_gpio_pmux: usb0_gpio-pmux {
groups = "USB0_DRV_VBUS";
function = "gpio";
};
falcon_gpio_pmux: falcon_gpio-pmux {
groups = "I2S1_DO1";
function = "gpio";
};
gpio_keys_pmux: gpio_keys-pmux {
groups = "PDM_DI2";
function = "gpio";
};
mute_pmux: mute-pmux {
groups = "I2S1_DO2";
function = "gpio";
};
leds_pmux: leds-pmux {
groups = "PWM0";
function = "gpio";
};
};
&i2c0 {
status = "okay";
pinctrl-0 = <&i2c0_pmux>;
pinctrl-names = "default";
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";
falcon: cx9000@33 {
pinctrl-0 = <&falcon_gpio_pmux>;
pinctrl-names = "default";
#sound-dai-cells = <0>;
status = "okay";
compatible = "cnxt,cx9000";
reg = <0x33>;
enable-gpios=<&porta 3 GPIO_ACTIVE_HIGH>;
};
};
&uart0 {
status = "okay";
};
&usb_phy0 {
status = "okay";
};
&usb0 {
status = "okay";
pinctrl-0 = <&usb0_gpio_pmux>;
pinctrl-names = "default";
vbus-supply = <&reg_usb0_vbus>;
};
&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 */
};
partition_cache {
label = "cache";
reg = <0xd240000 0x118c0000>; /* 287,488 KiB */
};
partition_recovery {
label = "recovery";
reg = <0x1eb00000 0xd00000>; /* 13 MiB */
};
partition_fts {
label = "fts";
reg = <0x1f800000 0x100000>; /* 1 MiB */
};
partition_factory_store {
label = "factory_store";
reg = <0x1f900000 0x300000>; /* 3 MiB */
};
partition_key_1st {
label = "key_1st";
reg = <0x1fc00000 0x100000>; /* 1MiB */
read-only;
};
partition_key_2nd {
label = "key_2nd";
reg = <0x1fd00000 0x100000>; /* 1MiB */
read-only;
};
partition_bbt {
label = "bbt";
reg = <0x1fe00000 0x200000>; /* 2 MiB */
read-only;
};
};
};
&nna {
status = "okay";
};
&as370_pdmi0 {
status = "okay";
pinctrl-0 = <&pdm_pmux>;
pinctrl-names = "default";
};
&as370_mic1_0 {
status = "okay";
pinctrl-0 = <&i2s2_pmux>;
pinctrl-names = "default";
usepriclk;
};
&as370_outdai {
status = "okay";
pinctrl-0 = <&i2s1_pmux>;
pinctrl-names = "default";
interrupts = <0>;
interrupt-names = "pri";
keep-clk;
};
&as370_pcm {
status = "okay";
};
&as370_asoc {
status = "okay";
pinctrl-0 = <&mute_pmux>;
pinctrl-names = "default";
mute-gpios = <&porta 4 GPIO_ACTIVE_HIGH>;
mute-gpio-output;
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_falcon: outdai-falcon {
status = "okay";
stream-name = "outdai-falcon";
link-name = "outdai-falcon";
format = "i2s";
continuous-clock;
cpu-node = <&as370_outdai>;
codec-node = <&falcon>;
codec-dai-name = "cx9000-amplifier";
platform-node = <&as370_pcm>;
};
dummy_mic0: dummy-mic0 {
status = "okay";
stream-name = "dummy-mic0";
link-name = "dummy-mic0";
format = "i2s";
cpu-node = <&as370_mic1_0>;
codec-name = "snd-soc-dummy";
codec-dai-name = "snd-soc-dummy-dai";
platform-node = <&as370_pcm>;
};
};
&aviodrv {
status = "okay";
};