| // 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 = <®_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"; |
| }; |