| // SPDX-License-Identifier: (GPL-2.0 OR MIT) |
| /* |
| * Copyright (C) 2018 Synaptics Incorporated |
| * |
| * Author: Jisheng Zhang <jszhang@kernel.org> |
| */ |
| |
| /dts-v1/; |
| |
| #include <dt-bindings/gpio/gpio.h> |
| |
| #include "as370.dtsi" |
| |
| / { |
| model = "Synaptics AS370 Valens"; |
| compatible = "syna,as370-valens", "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>; |
| }; |
| |
| reserved-memory { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| ranges; |
| |
| ramoops@0x1FF00000 { |
| compatible = "ramoops"; |
| reg = <0x0 0x1FF00000 0x0 0x00100000>; |
| record-size = <0x8000>; |
| console-size = <0x8000>; |
| ftrace-size = <0x0>; |
| pmsg-size = <0x8000>; |
| }; |
| |
| }; |
| |
| 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>; |
| }; |
| }; |
| |
| thermal-sensor-ch0 { |
| compatible = "generic-adc-thermal"; |
| #thermal-sensor-cells = <0>; |
| io-channels = <&adc 0>; |
| io-channel-names = "sensor-channel"; |
| temperature-lookup-table = < (-48787) 1793 |
| (-40399) 1786 |
| (-35174) 1779 |
| (-31306) 1772 |
| (-28205) 1765 |
| (-25602) 1758 |
| (-23348) 1751 |
| (-21354) 1744 |
| (-19561) 1737 |
| (-17929) 1730 |
| (-16428) 1723 |
| (-15037) 1716 |
| (-13739) 1709 |
| (-12520) 1702 |
| (-11370) 1695 |
| (-10280) 1688 |
| (-9244) 1680 |
| (-8255) 1673 |
| (-7310) 1666 |
| (-6402) 1659 |
| (-5530) 1652 |
| (-4689) 1645 |
| (-3877) 1638 |
| (-3091) 1631 |
| (-2330) 1624 |
| (-1592) 1617 |
| (-875) 1610 |
| (-177) 1603 |
| 503 1596 |
| 1166 1589 |
| 1813 1582 |
| 2445 1575 |
| 3064 1568 |
| 3669 1561 |
| 4262 1554 |
| 4843 1547 |
| 5414 1540 |
| 5974 1533 |
| 6524 1526 |
| 7065 1519 |
| 7596 1512 |
| 8120 1505 |
| 8635 1498 |
| 9143 1491 |
| 9644 1484 |
| 10137 1477 |
| 10624 1470 |
| 11105 1463 |
| 11579 1455 |
| 12048 1448 |
| 12511 1441 |
| 12969 1434 |
| 13422 1427 |
| 13870 1420 |
| 14313 1413 |
| 14752 1406 |
| 15187 1399 |
| 15617 1392 |
| 16044 1385 |
| 16466 1378 |
| 16886 1371 |
| 17301 1364 |
| 17713 1357 |
| 18122 1350 |
| 18528 1343 |
| 18931 1336 |
| 19331 1329 |
| 19728 1322 |
| 20123 1315 |
| 20515 1308 |
| 20905 1301 |
| 21292 1294 |
| 21677 1287 |
| 22060 1280 |
| 22441 1273 |
| 22820 1266 |
| 23196 1259 |
| 23572 1252 |
| 23945 1245 |
| 24316 1238 |
| 24687 1230 |
| 25055 1223 |
| 25422 1216 |
| 25788 1209 |
| 26152 1202 |
| 26515 1195 |
| 26877 1188 |
| 27238 1181 |
| 27597 1174 |
| 27956 1167 |
| 28314 1160 |
| 28670 1153 |
| 29026 1146 |
| 29381 1139 |
| 29735 1132 |
| 30089 1125 |
| 30442 1118 |
| 30794 1111 |
| 31146 1104 |
| 31497 1097 |
| 31848 1090 |
| 32199 1083 |
| 32549 1076 |
| 32899 1069 |
| 33248 1062 |
| 33597 1055 |
| 33947 1048 |
| 34296 1041 |
| 34645 1034 |
| 34993 1027 |
| 35342 1020 |
| 35691 1013 |
| 36040 1005 |
| 36390 998 |
| 36739 991 |
| 37089 984 |
| 37438 977 |
| 37789 970 |
| 38139 963 |
| 38490 956 |
| 38842 949 |
| 39193 942 |
| 39546 935 |
| 39899 928 |
| 40252 921 |
| 40607 914 |
| 40962 907 |
| 41318 900 |
| 41674 893 |
| 42032 886 |
| 42390 879 |
| 42749 872 |
| 43110 865 |
| 43471 858 |
| 43833 851 |
| 44197 844 |
| 44562 837 |
| 44928 830 |
| 45295 823 |
| 45664 816 |
| 46034 809 |
| 46405 802 |
| 46778 795 |
| 47153 788 |
| 47529 780 |
| 47907 773 |
| 48287 766 |
| 48668 759 |
| 49051 752 |
| 49437 745 |
| 49824 738 |
| 50213 731 |
| 50604 724 |
| 50998 717 |
| 51394 710 |
| 51792 703 |
| 52193 696 |
| 52596 689 |
| 53002 682 |
| 53410 675 |
| 53821 668 |
| 54235 661 |
| 54652 654 |
| 55072 647 |
| 55495 640 |
| 55921 633 |
| 56350 626 |
| 56783 619 |
| 57219 612 |
| 57659 605 |
| 58103 598 |
| 58550 591 |
| 59002 584 |
| 59457 577 |
| 59917 570 |
| 60381 563 |
| 60849 555 |
| 61323 548 |
| 61801 541 |
| 62283 534 |
| 62771 527 |
| 63265 520 |
| 63763 513 |
| 64268 506 |
| 64778 499 |
| 65294 492 |
| 65816 485 |
| 66345 478 |
| 66880 471 |
| 67423 464 |
| 67972 457 |
| 68529 450 |
| 69094 443 |
| 69666 436 |
| 70247 429 |
| 70836 422 |
| 71435 415 |
| 72042 408 |
| 72660 401 |
| 73287 394 |
| 73925 387 |
| 74573 380 |
| 75233 373 |
| 75905 366 |
| 76589 359 |
| 77286 352 |
| 77996 345 |
| 78721 338 |
| 79460 330 |
| 80215 323 |
| 80986 316 |
| 81775 309 |
| 82581 302 |
| 83406 295 |
| 84251 288 |
| 85117 281 |
| 86005 274 |
| 86916 267 |
| 87852 260 |
| 88815 253 |
| 89806 246 |
| 90826 239 |
| 91878 232 |
| 92964 225 |
| 94086 218 |
| 95247 211 |
| 96450 204 |
| 97698 197 |
| 98994 190 |
| 100343 183 |
| 101749 176 |
| 103218 169 |
| 104755 162 |
| 106366 155 |
| 108060 148 |
| 109845 141 |
| 111732 134 |
| 113733 127 |
| 115862 120 |
| 118136 113 |
| 120576 105 |
| 123207 98 |
| 126061 91 |
| 129177 84 |
| 132606 77 |
| 136414 70 |
| 140690 63 |
| 145557 56 |
| 151193 49 |
| 157862 42 |
| 165993 35 |
| 176330 28 |
| 190340 21 |
| 211548 14 |
| 252503 7>; |
| }; |
| |
| dummy_label { |
| dummy = <&vcore1>; |
| dummy2 = <&vcore2>; |
| }; |
| }; |
| |
| &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"; |
| }; |
| |
| 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"; |
| function = "i2s1"; |
| }; |
| |
| i2s2_pmux: i2s2-pmux { |
| groups = "I2S2_DI0"; |
| function = "i2s2"; |
| }; |
| |
| 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>; |
| }; |
| |
| max98373: max98373@31 { |
| compatible = "maxim,max98373"; |
| reg = <0x31>; |
| maxim,reset-gpio = <&porta 17 GPIO_ACTIVE_HIGH>; |
| maxim,imon-slot-no = <1>; |
| maxim,vmon-slot-no = <0>; |
| maxim,interleave-mode = <0>; |
| }; |
| |
| vcore: regulator@00 { |
| status = "okay"; |
| 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>; |
| }; |
| |
| lp5018: lp5018@29 { |
| compatible = "ti,led-lp5018"; |
| reg = <0x29>; |
| num_leds = <6>; |
| //starting LED # of each set |
| start_num = <0 3 6 9 12 15>; |
| reset_gpio = <&porta 4 GPIO_ACTIVE_LOW>; |
| default_current_limit_percent = <25>; |
| }; |
| |
| aw210xx_led: aw210xx_led@21 { |
| compatible = "awinic,aw210xx_led"; |
| reg = <0x21>; |
| enable-gpio = <&porta 4 GPIO_ACTIVE_LOW>; |
| global_current = <0xff>; |
| osc_clk = <1>; |
| br_res = <4>; |
| pde = <1>; |
| status = "okay"; |
| aw210xx,led { |
| aw210xx,name = "aw210xx_led"; |
| aw210xx,imax = <1>; |
| aw210xx,brightness = <128>; |
| aw210xx,max_brightness = <255>; |
| aw210xx,num_leds = <6>; |
| aw210xx,default_current_limit_percent = <25>; |
| }; |
| }; |
| |
| cy8cmbr3108: cy8cmbr3108@37 { |
| compatible = "cy8cmbr3108"; |
| reg = <0x37>; |
| num_sensors = <6>; |
| sensor_event_map_idx = <0>; |
| reg_val_map_idx = <0>; |
| touch_gpio = <&porta 5 GPIO_ACTIVE_LOW>; |
| reset_gpio = <&porta 4 GPIO_ACTIVE_LOW>; |
| }; |
| |
| vcore1: regulator@01 { |
| status = "disabled"; |
| compatible = "silergy,sy20276"; |
| regulator-name = "vcore"; |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <1150000>; |
| regulator-max-step-microvolt = <10000>; |
| regulator-always-on; |
| regulator-boot-on; |
| reg = <0x60>; |
| }; |
| |
| vcore2: regulator@02 { |
| status = "disabled"; |
| compatible = "silergy,sy20278"; |
| regulator-name = "vcore"; |
| regulator-min-microvolt = <800000>; |
| regulator-max-microvolt = <1050000>; |
| regulator-max-step-microvolt = <12500>; |
| regulator-always-on; |
| regulator-boot-on; |
| reg = <0x61>; |
| }; |
| }; |
| |
| &i2c1 { |
| status = "okay"; |
| pinctrl-0 = <&i2c1_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 = "host"; |
| 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>; |
| rdlt = <0x3>; /* rise data latch time, 10ns */ |
| fdlt = <0x3>; /* fall data latch time, 10ns */ |
| }; |
| |
| &as370_pdmi1 { |
| status = "okay"; |
| pinctrl-0 = <&pdm_pmux>; |
| pinctrl-names = "default"; |
| rdlt = <0x3>; /* rise data latch time, 10ns */ |
| fdlt = <0x3>; /* fall data latch time, 10ns */ |
| }; |
| |
| &as370_mic1_0 { |
| status = "okay"; |
| pinctrl-0 = <&i2s2_pmux>; |
| pinctrl-names = "default"; |
| usepriclk; |
| }; |
| |
| &as370_mic2 { |
| status = "okay"; |
| pinctrl-0 = <&i2s3_pmux>; |
| pinctrl-names = "default"; |
| pcm; |
| invfs; |
| jfied; |
| }; |
| |
| &as370_outdai { |
| status = "okay"; |
| pinctrl-0 = <&i2s1_pmux>; |
| pinctrl-names = "default"; |
| interrupt-names = "pri"; |
| keep-clk; |
| tdm; |
| }; |
| |
| &as370_sec { |
| status = "okay"; |
| pinctrl-0 = <&i2s3_pmux>; |
| pinctrl-names = "default"; |
| slave; |
| pcm; |
| r_jfy; |
| invbclk; |
| invfs; |
| jfied; |
| }; |
| |
| &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"; |
| codeca; |
| }; |
| |
| outdai_max98373: outdai-max98373 { |
| status = "okay"; |
| stream-name = "outdai-max98373"; |
| link-name = "outdai-max98373"; |
| cpu-node = <&as370_outdai>; |
| codec-node = <&max98373>; |
| codec-dai-name = "max98373-aif1"; |
| platform-node = <&as370_pcm>; |
| format = "i2s"; |
| codecb; |
| }; |
| |
| 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>; |
| }; |
| |
| max98373_mic1: max98373-mic1 { |
| status = "okay"; |
| stream-name = "max98373-mic1"; |
| link-name = "max98373-mic1"; |
| cpu-node = <&as370_mic1_0>; |
| codec-node = <&max98373>; |
| codec-dai-name = "max98373-aif1"; |
| platform-node = <&as370_pcm>; |
| format = "i2s"; |
| codecb; |
| }; |
| |
| 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"; |
| codeca; |
| }; |
| |
| dummy_mic2: dummy-mic2 { |
| status = "okay"; |
| stream-name = "dummy-mic2"; |
| link-name = "dummy-mic2"; |
| cpu-node = <&as370_mic2>; |
| codec-name = "snd-soc-dummy"; |
| codec-dai-name = "snd-soc-dummy-dai"; |
| platform-node = <&as370_pcm>; |
| }; |
| |
| sec_dummy: sec_dummy { |
| status = "okay"; |
| stream-name = "sec-dummy"; |
| link-name = "sec-dummy"; |
| cpu-node = <&as370_sec>; |
| codec-name = "snd-soc-dummy"; |
| codec-dai-name = "snd-soc-dummy-dai"; |
| platform-node = <&as370_pcm>; |
| }; |
| }; |
| |
| &nna { |
| status = "okay"; |
| }; |
| |
| &axi_meter { |
| status = "okay"; |
| }; |
| |
| &aviodrv { |
| status = "okay"; |
| }; |