From bab1edede4c8396acf4955c6889655ad50b66581 Mon Sep 17 00:00:00 2001 From: Park Ju Hyung Date: Sat, 22 Aug 2015 16:09:56 +0900 Subject: [PATCH] dts: merge missing dts Change-Id: I715b18b2242a5a266f2b68b822adc2143ff770d1 Signed-off-by: Park Ju Hyung --- .../boot/dts/exynos7420-espresso7420_evt0.dts | 1097 +++++++ .../boot/dts/exynos7420-pinctrl_evt0.dtsi | 806 +++++ .../exynos7420-universal7420-ufs_rev00.dts | 1644 ++++++++++ ...xynos7420-universal7420_rev00_battery.dtsi | 182 ++ arch/arm64/boot/dts/exynos7420-v_common.dtsi | 1280 ++++++++ .../boot/dts/exynos7420-vlte_eur_open_00.dts | 436 +++ .../dts/exynos7420-zeroflte_battery_02.dtsi | 360 +++ .../dts/exynos7420-zeroflte_battery_05.dtsi | 370 +++ .../boot/dts/exynos7420-zeroflte_chn_00.dts | 943 ++++++ .../boot/dts/exynos7420-zeroflte_chn_01.dts | 994 ++++++ .../boot/dts/exynos7420-zeroflte_chn_02.dts | 977 ++++++ .../boot/dts/exynos7420-zeroflte_chn_03.dts | 931 ++++++ .../boot/dts/exynos7420-zeroflte_chn_04.dts | 911 ++++++ .../exynos7420-zeroflte_chn_battery_06.dtsi | 350 +++ .../exynos7420-zeroflte_eur_battery_08.dtsi | 351 +++ .../dts/exynos7420-zeroflte_eur_open_00.dts | 734 +++++ .../dts/exynos7420-zeroflte_eur_open_01.dts | 888 ++++++ .../dts/exynos7420-zeroflte_eur_open_02.dts | 887 ++++++ .../dts/exynos7420-zeroflte_eur_open_03.dts | 897 ++++++ .../dts/exynos7420-zeroflte_eur_open_04.dts | 897 ++++++ .../dts/exynos7420-zeroflte_eur_open_05.dts | 898 ++++++ .../boot/dts/exynos7420-zeroflte_gpio_00.dtsi | 380 +++ .../boot/dts/exynos7420-zeroflte_gpio_01.dtsi | 389 +++ .../boot/dts/exynos7420-zeroflte_gpio_02.dtsi | 390 +++ .../boot/dts/exynos7420-zeroflte_gpio_03.dtsi | 390 +++ .../boot/dts/exynos7420-zeroflte_gpio_04.dtsi | 390 +++ .../boot/dts/exynos7420-zeroflte_gpio_05.dtsi | 398 +++ .../dts/exynos7420-zeroflte_gpio_chn_00.dtsi | 387 +++ .../dts/exynos7420-zeroflte_gpio_chn_01.dtsi | 396 +++ .../dts/exynos7420-zeroflte_gpio_chn_02.dtsi | 395 +++ .../dts/exynos7420-zeroflte_gpio_chn_03.dtsi | 410 +++ .../dts/exynos7420-zeroflte_gpio_chn_04.dtsi | 410 +++ .../dts/exynos7420-zeroflte_gpio_jpn_00.dtsi | 377 +++ .../dts/exynos7420-zeroflte_gpio_jpn_01.dtsi | 394 +++ .../dts/exynos7420-zeroflte_gpio_jpn_02.dtsi | 401 +++ .../dts/exynos7420-zeroflte_gpio_jpn_03.dtsi | 406 +++ .../dts/exynos7420-zeroflte_gpio_jpn_04.dtsi | 406 +++ .../dts/exynos7420-zeroflte_gpio_kor_00.dtsi | 333 ++ .../dts/exynos7420-zeroflte_gpio_kor_01.dtsi | 381 +++ .../dts/exynos7420-zeroflte_gpio_kor_02.dtsi | 382 +++ .../dts/exynos7420-zeroflte_gpio_kor_03.dtsi | 382 +++ .../dts/exynos7420-zeroflte_gpio_kor_04.dtsi | 382 +++ .../dts/exynos7420-zeroflte_gpio_kor_05.dtsi | 381 +++ .../dts/exynos7420-zeroflte_gpio_kor_06.dtsi | 380 +++ .../dts/exynos7420-zeroflte_gpio_usa_00.dtsi | 334 ++ .../dts/exynos7420-zeroflte_gpio_usa_01.dtsi | 382 +++ .../dts/exynos7420-zeroflte_gpio_usa_02.dtsi | 383 +++ .../dts/exynos7420-zeroflte_gpio_usa_03.dtsi | 383 +++ .../dts/exynos7420-zeroflte_gpio_usa_04.dtsi | 382 +++ .../exynos7420-zeroflte_gpio_usa_cdma_00.dtsi | 401 +++ .../exynos7420-zeroflte_gpio_usa_cdma_01.dtsi | 400 +++ .../exynos7420-zeroflte_gpio_usa_cdma_02.dtsi | 403 +++ .../boot/dts/exynos7420-zeroflte_jpn_00.dts | 878 ++++++ .../boot/dts/exynos7420-zeroflte_jpn_01.dts | 887 ++++++ .../boot/dts/exynos7420-zeroflte_jpn_02.dts | 893 ++++++ .../boot/dts/exynos7420-zeroflte_jpn_03.dts | 884 ++++++ .../boot/dts/exynos7420-zeroflte_jpn_04.dts | 901 ++++++ .../exynos7420-zeroflte_jpn_battery_04.dtsi | 350 +++ .../boot/dts/exynos7420-zeroflte_kor_00.dts | 722 +++++ .../boot/dts/exynos7420-zeroflte_kor_01.dts | 873 ++++++ .../boot/dts/exynos7420-zeroflte_kor_02.dts | 864 +++++ .../boot/dts/exynos7420-zeroflte_kor_03.dts | 864 +++++ .../boot/dts/exynos7420-zeroflte_kor_04.dts | 870 +++++ .../boot/dts/exynos7420-zeroflte_kor_05.dts | 870 +++++ .../boot/dts/exynos7420-zeroflte_kor_06.dts | 870 +++++ .../boot/dts/exynos7420-zeroflte_usa_00.dts | 771 +++++ .../boot/dts/exynos7420-zeroflte_usa_01.dts | 930 ++++++ .../boot/dts/exynos7420-zeroflte_usa_02.dts | 927 ++++++ .../boot/dts/exynos7420-zeroflte_usa_03.dts | 927 ++++++ .../boot/dts/exynos7420-zeroflte_usa_04.dts | 927 ++++++ .../exynos7420-zeroflte_usa_battery_02.dtsi | 353 +++ .../exynos7420-zeroflte_usa_battery_05.dtsi | 369 +++ .../dts/exynos7420-zeroflte_usa_cdma_00.dts | 982 ++++++ .../dts/exynos7420-zeroflte_usa_cdma_01.dts | 1018 ++++++ .../dts/exynos7420-zeroflte_usa_cdma_02.dts | 1018 ++++++ ...ynos7420-zeroflte_usa_cdma_battery_06.dtsi | 369 +++ .../dts/exynos7420-zerofslte_gpio_jpn_00.dtsi | 386 +++ .../dts/exynos7420-zerofslte_gpio_jpn_03.dtsi | 398 +++ .../boot/dts/exynos7420-zerofslte_jpn_00.dts | 832 +++++ .../boot/dts/exynos7420-zerofslte_jpn_03.dts | 841 +++++ .../boot/dts/exynos7420-zerolte_battery.dtsi | 336 ++ .../dts/exynos7420-zerolte_battery_02.dtsi | 360 +++ .../dts/exynos7420-zerolte_battery_05.dtsi | 369 +++ .../dts/exynos7420-zerolte_battery_06.dtsi | 385 +++ .../boot/dts/exynos7420-zerolte_chn_00.dts | 913 ++++++ .../boot/dts/exynos7420-zerolte_chn_01.dts | 872 ++++++ .../boot/dts/exynos7420-zerolte_chn_02.dts | 873 ++++++ .../exynos7420-zerolte_chn_battery_06.dtsi | 349 +++ .../dts/exynos7420-zerolte_eur_open_00.dts | 701 +++++ .../dts/exynos7420-zerolte_eur_open_01.dts | 687 ++++ .../dts/exynos7420-zerolte_eur_open_02.dts | 797 +++++ .../dts/exynos7420-zerolte_eur_open_03.dts | 823 +++++ .../dts/exynos7420-zerolte_eur_open_04.dts | 846 +++++ .../dts/exynos7420-zerolte_eur_open_05.dts | 846 +++++ .../dts/exynos7420-zerolte_eur_open_06.dts | 845 +++++ .../dts/exynos7420-zerolte_eur_open_07.dts | 845 +++++ .../dts/exynos7420-zerolte_eur_open_08.dts | 846 +++++ .../exynos7420-zerolte_eur_open_ev03_00.dts | 660 ++++ .../exynos7420-zerolte_eur_open_upop_01.dts | 685 ++++ ...nos7420-zerolte_fingerprint-sensor_00.dtsi | 101 + .../boot/dts/exynos7420-zerolte_gpio_00.dtsi | 377 +++ .../boot/dts/exynos7420-zerolte_gpio_01.dtsi | 377 +++ .../boot/dts/exynos7420-zerolte_gpio_02.dtsi | 392 +++ .../boot/dts/exynos7420-zerolte_gpio_03.dtsi | 393 +++ .../boot/dts/exynos7420-zerolte_gpio_04.dtsi | 393 +++ .../boot/dts/exynos7420-zerolte_gpio_05.dtsi | 394 +++ .../boot/dts/exynos7420-zerolte_gpio_06.dtsi | 402 +++ .../boot/dts/exynos7420-zerolte_gpio_07.dtsi | 401 +++ .../boot/dts/exynos7420-zerolte_gpio_08.dtsi | 401 +++ .../dts/exynos7420-zerolte_gpio_chn_00.dtsi | 399 +++ .../dts/exynos7420-zerolte_gpio_chn_01.dtsi | 415 +++ .../dts/exynos7420-zerolte_gpio_chn_02.dtsi | 415 +++ .../dts/exynos7420-zerolte_gpio_ev03_00.dtsi | 377 +++ .../dts/exynos7420-zerolte_gpio_jpn_00.dtsi | 375 +++ .../dts/exynos7420-zerolte_gpio_jpn_01.dtsi | 394 +++ .../dts/exynos7420-zerolte_gpio_jpn_02.dtsi | 401 +++ .../dts/exynos7420-zerolte_gpio_jpn_03.dtsi | 407 +++ .../dts/exynos7420-zerolte_gpio_jpn_04.dtsi | 407 +++ .../dts/exynos7420-zerolte_gpio_kor_00.dtsi | 333 ++ .../dts/exynos7420-zerolte_gpio_kor_01.dtsi | 385 +++ .../dts/exynos7420-zerolte_gpio_kor_02.dtsi | 386 +++ .../dts/exynos7420-zerolte_gpio_kor_03.dtsi | 386 +++ .../dts/exynos7420-zerolte_gpio_kor_04.dtsi | 387 +++ .../dts/exynos7420-zerolte_gpio_kor_05.dtsi | 386 +++ .../dts/exynos7420-zerolte_gpio_kor_06.dtsi | 385 +++ .../dts/exynos7420-zerolte_gpio_ue_00.dtsi | 369 +++ .../dts/exynos7420-zerolte_gpio_upop_01.dtsi | 357 +++ .../dts/exynos7420-zerolte_gpio_usa_00.dtsi | 334 ++ .../dts/exynos7420-zerolte_gpio_usa_01.dtsi | 334 ++ .../dts/exynos7420-zerolte_gpio_usa_02.dtsi | 384 +++ .../dts/exynos7420-zerolte_gpio_usa_03.dtsi | 385 +++ .../dts/exynos7420-zerolte_gpio_usa_04.dtsi | 386 +++ .../dts/exynos7420-zerolte_gpio_usa_05.dtsi | 385 +++ .../dts/exynos7420-zerolte_gpio_usa_06.dtsi | 385 +++ .../exynos7420-zerolte_gpio_usa_cdma_00.dtsi | 399 +++ .../exynos7420-zerolte_gpio_usa_cdma_01.dtsi | 402 +++ .../exynos7420-zerolte_gpio_usa_cdma_02.dtsi | 402 +++ .../exynos7420-zerolte_gpio_usa_cdma_03.dtsi | 401 +++ ...ynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi | 192 ++ ...ynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi | 208 ++ ...ynos7420-zerolte_jpn-secnfc-tuner-r02.dtsi | 209 ++ .../boot/dts/exynos7420-zerolte_jpn_00.dts | 825 +++++ .../boot/dts/exynos7420-zerolte_jpn_01.dts | 837 +++++ .../boot/dts/exynos7420-zerolte_jpn_02.dts | 837 +++++ .../boot/dts/exynos7420-zerolte_jpn_03.dts | 832 +++++ .../boot/dts/exynos7420-zerolte_jpn_04.dts | 846 +++++ .../exynos7420-zerolte_jpn_battery_02.dtsi | 349 +++ .../dts/exynos7420-zerolte_kor-tdmb-00.dtsi | 75 + .../boot/dts/exynos7420-zerolte_kor_00.dts | 675 ++++ .../boot/dts/exynos7420-zerolte_kor_01.dts | 819 +++++ .../boot/dts/exynos7420-zerolte_kor_02.dts | 810 +++++ .../boot/dts/exynos7420-zerolte_kor_03.dts | 827 +++++ .../boot/dts/exynos7420-zerolte_kor_04.dts | 833 +++++ .../boot/dts/exynos7420-zerolte_kor_05.dts | 833 +++++ .../boot/dts/exynos7420-zerolte_kor_06.dts | 833 +++++ .../boot/dts/exynos7420-zerolte_mhl.dtsi | 83 + .../dts/exynos7420-zerolte_modem-mdm9x35.dtsi | 106 + .../dts/exynos7420-zerolte_modem-shannon.dtsi | 195 ++ .../exynos7420-zerolte_modem-shannon_ds.dtsi | 195 ++ .../exynos7420-zerolte_modem-shannon_kor.dtsi | 195 ++ .../boot/dts/exynos7420-zerolte_mst.dtsi | 47 + .../boot/dts/exynos7420-zerolte_ue_00.dts | 664 ++++ .../dts/exynos7420-zerolte_upop_battery.dtsi | 321 ++ .../boot/dts/exynos7420-zerolte_usa_00.dts | 741 +++++ .../boot/dts/exynos7420-zerolte_usa_01.dts | 741 +++++ .../boot/dts/exynos7420-zerolte_usa_02.dts | 890 ++++++ .../boot/dts/exynos7420-zerolte_usa_03.dts | 904 ++++++ .../boot/dts/exynos7420-zerolte_usa_04.dts | 904 ++++++ .../boot/dts/exynos7420-zerolte_usa_05.dts | 904 ++++++ .../boot/dts/exynos7420-zerolte_usa_06.dts | 903 ++++++ .../boot/dts/exynos7420-zerolte_usa_07.dts | 904 ++++++ .../dts/exynos7420-zerolte_usa_battery.dtsi | 336 ++ .../exynos7420-zerolte_usa_battery_02.dtsi | 358 +++ .../exynos7420-zerolte_usa_battery_04.dtsi | 368 +++ .../exynos7420-zerolte_usa_battery_05.dtsi | 353 +++ .../dts/exynos7420-zerolte_usa_cdma_00.dts | 921 ++++++ .../dts/exynos7420-zerolte_usa_cdma_01.dts | 934 ++++++ .../dts/exynos7420-zerolte_usa_cdma_02.dts | 934 ++++++ .../dts/exynos7420-zerolte_usa_cdma_03.dts | 947 ++++++ .../dts/exynos7420-zerolte_usa_cdma_04.dts | 948 ++++++ .../dts/exynos7420-zerolte_usa_cdma_05.dts | 948 ++++++ ...xynos7420-zerolte_usa_cdma_battery_02.dtsi | 352 +++ ...xynos7420-zerolte_usa_cdma_battery_06.dtsi | 348 ++ ...xynos7420-zerolte_usa_cdma_battery_07.dtsi | 353 +++ .../dts/exynos7420-zeromlte_gpio_usa_00.dtsi | 402 +++ .../boot/dts/exynos7420-zeromlte_usa_00.dts | 914 ++++++ .../dts/exynos7420-zeroslte_gpio_jpn_00.dtsi | 380 +++ .../dts/exynos7420-zeroslte_gpio_jpn_03.dtsi | 398 +++ .../dts/exynos7420-zeroslte_gpio_jpn_06.dtsi | 393 +++ .../boot/dts/exynos7420-zeroslte_jpn_00.dts | 786 +++++ .../boot/dts/exynos7420-zeroslte_jpn_03.dts | 841 +++++ .../boot/dts/exynos7420-zeroslte_jpn_06.dts | 832 +++++ arch/arm64/boot/dts/exynos7420_evt0.dtsi | 2788 +++++++++++++++++ .../boot/dts/exynos7580-carmen2_battery.dtsi | 178 ++ .../boot/dts/exynos7580-modem-sh310ap.dtsi | 207 ++ arch/arm64/boot/dts/exynos7580-noc.dtsi | 138 + arch/arm64/boot/dts/exynos7580-pinctrl.dtsi | 595 ++++ arch/arm64/boot/dts/exynos7580-smdk7580.dts | 561 ++++ .../boot/dts/exynos7580-universal7580.dts | 610 ++++ arch/arm64/boot/dts/exynos7580.dtsi | 1182 +++++++ .../arm64/boot/dts/modem-ss333-kor-pdata.dtsi | 254 ++ 201 files changed, 117541 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos7420-espresso7420_evt0.dts create mode 100644 arch/arm64/boot/dts/exynos7420-pinctrl_evt0.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-universal7420-ufs_rev00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-universal7420_rev00_battery.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-v_common.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-vlte_eur_open_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_battery_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_battery_05.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_chn_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_chn_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_chn_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_chn_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_chn_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_chn_battery_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_eur_battery_08.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_05.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_05.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_05.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_jpn_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_jpn_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_jpn_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_jpn_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_jpn_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_jpn_battery_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_kor_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_kor_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_kor_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_kor_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_kor_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_kor_05.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_kor_06.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_battery_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_battery_05.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_battery_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerofslte_gpio_jpn_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerofslte_gpio_jpn_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerofslte_jpn_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerofslte_jpn_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_battery.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_battery_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_battery_05.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_battery_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_chn_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_chn_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_chn_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_chn_battery_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_05.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_06.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_07.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_08.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_ev03_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_eur_open_upop_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_fingerprint-sensor_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_05.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_07.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_08.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_ev03_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_05.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_ue_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_upop_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_05.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_jpn_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_jpn_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_jpn_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_jpn_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_jpn_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_jpn_battery_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_kor-tdmb-00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_kor_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_kor_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_kor_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_kor_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_kor_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_kor_05.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_kor_06.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_mhl.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_modem-mdm9x35.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon_ds.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon_kor.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_mst.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_ue_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_upop_battery.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_05.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_06.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_07.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_battery.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_04.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_05.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_01.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_02.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_04.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_05.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_02.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_07.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeromlte_gpio_usa_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeromlte_usa_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_00.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_03.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_06.dtsi create mode 100644 arch/arm64/boot/dts/exynos7420-zeroslte_jpn_00.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroslte_jpn_03.dts create mode 100644 arch/arm64/boot/dts/exynos7420-zeroslte_jpn_06.dts create mode 100644 arch/arm64/boot/dts/exynos7420_evt0.dtsi create mode 100644 arch/arm64/boot/dts/exynos7580-carmen2_battery.dtsi create mode 100644 arch/arm64/boot/dts/exynos7580-modem-sh310ap.dtsi create mode 100644 arch/arm64/boot/dts/exynos7580-noc.dtsi create mode 100644 arch/arm64/boot/dts/exynos7580-pinctrl.dtsi create mode 100644 arch/arm64/boot/dts/exynos7580-smdk7580.dts create mode 100644 arch/arm64/boot/dts/exynos7580-universal7580.dts create mode 100644 arch/arm64/boot/dts/exynos7580.dtsi create mode 100644 arch/arm64/boot/dts/modem-ss333-kor-pdata.dtsi diff --git a/arch/arm64/boot/dts/exynos7420-espresso7420_evt0.dts b/arch/arm64/boot/dts/exynos7420-espresso7420_evt0.dts new file mode 100644 index 000000000000..fe01ad66ac47 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-espresso7420_evt0.dts @@ -0,0 +1,1097 @@ +/* + * SAMSUNG ESPRESSO7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420.dtsi" + +/ { + model = "Samsung ESPRESSO7420 board based on EXYNOS7420"; + compatible = "samsung,exynos7420", "samsung,ESPRESSO7420"; + + memory@40000000 { + device_type = "memory"; + reg = <0x40000000 0x80000000>; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + common { + compatible = "exynos5433-ion,common"; + size = <0x400000>; + alignment = <0x1000>; + }; + + g2d_wfd { + compatible = "exynos5433-ion,g2d_wfd"; + size = <0x800000>; + alignment = <0x1000>; + }; + + video { + compatible = "exynos5433-ion,video"; + size = <0xA800000>; + alignment = <0x10000>; + }; + + mfc_fw { + compatible = "exynos5433-ion,mfc_fw"; + size = <0x100000>; + alignment = <0x10000>; + }; + + mfc_nfw { + compatible = "exynos5433-ion,mfc_nfw"; + size = <0x100000>; + alignment = <0x1000>; + }; + + secdma { + compatible = "exynos5433-ion,secdma"; + size = <0x40000>; + alignment = <0x40000>; + }; + }; + + aliases { + spi0 = &spi_0; + spi1 = &spi_1; + spi2 = &spi_2; + spi3 = &spi_3; + spi4 = &spi_4; + }; + + chosen { + bootargs = "earlyprintk=exynos,0x14C30000 console=ttySAC2,115200n8 ess_setup=0x46000000"; + linux,initrd-start = <0x42000000>; + linux,initrd-end = <0x420FFFFF>; + }; + + fixed-rate-clocks { + oscclk { + compatible = "samsung,exynos7420-oscclk"; + clock-frequency = <24000000>; + }; + }; + + ion { + compatible = "samsung,exynos5430-ion"; + + ion_noncontig_heap { + id-type = <0 0>; + }; + }; + + dwmmc0@15740000 { + status = "okay"; + num-slots = <1>; + broken-cd; + bypass-smu; + fixed_volt; + clock-gate; + enable-cclk-on-suspend; + only_once_tune; + use-fine-tuning; + bypass-for-allpass; + supports-hs200-mode; + supports-ddr200-mode; + supports-highspeed; + enable-cache-control; + use-enable-shift; + qos_int_level = <468000>; + fifo-depth = <0x40>; + card-detect-delay = <200>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 2 1>; + samsung,dw-mshc-ddr-timing = <3 0 3 2>; + samsung,dw-mshc-hs200-timing = <3 0 3 1>; + samsung,dw-mshc-ddr200-timing = <1 0 2 2>; + samsung,dw-mshc-ddr200-delay-line = <118>; + clk_pin = "gpr0-0"; + clk_addr = "15690000.pinctrl"; + clk_val = <0x3>; + clk_str_num = <6>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_rdqs &sd0_bus1 &sd0_bus4 &sd0_bus8>; + gpios = <&gph1 4 0>; + slot@0 { + reg = <0>; + bus-width = <8>; + }; + }; + + + dwmmc2@15560000 { + status = "okay"; + num-slots = <1>; + supports-highspeed; + enable-cclk-on-suspend; + cd-type = <1>; + bypass-smu; + clock-gate; + fifo-depth = <0x40>; + card-detect-delay = <200>; + qos_int_level = <468000>; + bypass-for-allpass; + fix-fmp-size-mismatch; + not-allow-single-dma; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 3 2>; + samsung,dw-mshc-ddr-timing = <3 0 2 1>; + clk_pin = "gpr4-0"; + clk_addr = "10E60000.pinctrl"; + clk_val = <0x2>; + clk_str_num = <6>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; + vdd_vmmc-supply = <&ldo17_reg>; + vqmmc-supply = <&ldo2_reg>; + slot@0 { + reg = <0>; + bus-width = <4>; + disable-wp; + }; + }; + + pinctrl@10580000 { + gpa2_pull_up: gpa2_pull_up { + samsung,pins = "gpa2-0", "gpa2-1", "gpa2-7"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + pmic_irq: pmic-irq { + samsung,pins = "gpa0-2"; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + attn_irq: attn-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + attn_input: attn-input { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + fuel_irq: fuel-irq { + samsung,pins = "gpa3-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + chg_irq: chg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + hsi2c@14E10000 { + status = "okay"; + touchscreen@20 { + compatible = "synaptics,rmi4"; + reg = <0x20>; + pinctrl-names = "on_state", "off_state"; + pinctrl-0 = <&attn_irq>; + pinctrl-1 = <&attn_input>; + synaptics,irq_gpio = <&gpa2 5 0>; + synaptics,irq_type = <8200>; + synaptics,max_coords = <1440 2560>; /* x y */ + synaptics,num_lines = <29 16>; /* rx tx */ + + synaptics,regulator_dvdd = "tsp_io"; + synaptics,regulator_avdd = "tsp_avdd"; + synaptics,project_name = ""; + }; + }; + + hsi2c@13640000 { + status = "okay"; + sec-fuelgauge@3b { + compatible = "sec-fuelgauge,i2c"; + reg = <0x3b>; + pinctrl-names = "default"; + pinctrl-0 = <&fuel_irq>; + fuelgauge,fuel_int = <&gpa3 4 0>; + fuelgauge,fuel_alert_soc = <2>; + fuelgauge,capacity_max = <990>; + fuelgauge,capacity_max_margin = <30>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <12>; + fuelgaguge,repeated_fuelalert; + fuelgauge,type_str = "SDI"; + }; + }; + + hsi2c@14E20000 { + status = "okay"; + bq24193-charger@6b { + compatible = "ti,bq24193"; + reg = <0x6b>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + pinctrl-names = "default"; + pinctrl-3 = <&chg_irq>; + dev_name = "bq24193"; + battery,fuelgauge_name = "sec-fuelgauge"; + }; + }; + + pinctrl@14870000 { + /* Warm reset information from AP */ + pm_wrsti: pm-wrsti { + samsung,pins = "gpf0-2"; + samsung,pin-con-pdn = <3>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&gpa2_pull_up>; + button@1 { + label = "gpio-keys: KEY_POWER"; + interrupts = <7 0 0>; + interrupt-parent = <&gpa2>; + linux,code = <116>; + gpios = <&gpa2 7 0xf>; + gpio-key,wakeup = <1>; + }; + button@2 { + label = "gpio-keys: KEY_VOLUMEDOWN"; + interrupts = <1 0 0>; + interrupt-parent = <&gpa2>; + linux,code = <114>; + gpios = <&gpa2 1 0xf>; + }; + button@3 { + label = "gpio-keys: KEY_VOLUMEUP"; + interrupts = <0 0 0>; + interrupt-parent = <&gpa2>; + linux,code = <115>; + gpios = <&gpa2 0 0xf>; + }; + }; + + hsi2c@13660000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <2500000>; + + s2mps15_pmic@66 { + compatible = "samsung,s2mps15-pmic"; + reg = <0x66>; + interrupts = <2 0 0>; + interrupt-parent = <&gpa0>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_irq &pm_wrsti>; + gpios = <&gpv7 4 0>, <&gpb0 4 0x2>, <&gpj1 2 0x1>; + smpl_warn_en = <0>; /* 1 : enable , 0 : disable*/ + g3d_en = <0>; /* 1 : enable , 0 : disable */ + dvs_en = <0>; /* 1 : enable , 0 : disable */ + buck_dvs_on; + /* RTC: wtsr/smpl */ + wtsr_en = <1>; /* enable */ + smpl_en = <1>; /* enable */ + wtsr_timer_val = <3>; /* 1000ms */ + smpl_timer_val = <4>; /* 500ms */ + check_jigon = <0>; /* do not check jigon */ + /* RTC: If it's first boot, reset rtc to 1/1/2014 12:00:00(Wed) */ + init_time,sec = <0>; + init_time,min = <0>; + init_time,hour = <12>; + init_time,mday = <1>; + init_time,mon = <0>; + init_time,year = <114>; + init_time,wday = <3>; + + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck7_reg: BUCK7 { + regulator-name = "vdd_mem"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck10_reg: BUCK10 { + regulator-name = "vdd_lldo2"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo1_reg: LDO1 { + regulator-name = "vdd_ldo1"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <900000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + regulator-always-on; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-always-on; + }; + + ldo3_reg: LDO3 { + regulator-name = "vdd_ldo3"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <1980000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + regulator-always-on; + }; + + ldo4_reg: LDO4 { + regulator-name = "vdd_ldo4"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1110000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-always-on; + }; + + ldo5_reg: LDO5 { + regulator-name = "vdd_ldo5"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <1980000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo6_reg: LDO6 { + regulator-name = "vdd_ldo6"; + regulator-min-microvolt = <2250000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo7_reg: LDO7 { + regulator-name = "vdd_ldo7"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo9_reg: LDO9 { + regulator-name = "vdd_ldo9"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo10_reg: LDO10 { + regulator-name = "vdd_ldo10"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo11_reg: LDO11 { + regulator-name = "vdd_ldo11"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo12_reg: LDO12 { + regulator-name = "vdd_ldo12"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo13_reg: LDO13 { + regulator-name = "vdd_ldo13"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo14_reg: LDO14 { + regulator-name = "vdd_ldo14"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "vdd_ldo15"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <3>; + }; + + ldo16_reg: LDO16 { + regulator-name = "vdd_ldo16"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <3>; + }; + + ldo17_reg: LDO17 { + regulator-name = "vmmc"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo18_reg: LDO18 { + regulator-name = "vdd_ldo18"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo19_reg: LDO19 { + regulator-name = "vdd_ldo19"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo20_reg: LDO20 { + regulator-name = "vdd_ldo20"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo21_reg: LDO21 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo22_reg: LDO22 { + regulator-name = "CAM_SEN_CORE_1.2V_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo23_reg: LDO23 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo24_reg: LDO24 { + regulator-name = "vdd_ldo24"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "vdd_ldo25"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo26_reg: LDO26 { + regulator-name = "vdd_ldo26"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1470000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo27_reg: LDO27 { + regulator-name = "vdd_ldo27"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + }; + }; + }; + + dsim_0: dsim@0x13900000 { + lcd_info = <&s6e3ha0>; + /* lcd reset, power */ + gpios = <&gpf3 1 0x1>; + }; + + s6e3ha0: s6e3ha0_wqhd { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <20 1 1>; + timing,dsi-hs-clk = <1100>; + timing,dsi-escape-clk = <20>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + pinctrl@10580000 { + + dwc3_b_sess: dwc3-b-sess { + samsung,pins = "gpa1-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + + dwc3_id: dwc3-id { + samsung,pins = "gpa1-1"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + }; + + dwc3_vbus: fixedregulator@0 { + compatible = "regulator-fixed"; + regulator-name = "VUSB_VBUS_5V"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpf4 1 1>; + enable-active-high; + }; + + usb@15400000 { + dwc3-vbus-supply = <&dwc3_vbus>; + samsung,bsess-gpio = <&gpa1 0 0xf>; + samsung,id-gpio = <&gpa1 1 0xf>; + pinctrl-names = "default"; + pinctrl-0 = <&dwc3_b_sess &dwc3_id>; + status = "okay"; + + dwc3 { + maximum-speed = "super-speed"; + dr_mode = "otg"; + }; + }; + + hsi2c@136A0000 { + status = "okay"; + clock-frequency = <100000>; + /* hdmi edid dirver */ + edid@50 { + compatible = "samsung,exynos5-edid_driver"; + reg = <0x50>; + }; + + /* hdmi hdcp dirver */ + hdcp@3A { + compatible = "samsung,exynos5-hdcp_driver"; + reg = <0x3A>; + }; + }; + + hdmi@13970000 { + /* all bit clock supports: 1, not support: 0 */ + audio_master_clk = <1>; + gpios = <&gpa3 0 0xf>, <&gpf4 5 0x1>, <&gpf4 6 0x1>; + }; + + fimc_is_sensor0: fimc_is_sensor@14020000 { + scenario = <0>; + gpio_reset = <&gpc0 1 0x1>; + id = <0>; + mclk_ch = <0>; + csi_ch = <0>; + flite_ch = <0>; + i2c_ch = <0x0200>; + i2c_addr = <0x5A5A>; + flash_first_gpio = <2>; + flash_second_gpio = <3>; + is_bns = <1>; + status = "okay"; + }; + + fimc_is_sensor1: fimc_is_sensor@14030000 { + scenario = <0>; + gpio_reset = <&gpc0 4 0x1>; + gpio_standby = <&gpc0 0 0x1>; + id = <1>; + mclk_ch = <2>; + csi_ch = <1>; + flite_ch = <1>; + i2c_ch = <1>; + i2c_addr = <0x20>; + is_bns = <0>; + status = "okay"; + }; + + fimc_is@14200000 { + fimc_is_dvfs { + default_int = <590000>; /* L0 */ + default_cam = <590000>; /* L0 */ + default_mif = <828000>; /* L0 */ + default_i2c = <0>; + + front_preview_int = <590000>; /* L1 */ + front_preview_cam = <590000>; /* L7 */ + front_preview_mif = <828000>; /* L0 */ + front_preview_i2c = <0>; + + front_capture_int = <590000>; /* L1 */ + front_capture_cam = <590000>; /* L7 */ + front_capture_mif = <828000>; /* L0 */ + front_capture_i2c = <0>; + + front_camcording_int = <590000>; /* L1 */ + front_camcording_cam = <590000>; /* L7 */ + front_camcording_mif = <828000>; /* L0 */ + front_camcording_i2c = <0>; + + front_vt1_int = <590000>; /* L1 */ + front_vt1_cam = <590000>; /* L7 */ + front_vt1_mif = <828000>; /* L0 */ + front_vt1_i2c = <0>; + + front_vt2_int = <590000>; /* L1 */ + front_vt2_cam = <590000>; /* L7 */ + front_vt2_mif = <828000>; /* L0 */ + front_vt2_i2c = <0>; + + rear_preview_fhd_int = <590000>; /* L1 */ + rear_preview_fhd_cam = <590000>; /* L6 */ + rear_preview_fhd_mif = <828000>; /* L1 */ + rear_preview_fhd_i2c = <0>; + + rear_preview_whd_int = <590000>; /* L1 */ + rear_preview_whd_cam = <590000>; /* L6 */ + rear_preview_whd_mif = <828000>; /* L0 */ + rear_preview_whd_i2c = <0>; + + rear_preview_uhd_int = <590000>; /* L0_A */ + rear_preview_uhd_cam = <590000>; /* L2 */ + rear_preview_uhd_mif = <828000>; /* L0 */ + rear_preview_uhd_i2c = <0>; + + rear_capture_int = <590000>; /* L0 */ + rear_capture_cam = <590000>; /* L1 */ + rear_capture_mif = <828000>; /* L0 */ + rear_capture_i2c = <0>; + + rear_camcording_fhd_int = <590000>; /* L1 */ + rear_camcording_fhd_cam = <590000>; /* L4 */ + rear_camcording_fhd_mif = <828000>; /* L1 */ + rear_camcording_fhd_i2c = <0>; + + rear_camcording_uhd_int = <590000>; /* L0_A */ + rear_camcording_uhd_cam = <590000>; /* L2 */ + rear_camcording_uhd_mif = <828000>; /* L0 */ + rear_camcording_uhd_i2c = <0>; + + dual_preview_int = <590000>; /* L1 */ + dual_preview_cam = <590000>; /* L5 */ + dual_preview_mif = <828000>; /* L0 */ + dual_preview_i2c = <0>; + + dual_capture_int = <590000>; /* L0 */ + dual_capture_cam = <590000>; /* L0 */ + dual_capture_mif = <828000>; /* L0 */ + dual_capture_i2c = <0>; + + dual_camcording_int = <590000>; /* L1 */ + dual_camcording_cam = <590000>; /* L3 */ + dual_camcording_mif = <828000>; /* L0 */ + dual_camcording_i2c = <0>; + + high_speed_fps_int = <590000>; /* L0 */ + high_speed_fps_cam = <590000>; /* L1 */ + high_speed_fps_mif = <828000>; /* L0 */ + high_speed_fps_i2c = <0>; + + dis_enable_int = <590000>; /* L0 */ + dis_enable_cam = <590000>; /* L0 */ + dis_enable_mif = <828000>; /* L0 */ + dis_enable_i2c = <0>; + + max_int = <590000>; /* L0 */ + max_cam = <590000>; /* L0 */ + max_mif = <828000>; /* L0 */ + max_i2c = <0>; + }; + }; + + spi_0: spi@14d20000 { + status = "okay"; + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa0>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena>; + + wlf,reset = <&gpf2 1 0>; + wlf,ldoena = <&gpf2 2 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,micd-ranges = < + 139 226 + 295 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,fixed-hpdet-imp = <16>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <0 0 0 0>; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa0-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + }; + codec_irq_idle: codec-irq-idle { + samsung,pins = "gpa0-5"; + samsung,pin-function = <0x0>; + samsung,pin-pud = <3>; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf2-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf2-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + i2s0: i2s@11440000 { + status = "okay"; + }; + + i2s1: i2s@14D60000 { + status = "okay"; + }; + + audio_codec_dummy: dummy-codec { + compatible = "samsung,dummy-codec"; + status = "okay"; + }; + + i2s_dummy: dummy-i2s { + compatible = "samsung,dummy-i2s"; + status = "okay"; + }; + + sound { + compatible = "samsung,espresso_wm5110"; + pinctrl-names = "default", "idle"; + pinctrl-0 = <&codec_irq>; + pinctrl-1 = <&codec_irq_idle>; + samsung,audio-cpu = <&i2s0 /* primary */ + &i2s0>; /* secondary */ + samsung,audio-cpu-hdmi = <&i2s1>; /* hdmi */ + samsung,audio-codec = <&audio_codec + &audio_codec + &audio_codec_dummy>; + status = "okay"; + }; + + amba { + adma: adma@11420000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x11420000 0x1000>; + interrupts = <0 97 0>; + clocks = <&clock 400>; + clock-names = "apb_pclk"; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <16>; + #dma-mcode-addr = <0x03046000>; + samsung,lpass-subip; + status = "ok"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-pinctrl_evt0.dtsi b/arch/arm64/boot/dts/exynos7420-pinctrl_evt0.dtsi new file mode 100644 index 000000000000..27841fbbd987 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-pinctrl_evt0.dtsi @@ -0,0 +1,806 @@ +/* + * Samsung's Exynos5430 SoC pin-mux and pin-config device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * Samsung's Exynos5430 SoC pin-mux and pin-config options are listed as device + * tree nodes are listed in this file. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + pinctrl@10580000 { + gpa0: gpa0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + interrupt-parent = <&gic>; + interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, + <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>; + }; + + gpa1: gpa1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <3>; + interrupt-parent = <&gic>; + interrupts = <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, + <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; + }; + + gpa2: gpa2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpa3: gpa3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + hdmi_hdmi_hpd: hdmi_hdmi_hpd { + samsung,pins = "gpa3-0"; + samsung,pin-function = <3>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + hdmi_ext_hpd: hdmi_ext_hpd { + samsung,pins = "gpa3-0"; + samsung,pin-function = <15>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + hdmi_cec: hdmi_cec { + samsung,pins = "gpa3-1"; + samsung,pin-function = <3>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@114B0000 { + gpz0: gpz0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpz1: gpz1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + i2s0_bus: i2s0-bus { + samsung,pins = "gpz0-0", "gpz0-1", "gpz0-2", "gpz0-3", + "gpz0-4", "gpz0-5", "gpz0-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + i2s0_bus_idle: i2s0-bus-idle { + samsung,pins = "gpz0-0", "gpz0-1", "gpz0-2", "gpz0-3", + "gpz0-4", "gpz0-5", "gpz0-6"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + pcm0_bus: pcm0-bus { + samsung,pins = "gpz1-0", "gpz1-1", "gpz1-2", "gpz1-3"; + samsung,pin-function = <3>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + uart_aud_bus: uart-aud-bus { + samsung,pins = "gpz1-3", "gpz1-2", "gpz1-1", "gpz1-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + + uart_aud_bus_idle: uart-aud-bus-idle { + samsung,pins = "gpz1-3"; + samsung,pin-function = <1>; + samsung,pin-val = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn = <1>; + samsung,pin-pud-pdn = <3>; + }; + + uart_aud_bus_lpm: uart-aud-bus-lpm { + samsung,pins = "gpz1-3"; + samsung,pin-function = <1>; + samsung,pin-val = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn = <1>; + samsung,pin-pud-pdn = <3>; + }; + }; + + pinctrl@13470000 { + gpb0: gpb0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc0: gpc0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc1: gpc1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc2: gpc2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc3: gpc3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd0: gpd0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd1: gpd1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd2: gpd2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd4: gpd4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd5: gpd5 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd6: gpd6 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd7: gpd7 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd8: gpd8 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpg0: gpg0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpg3: gpg3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + hs_i2c10_bus: hs-i2c10-bus { + samsung,pins = "gpb0-1", "gpb0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + hs_i2c11_bus: hs-i2c11-bus { + samsung,pins = "gpb0-3", "gpb0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + hs_i2c2_bus: hs-i2c2-bus { + samsung,pins = "gpd0-3", "gpd0-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + hs_i2c3_bus: hs-i2c3-bus { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + hs_i2c0_bus: hs-i2c0-bus { + samsung,pins = "gpd2-1", "gpd2-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + hs_i2c1_bus: hs-i2c1-bus { + samsung,pins = "gpd2-3", "gpd2-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + hs_i2c9_bus: hs-i2c9-bus { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + hs_i2c8_bus: hs-i2c8-bus { + samsung,pins = "gpd5-3", "gpd5-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + + spi2_bus: spi2-bus { + samsung,pins = "gpd5-0", "gpd5-2", "gpd5-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi2_cs: spi2-cs { + samsung,pins = "gpd5-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi1_bus: spi1-bus { + samsung,pins = "gpd6-2", "gpd6-4", "gpd6-5"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi1_cs: spi1-cs { + samsung,pins = "gpd6-3"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi0_bus: spi0-bus { + samsung,pins = "gpd8-0", "gpd6-0", "gpd6-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi0_cs: spi0-cs { + samsung,pins = "gpd8-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + disp_teson: disp_teson { + samsung,pins = "gpg0-1"; + samsung,pin-function = <2>; + }; + + disp_tesoff: disp_tesoff { + samsung,pins = "gpg0-1"; + samsung,pin-function = <0>; + }; + + hs_i2c4_bus: hs-i2c4-bus { + samsung,pins = "gpg3-1", "gpg3-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + hs_i2c5_bus: hs-i2c5-bus { + samsung,pins = "gpg3-3", "gpg3-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + fimc_is_uart: fimc-is-uart { + samsung,pins = "gpc1-1", "gpc0-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + fimc_is_ch0_i2c: fimc-is-ch0_i2c { + samsung,pins = "gpc2-1", "gpc2-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + fimc_is_ch0_mclk: fimc-is-ch0_mclk { + samsung,pins = "gpd7-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + fimc_is_ch1_i2c: fimc-is-ch1-i2c { + samsung,pins = "gpc2-3", "gpc2-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + fimc_is_ch1_mclk: fimc-is-ch1-mclk { + samsung,pins = "gpd7-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + fimc_is_ch2_i2c: fimc-is-ch2-i2c { + samsung,pins = "gpc2-5", "gpc2-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + fimc_is_ch2_mclk: fimc-is-ch2-mclk { + samsung,pins = "gpd7-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + fimc_is_flash: fimc-is-flash { + samsung,pins = "gpc0-3", "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + i2s1_bus: i2s1-bus { + samsung,pins = "gpd4-0", "gpd4-1", "gpd4-2", + "gpd4-3", "gpd4-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + pcm1_bus: pcm1-bus { + samsung,pins = "gpd4-0", "gpd4-1", "gpd4-2", + "gpd4-3", "gpd4-4"; + samsung,pin-function = <3>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + spdif_bus: spdif-bus { + samsung,pins = "gpd4-3", "gpd4-4"; + samsung,pin-function = <4>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + etc1: etc1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf0: gpf0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf1: gpf1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf2: gpf2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf3: gpf3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf4: gpf4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf5: gpf5 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpg1: gpg1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpg2: gpg2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gph1: gph1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpv6: gpv6 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + }; + + pinctrl@14CD0000 { + gpj0: gpj0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + hs_i2c6_bus: hs-i2c6-bus { + samsung,pins = "gpj0-1", "gpj0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14CE0000 { + gpj1: gpj1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + hs_i2c7_bus: hs-i2c7-bus { + samsung,pins = "gpj1-1", "gpj1-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14C90000 { + gpg4: gpg4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + spi3_bus: spi3-bus { + samsung,pins = "gpg4-3", "gpg4-2", "gpg4-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + + }; + + spi3_cs: spi3-cs { + samsung,pins = "gpg4-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + + }; + }; + + pinctrl@14CA0000 { + gpv7: gpv7 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + spi4_bus: spi4-bus { + samsung,pins = "gpv7-3", "gpv7-2", "gpv7-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + + }; + + spi4_cs: spi4-cs { + samsung,pins = "gpv7-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + + }; + }; + + pinctrl@10E60000 { + gpr4: gpr4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + sd2_clk: sd2-clk { + samsung,pins = "gpr4-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <4>; + }; + + sd2_cmd: sd2-cmd { + samsung,pins = "gpr4-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <4>; + }; + + sd2_cd: sd2-cd { + samsung,pins = "gpr4-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <4>; + }; + + sd2_bus1: sd2-bus-width1 { + samsung,pins = "gpr4-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <4>; + }; + + sd2_bus4: sd2-bus-width4 { + samsung,pins = "gpr4-4", "gpr4-5", "gpr4-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <4>; + }; + }; + + pinctrl@15690000 { + gpr0: gpr0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpr1: gpr1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpr2: gpr2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpr3: gpr3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + sd0_clk: sd0-clk { + samsung,pins = "gpr0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <4>; + }; + + sd0_cmd: sd0-cmd { + samsung,pins = "gpr0-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd0_rdqs: sd0-rdqs { + samsung,pins = "gpr0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <4>; + }; + + sd0_qrdy: sd0-qrdy { + samsung,pins = "gpr0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <4>; + }; + + sd0_bus1: sd0-bus-width1 { + samsung,pins = "gpr1-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd0_bus4: sd0-bus-width4 { + samsung,pins = "gpr1-1", "gpr1-2", "gpr1-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd0_bus8: sd0-bus-width8 { + samsung,pins = "gpr1-4", "gpr1-5", "gpr1-6", "gpr1-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd1_clk: sd1-clk { + samsung,pins = "gpr2-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <4>; + }; + + sd1_cmd: sd1-cmd { + samsung,pins = "gpr2-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd1_bus1: sd1-bus-width1 { + samsung,pins = "gpr3-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd1_bus4: sd1-bus-width4 { + samsung,pins = "gpr3-1", "gpr3-2", "gpr3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd1_bus8: sd1-bus-width8 { + samsung,pins = "gpr3-4", "gpr3-5", "gpr3-6", "gpr3-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-universal7420-ufs_rev00.dts b/arch/arm64/boot/dts/exynos7420-universal7420-ufs_rev00.dts new file mode 100644 index 000000000000..82acbe83ce9e --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-universal7420-ufs_rev00.dts @@ -0,0 +1,1644 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420.dtsi" +#include "exynos7420-universal7420_rev00_battery.dtsi" + +/ { + model = "Samsung UNIVERSAL7420 board based on EXYNOS7420"; + compatible = "samsung,exynos7420", "samsung,UNIVERSAL7420"; + + memory@40000000 { + device_type = "memory"; + reg = <0x40000000 0xC0000000>; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + common { + compatible = "exynos5433-ion,common"; + size = <0x600000>; + alignment = <0x1000>; + id = <0>; + }; + + video { + compatible = "exynos5433-ion,video"; + secure; + reg = <0xE2A00000 0xE400000>; + id = <11>; + compat-id = <4 5 6 7>; + }; + + video_ext { + compatible = "exynos5433-ion,video_ext"; + secure; + reg = <0xF0E00000 0x600000>; + id = <1>; + }; + + mfc_fw { + compatible = "exynos5433-ion,mfc_fw"; + secure; + reg = <0xE2800000 0x200000>; + id = <8>; + }; + + mfc_nfw { + compatible = "exynos5433-ion,mfc_nfw"; + reg = <0xE2600000 0x110000>; + id = <12>; + }; + + secdma { + compatible = "exynos5433-ion,secdma"; + size = <0x40000>; + alignment = <0x40000>; + id = <13>; + }; + + mipi_lli_reserved: mipi_lli { + compatible = "mipi-lli-shmem"; + #memory-region-cells = <0>; + size = <0x400000>; + alignment = <0x400000>; + }; + + iram_vector { + compatible = "mali,iram-vector"; + reg = <0xF2A00000 0x200000>; + }; + + sss_debug { + compatible = "secure,sss-debug"; + reg = <0xF2C00000 0x100000>; + }; + }; + + aliases { + spi0 = &spi_0; + spi1 = &spi_1; + spi2 = &spi_2; + spi3 = &spi_3; + spi4 = &spi_4; + spi5 = &spi_5; + spi6 = &spi_6; + spi7 = &spi_7; + }; + + chosen { + bootargs = "console=ttySAC1,115200n8 ess_setup=0x46000000"; + linux,initrd-start = <0x42000000>; + linux,initrd-end = <0x420FFFFF>; + }; + + fixed-rate-clocks { + oscclk { + compatible = "samsung,exynos7420-oscclk"; + clock-frequency = <24000000>; + }; + }; + + ion { + compatible = "samsung,exynos5430-ion"; + }; + + serial_1: uart@14C20000 { + /* Enable UART channel for debug port */ + status = "okay"; + }; + + memory_controller: mc@10800000 { + compatible = "samsung,exynos7420-mc"; + reg = <0x10800000 0x400000>; + #address-cells = <1>; + #size-cells = <1>; + }; + + dramtest { + compatible = "samsung,dramtest"; + }; + + dwmmc0@15740000 { + status = "okay"; + num-slots = <1>; + broken-cd; + use-smu; + fixed_volt; + biu-clock-gate; + clock-gate; + enable-cclk-on-suspend; + only_once_tune; + use-fine-tuning; + bypass-for-allpass; + supports-highspeed; + supports-hs200-mode; + supports-ddr200-mode; + enable-cache-control; + use-enable-shift; + qos_int_level = <468000>; + desc-size = <3>; + fifo-depth = <0x40>; + card-detect-delay = <200>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 2 0>; + samsung,dw-mshc-ddr-timing = <3 0 3 2>; + samsung,dw-mshc-hs200-timing = <3 0 3 1>; + samsung,dw-mshc-ddr200-timing = <1 0 2 2>; + samsung,dw-mshc-ddr200-delay-line = <118>; + clk_pin = "gpr0-0"; + clk_addr = "15690000.pinctrl"; + clk_val = <0x4>; + clk_str_num = <6>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_rdqs &sd0_bus1 &sd0_bus4 &sd0_bus8>; + gpios = <&gph1 4 0>; + slot@0 { + reg = <0>; + bus-width = <8>; + }; + }; + + dwmmc2@15560000 { + status = "okay"; + num-slots = <1>; + supports-highspeed; + enable-cclk-on-suspend; + cd-type = <0>; + bypass-smu; + biu-clock-gate; + clock-gate; + use-fine-tuning; + desc-size = <3>; + fifo-depth = <0x40>; + card-detect-delay = <200>; + qos_int_level = <468000>; + bypass-for-allpass; + fix-fmp-size-mismatch; + not-allow-single-dma; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 3 2>; + samsung,dw-mshc-ddr-timing = <3 0 2 1>; + clk_pin = "gpr4-0"; + clk_addr = "10E60000.pinctrl"; + clk_val = <0x2>; + clk_str_num = <6>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4 &dwmmc2_cd_ext_irq>; + gpio-controller; + #gpio-cells = <2>; + cd-gpio = <&gpa2 4 0xf>; + + slot@0 { + reg = <0>; + bus-width = <4>; + disable-wp; + }; + }; + + pinctrl@10580000 { + dwmmc2_cd_ext_irq: dwmmc2_cd_ext_irq { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + pmic_irq: pmic-irq { + samsung,pins = "gpa3-7"; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + + cp_status: cp_status { + samsung,pins = "gpa1-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + g3d_dvs: g3d-dvs { + samsung,pins = "gpg1-1"; + samsung,pin-function = <0x2>; + }; + + /* Warm reset information from AP */ + pm_wrsti: pm-wrsti { + samsung,pins = "gpf3-0"; + samsung,pin-con-pdn = <3>; + }; + + /* smpl_warn */ + smpl_warn: smpl-warn { + samsung,pins = "gpg1-0"; + samsung,pin-function = <0xf>; + }; + + cp_on: cp_on { + samsung,pins = "gpf5-0"; + samsung,pin-function = <0x1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + samsung,pin-val = <0>; + }; + + cp_reset: cp_reset { + samsung,pins = "gpf1-1"; + samsung,pin-function = <0x1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + samsung,pin-val = <0>; + }; + + cfg_wlanen: cfg-wlanen { + samsung,pins = "gpf4-6"; + samsung,pin-function = <1>; + samsung,pin-drv = <3>; + samsung,pin-con-pdn = <3>; + }; + }; + + pinctrl@10E60000 { + cp_off: cp_off { + samsung,pins = "gpr3-6"; + samsung,pin-function = <0x1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + samsung,pin-val = <0>; + }; + + }; + hsi2c@13650000{ + max77843@66 { + status = "disabled"; + }; + + max77833@66 { + compatible = "maxim,max77833"; + reg = <0x66>; + pinctrl-names = "default"; + pinctrl-0 = <&chg_irq>; + max77833,irq-gpio = <&gpa1 4 1>; + max77833,wakeup; + + regulators { + safeout1: ESAFEOUT1 { + regulator-compatible = "safeout1"; + regulator-name = "safeout1_range"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <4900000>; + regulator-boot-on; + }; + + safeout2: ESAFEOUT2 { + regulator-compatible = "safeout2"; + regulator-name = "safeout2_range"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <4900000>; + }; + }; + }; + }; + + hsi2c@13650000{ + status = "okay"; + + max77833@66 { + status = "okay"; + }; + }; + + usb_notifier { + compatible = "samsung,usb-notifier"; + }; + + muic { + status = "disabled"; + muic,support-list = "Jig USB On","Jig USB On + VB","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB"; + muic,afcmode-tx = /bits/ 8 <0x46>; + muic,qc-hv = /bits/ 8 <0x9>; + }; + + + hsi2c@13660000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <2500000>; + samsung,use-apm; + + s2mps15_pmic@66 { + compatible = "samsung,s2mps15-pmic"; + reg = <0x66>; + interrupts = <7 0 0>; + interrupt-parent = <&gpa3>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_irq &pm_wrsti &g3d_dvs>; + gpios = <&gpg1 0 0>, <&gpb0 4 0x2>, <&gpg1 1 0x1>; + smpl_warn_en = <1>; /* 1 : enable , 0 : disable*/ + /* range of smpl_warn_vth */ + /* PMIC1 */ + /* 2100 : 2.3V, 2300 : 2.3V, 2500 : 2.5V, 2700 : 2.7V 2900 : 2.9V */ + /* 3100 : 3.0V, 3300 : 3.0V, 3500 : 3.0V */ + /* PMIC2 */ + /* 2100 : 2.1V, 2300 : 2.3V, 2500 : 2.5V, 2700 : 2.7V 2900 : 2.9V */ + /* 3100 : 3.1V, 3300 : 3.3V, 3500 : 3.5V */ + smpl_warn_vth = <2900>; + smpl_warn_hys = <0x00>; /* LOwBat_Hys[4:3] 00(100mV)~11(400mV) */ + adc-on; + buck_dvs_on; + g3d_en = <1>; /* 1 : enable , 0 : disable */ + dvs_en = <1>; /* 1 : enable , 0 : disable */ + buck6en_pin = "gpb0-4"; + buck6en_addr = "13470000.pinctrl"; + /* RTC: wtsr/smpl */ + wtsr_en = <1>; /* enable */ + smpl_en = <1>; /* enable */ + wtsr_timer_val = <3>; /* 1000ms */ + smpl_timer_val = <4>; /* 500ms */ + check_jigon = <0>; /* do not check jigon */ + /* RTC: If it's first boot, reset rtc to 1/1/2014 12:00:00(Wed) */ + init_time,sec = <0>; + init_time,min = <0>; + init_time,hour = <12>; + init_time,mday = <1>; + init_time,mon = <0>; + init_time,year = <114>; + init_time,wday = <3>; + + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck10_reg: BUCK10 { + regulator-name = "vdd_lldo2"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo1_reg: LDO1 { + regulator-name = "vdd_ldo1"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <900000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + regulator-always-on; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo3_reg: LDO3 { + regulator-name = "vdd_ldo3"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <1980000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + regulator-always-on; + }; + + ldo4_reg: LDO4 { + regulator-name = "vdd_ldo4"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1110000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-always-on; + }; + + ldo5_reg: LDO5 { + regulator-name = "vdd_ldo5"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <1980000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo6_reg: LDO6 { + regulator-name = "vdd_ldo6"; + regulator-min-microvolt = <2250000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo7_reg: LDO7 { + regulator-name = "vdd_ldo7"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1150000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo9_reg: LDO9 { + regulator-name = "vdd_ldo9"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo10_reg: LDO10 { + regulator-name = "vdd_ldo10"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo11_reg: LDO11 { + regulator-name = "vdd_ldo11"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo12_reg: LDO12 { + regulator-name = "vdd_ldo12"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo13_reg: LDO13 { + regulator-name = "vdd_ldo13"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo14_reg: LDO14 { + regulator-name = "vdd_ldo14"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "vdd_ldo15"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <3>; + }; + + ldo16_reg: LDO16 { + regulator-name = "vdd_ldo16"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <3>; + }; + + ldo17_reg: LDO17 { + regulator-name = "vdd_ldo17"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo18_reg: LDO18 { + regulator-name = "vdd_ldo18"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo19_reg: LDO19 { + regulator-name = "vdd_ldo19"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo20_reg: LDO20 { + regulator-name = "vdd_ldo20"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo21_reg: LDO21 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "CAM_SEN_CORE_1.2V_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo23_reg: LDO23 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo24_reg: LDO24 { + regulator-name = "vdd_ldo24"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "vmmc"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo26_reg: LDO26 { + regulator-name = "vdd_ldo26"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1470000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo27_reg: LDO27 { + regulator-name = "vdd_ldo27"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <2275000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + + s2mpb01_pmic@59 { + compatible = "s2mpb01,s2mpb01-regulator"; + reg = <0x59>; + + regulators { + _buck1_reg: BUCK1 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: LDO1 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo2_reg: LDO2 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo3_reg: LDO3 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo4_reg: LDO4 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo5_reg: LDO5 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo6_reg: LDO6 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: LDO7 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: LDO8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: LDO9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: LDO10 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo11_reg: LDO11 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo12_reg: LDO12 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo13_reg: LDO13 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo14_reg: LDO14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: LDO15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + }; + }; + }; + + pinctrl@10580000 { + gpa2_pull_up: gpa2_pull_up { + samsung,pins = "gpa2-2"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + attn_irq: attn-irq { + samsung,pins = "gpa1-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + attn_input: attn-input { + samsung,pins = "gpa1-6"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&gpa2_pull_up>; + button@1 { + label = "gpio-keys: KEY_POWER"; + interrupts = <2 0 0>; + interrupt-parent = <&gpa2>; + linux,code = <116>; + gpios = <&gpa2 2 0xf>; + gpio-key,wakeup = <1>; + }; + button@2 { + label = "gpio-keys: KEY_VOLUMEDOWN"; + interrupts = <3 0 0>; + interrupt-parent = <&gpa0>; + linux,code = <114>; + gpios = <&gpa0 3 0xf>; + }; + button@3 { + label = "gpio-keys: KEY_VOLUMEUP"; + interrupts = <2 0 0>; + interrupt-parent = <&gpa0>; + linux,code = <115>; + gpios = <&gpa0 2 0xf>; + }; + }; + + pinctrl@14CE0000 { + i2c_pdn_off: i2c-pdn_off { + samsung,pins = "gpj1-1", "gpj1-0"; + samsung,pin-con-pdn = <2>; + samsung,pin-pud-pdn = <1>; + }; + }; + + hsi2c@14E10000 { + status = "okay"; + touchscreen@20 { + compatible = "stm,fts_touch"; + reg = <0x49>; + pinctrl-names = "on_state", "off_state"; + pinctrl-0 = <&attn_irq>; + pinctrl-1 = <&attn_input &i2c_pdn_off>; + stm,irq_gpio = <&gpa1 6 0>; + stm,irq_type = <8200>; + stm,max_coords = <1599 2559>; /* x y */ + stm,regulator_dvdd = "tsp_io"; + stm,regulator_avdd = "tsp_avdd"; + stm,firmware_name = "tsp_stm/stm_tb_integ.fw"; + }; + }; + + + usb@15400000 { + status = "okay"; + + dwc3 { + maximum-speed = "super-speed"; + dr_mode = "otg"; + }; + }; + + ipa_pdata { + compatible = "samsung,exynos-ipa"; + + control_temp = <90>; + temp_threshold = <30>; + enabled = <1>; + tdp = <3500>; + boost = <1>; + ros_power = <500>; + little_weight = <1024>; + big_weight = <256>; + gpu_weight = <256>; + little_max_power = <1000>; + big_max_power = <6552>; + gpu_max_power = <3110>; + hotplug_out_threshold = <10>; + hotplug_in_threshold = <0>; + enable_ctlr = <1>; + ctlr.mult = <2>; + ctlr.k_i = <1>; + ctlr.k_d = <0>; + ctlr.feed_forward = <1>; + ctlr.integral_reset_value = <0>; + ctlr.integral_cutoff = <0>; + ctlr.integral_reset_threshold = <10>; + }; + + decon_0: decon_fb { + /* EINT for TE */ + gpios = <&gpg0 0 0xf>; + te_eint { + reg = <0x13470A34 0x4>, <0x13470934 0x4>; + }; + }; + + dsim_0: dsim@0x13900000 { + lcd_info = <&s6e3hf2_wqxga>; + /* lcd reset, power */ + gpios = <&gpr3 0 0x1>, <&gpf3 2 0x1>, <&gpf4 3 0x1>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1600 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1100>; + timing,dsi-escape-clk = <20>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1100>; + timing,dsi-escape-clk = <20>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + hdmi@13970000 { + /* all bit clock supports: 1, not support: 0 */ + audio_master_clk = <1>; + gpios = <&gpa3 0 0xf>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + }; + codec_irq_idle: codec-irq-idle { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0x0>; + samsung,pin-pud = <3>; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + i2s0: i2s@11440000 { + /*samsung,supports-esa-dma;*/ + /*samsung,supports-sec-compr;*/ + status = "okay"; + }; + + i2s1: i2s@14D60000 { + status = "okay"; + }; + + audio_codec_dummy: dummy-codec { + compatible = "samsung,dummy-codec"; + status = "okay"; + }; + + i2s_dummy: dummy-i2s { + compatible = "samsung,dummy-i2s"; + status = "okay"; + }; + + sound { + compatible = "samsung,universal-dummy"; + pinctrl-names = "default", "idle"; + pinctrl-0 = <&codec_irq>; + pinctrl-1 = <&codec_irq_idle>; + samsung,audio-cpu = <&i2s0 /* primary */ + &i2s0>; /* secondary */ + samsung,audio-cpu-hdmi = <&i2s1>; /* hdmi */ + samsung,audio-codec = <&audio_codec_dummy + &audio_codec_dummy + &audio_codec_dummy>; + status = "okay"; + }; + + amba { + adma: adma@11420000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x11420000 0x1000>; + interrupts = <0 97 0>; + clocks = <&clock 400>; + clock-names = "apb_pclk"; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <16>; + #dma-mcode-addr = <0x03047000>; + samsung,lpass-subip; + status = "ok"; + }; + }; + + spi_6: spi@14390000 { + /*clocks = <&clock 2626>, <&clock 4083>;*/ /* Workaround for SPI read in A5 */ + /* clock-names = "spi", "spi_busclk0";*/ /* Must be removed later */ + #address-cells = <1>; + #size-cells = <0>; + + num-cs = <1>; + + fimc_is_spi_0@0 { + compatible = "samsung,fimc_is_spi0"; + spi-max-frequency = <50000000>; + reg = <0x0>; + fimc_is_spi_pinname = "13470000.pinctrl"; + fimc_is_spi_clk = "gpc3-0"; + fimc_is_spi_ssn = "gpc3-1"; + fimc_is_spi_miso = "gpc3-2"; + fimc_is_spi_mosi = "gpc3-3"; + + controller-data { + cs-gpio = <&gpc3 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_7: spi@143A0000 { + /*clocks = <&clock 2626>, <&clock 4083>;*/ /* Workaround for SPI read in A5 */ + /* clock-names = "spi", "spi_busclk0";*/ /* Must be removed later */ + #address-cells = <1>; + #size-cells = <0>; + + num-cs = <1>; + + fimc_is_spi_0@0 { + compatible = "samsung,fimc_is_spi1"; + spi-max-frequency = <50000000>; + reg = <0x0>; + fimc_is_spi_pinname = "13470000.pinctrl"; + fimc_is_spi_clk = "gpc3-4"; + fimc_is_spi_ssn = "gpc3-5"; + fimc_is_spi_miso = "gpc3-6"; + fimc_is_spi_mosi = "gpc3-7"; + /*pinctrl-names = "default"; + pinctrl-0 = <&fimc_is_comp_int>;*/ + + controller-data { + cs-gpio = <&gpc3 5 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + i2c@1c { + compatible = "i2c-gpio"; + gpios = <&gpf5 3 0 &gpf5 2 0>; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&fimc_is_vision>; + status = "disabled"; + fimc-is-vision@20 { + compatible = "samsung,exynos5-fimc-is-sensor-6d1"; + reg = <0x35>; + }; + }; + + /* Companion driver */ + fimc_is_companion: fimc_is_companion@14020000 { + compatible = "samsung,exynos5-fimc-is-companion"; + samsung,power-domain = <&pd_cam1>; + clock-names = + /* SENSOR1 MCLK */ + "sclk_isp_sensor1", /* 17 */ + "dout_sclk_isp_sensor1", /* 21 */ + "mout_sclk_isp_sensor1", /* 24 */ + + /* SPI-ISP */ + "gate_isp_spi1", /* 2625 */ + "gate_isp_spi0", /* 2626 */ + "dout_sclk_isp_spi0", /* 2030 */ + "dout_sclk_isp_spi1", /* 2031 */ + "mout_user_mux_sclk_isp_spi0", /* 3296 */ + "mout_user_mux_sclk_isp_spi1", /* 3297 */ + + "dout_clkdiv_pclk_cam1_busperi_167", /* 3317 */ + "dout_clkdiv_pclk_cam1_busperi_84", /* 3318 */ + "mout_user_mux_aclk_cam1_busperi_334", /* 3292 */ + "mout_user_mux_aclk_cam1_bnscsis_133", /* 3293 */ + + /* CMU TOP */ + "dout_aclk_cam1_333", /* 4047 */ + + /* USER_MUX_SEL */ + "aclk_cam1_333", /* 342 */ + "mout_aclk_cam1_333_user"; /* 3225 */ + clocks = + /* SENSOR1 MCLK */ + <&clock 17>, + <&clock 21>, + <&clock 24>, + + /* SPI-ISP */ + <&clock 2625>, + <&clock 2626>, + <&clock 2030>, + <&clock 2031>, + <&clock 3296>, + <&clock 3297>, + + <&clock 3317>, + <&clock 3318>, + <&clock 3292>, + <&clock 3293>, + + /* CMU TOP */ + <&clock 4047>, + + /* USER_MUX_SEL */ + <&clock 342>, + <&clock 3225>; + scenario = <0>; /* Normal, Vision, OIS etc */ + id = <0>; /* bns_id */ + mclk_ch = <1>; + status = "okay"; + }; + + fimc_is_sensor_2t2: fimc-is_sensor_2t2@5A { + compatible = "samsung,exynos5-fimc-is-sensor-2t2"; + + position = <0>; /* Rear:0. Front:1 */ + id = <0>; /* bns_id */ + mclk_ch = <0>; + sensor_i2c_ch = <0>; /* I2C 0 */ + sensor_i2c_addr = <0x5A>; + + gpio_reset = <&gpc0 5 0x1>; /* sensor reset */ + gpio_comp_reset = <&gpc0 7 0x1>; /* companion reset */ + status = "okay"; + + af { + product_name = <7>; /* AK7345 */ + i2c_addr = <0x5A>; + i2c_ch = <2>; /* I2C 2 */ + }; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + + companion { + product_name = <2>; /* 73C2 */ + spi_channel = <1>; + i2c_addr = <0x7A>; + i2c_ch = <0>; /* I2C 0*/ + }; + + ois { + product_name = <1>; /* IDG2030 */ + i2c_addr = <0x48>; + i2c_ch = <2>; /* I2C 2 */ + }; + }; + + hsi2c@136A0000 { + status = "okay"; + clock-frequency = <400000>; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&fimc_is_hsi2c_off>; + pinctrl-1 = <&fimc_is_ois_hsi2c_on>; + pinctrl-2 = <&fimc_is_hsi2c_off>; + ois@24{ + compatible = "rumba,ois"; + reg = <0x24>; + fimc_is_ois_pinname = "13470000.pinctrl"; + fimc_is_ois_sda = "gpc2-4"; + fimc_is_ois_scl = "gpc2-5"; + }; + + af@0c{ + compatible = "samsung,af"; + reg = <0x0c>; + fimc_is_af_pinname = "13470000.pinctrl"; + fimc_is_af_sda = "gpc2-4"; + fimc_is_af_scl = "gpc2-5"; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + compatible = "samsung,exynos5-fimc-is-sensor-4e6-c2"; + + position = <1>; /* Rear:0. Front:1 */ + id = <0>; /* bns_id */ + mclk_ch = <2>; + sensor_i2c_ch = <1>; + sensor_i2c_addr = <0x6A>; + + gpio_reset = <&gpc0 4 0x1>; + gpio_standby = <&gpc0 6 0x1>; + gpio_comp_reset = <&gpc0 7 0x1>; /* companion reset */ + status = "okay"; + + companion { + product_name = <2>; /* 73C2 */ + spi_channel = <1>; + i2c_addr = <0x7A>; + i2c_ch = <0>; /* I2C 0*/ + }; + }; + + fimc_is_sensor_4e6: fimc-is_sensor_4e6@6A { + compatible = "samsung,exynos5-fimc-is-sensor-4e6"; + + position = <1>; /* Rear:0. Front:1 */ + id = <1>; /* bns_id */ + mclk_ch = <2>; + sensor_i2c_ch = <1>; + sensor_i2c_addr = <0x6A>; + + gpio_reset = <&gpc0 4 0x1>; + gpio_standby = <&gpc0 6 0x1>; + status = "okay"; + }; + + fimc_is_sensor0: fimc_is_sensor@14020000 { + scenario = <0>; /* Normal, Vision, OIS etc */ + id = <0>; /* bns_id */ + csi_ch = <0>; + flite_ch = <0>; + is_bns = <1>; + status = "okay"; + }; + + fimc_is_sensor1: fimc_is_sensor@14030000 { + scenario = <0>; /* Normal, Vision, OIS etc */ + id = <1>; /* bns_id */ + csi_ch = <1>; + flite_ch = <1>; + is_bns = <0>; + status = "okay"; + }; + + fimc_is_sensor2: fimc_is_sensor@14110000 { + scenario = <0>; /* Normal, Vision, OIS etc */ + id = <2>; /* bns_id */ + csi_ch = <2>; + flite_ch = <2>; + is_bns = <1>; + status = "okay"; + }; + + fimc_is_sensor3: fimc_is_sensor@14040000 { + scenario = <0>; /* Normal, Vision, OIS etc */ + id = <3>; /* bns_id */ + csi_ch = <3>; + flite_ch = <3>; + is_bns = <0>; + status = "okay"; + }; + + fimc_is@14200000 { + rear_sensor_id = <18>; + front_sensor_id = <21>; + use_module_check; + skip_cal_loading; + use_ois_hsi2c; + + pinctrl-names = "default", "pin0", "pin1", "pin2", "pin3", "pin4", "pin5", "pin6"; + pinctrl-0 = <&fimc_is_mclk0_in &fimc_is_mclk1_in &fimc_is_mclk2_in>; + pinctrl-1 = <&fimc_is_mclk1_fn>; /* companion */ + pinctrl-2 = <&fimc_is_i2c0 &fimc_is_i2c2 &fimc_is_mclk0_fn &fimc_is_mclk1_fn>; /* rear on */ + pinctrl-3 = <&fimc_is_i2c1 &fimc_is_mclk2_fn>; /* front on */ + pinctrl-4 = <&fimc_is_mclk0_in &fimc_is_mclk1_in &fimc_is_mclk2_in>; /* rear off */ + pinctrl-5 = <&fimc_is_i2c0 &fimc_is_mclk1_fn &fimc_is_i2c1 &fimc_is_mclk2_fn>; /* front c2 on */ + pinctrl-6 = <&fimc_is_mclk1_in &fimc_is_mclk2_in>; /* front c2 off */ + pinctrl-7 = <&fimc_is_mclk2_in>; /* front off */ + + #define DVFS_INT_L0 560000 + #define DVFS_INT_L1 550000 + #define DVFS_INT_L2 540000 + #define DVFS_INT_L3 530000 + #define DVFS_INT_L4 520000 + #define DVFS_INT_L5 510000 + + #define DVFS_CAM_L0 550000 + #define DVFS_CAM_L1 540000 + #define DVFS_CAM_L2 530000 + #define DVFS_CAM_L3 520000 + #define DVFS_CAM_L4 510000 + #define DVFS_CAM_L5 500000 + + #define DVFS_MIF_L0 1552000 + #define DVFS_MIF_L1 1456000 + #define DVFS_MIF_L2 1264000 + #define DVFS_MIF_L3 1068000 + #define DVFS_MIF_L4 828000 + #define DVFS_MIF_L5 632000 + + fimc_is_dvfs { + default_int = ; + default_cam = ; + default_mif = ; + default_i2c = <0>; + + front_preview_int = ; + front_preview_cam = ; + front_preview_mif = ; + front_preview_i2c = <0>; + + front_capture_int = ; + front_capture_cam = ; + front_capture_mif = ; + front_capture_i2c = <0>; + + front_video_int = ; + front_video_cam = ; + front_video_mif = ; + front_video_i2c = <0>; + + front_video_whd_int = ; + front_video_whd_cam = ; + front_video_whd_mif = ; + front_video_whd_i2c = <0>; + + front_video_capture_int = ; + front_video_capture_cam = ; + front_video_capture_mif = ; + front_video_capture_i2c = <0>; + + front_video_whd_capture_int = ; + front_video_whd_capture_cam = ; + front_video_whd_capture_mif = ; + front_video_whd_capture_i2c = <0>; + + front_vt1_int = ; + front_vt1_cam = ; + front_vt1_mif = ; + front_vt1_i2c = <0>; + + front_vt2_int = ; + front_vt2_cam = ; + front_vt2_mif = ; + front_vt2_i2c = <0>; + + front_companion_preview_int = ; + front_companion_preview_cam = ; + front_companion_preview_mif = ; + front_companion_preview_i2c = <0>; + + front_companion_capture_int = ; + front_companion_capture_cam = ; + front_companion_capture_mif = ; + front_companion_capture_i2c = <0>; + + front_companion_video_int = ; + front_companion_video_cam = ; + front_companion_video_mif = ; + front_companion_video_i2c = <0>; + + front_companion_video_whd_int = ; + front_companion_video_whd_cam = ; + front_companion_video_whd_mif = ; + front_companion_video_whd_i2c = <0>; + + front_companion_video_capture_int = ; + front_companion_video_capture_cam = ; + front_companion_video_capture_mif = ; + front_companion_video_capture_i2c = <0>; + + front_companion_video_whd_capture_int = ; + front_companion_video_whd_capture_cam = ; + front_companion_video_whd_capture_mif = ; + front_companion_video_whd_capture_i2c = <0>; + + rear_preview_fhd_int = ; + rear_preview_fhd_cam = ; + rear_preview_fhd_mif = ; + rear_preview_fhd_i2c = <0>; + + rear_preview_whd_int = ; + rear_preview_whd_cam = ; + rear_preview_whd_mif = ; + rear_preview_whd_i2c = <0>; + + rear_preview_uhd_int = ; + rear_preview_uhd_cam = ; + rear_preview_uhd_mif = ; + rear_preview_uhd_i2c = <0>; + + rear_capture_int = ; + rear_capture_cam = ; + rear_capture_mif = ; + rear_capture_i2c = <0>; + + rear_video_fhd_int = ; + rear_video_fhd_cam = ; + rear_video_fhd_mif = ; + rear_video_fhd_i2c = <0>; + + rear_video_uhd_int = ; + rear_video_uhd_cam = ; + rear_video_uhd_mif = ; + rear_video_uhd_i2c = <0>; + + rear_video_fhd_capture_int = ; + rear_video_fhd_capture_cam = ; + rear_video_fhd_capture_mif = ; + rear_video_fhd_capture_i2c = <0>; + + rear_video_uhd_capture_int = ; + rear_video_uhd_capture_cam = ; + rear_video_uhd_capture_mif = ; + rear_video_uhd_capture_i2c = <0>; + + dual_preview_int = ; + dual_preview_cam = ; + dual_preview_mif = ; + dual_preview_i2c = <0>; + + dual_capture_int = ; + dual_capture_cam = ; + dual_capture_mif = ; + dual_capture_i2c = <0>; + + dual_video_int = ; + dual_video_cam = ; + dual_video_mif = ; + dual_video_i2c = <0>; + + dual_video_capture_int = ; + dual_video_capture_cam = ; + dual_video_capture_mif = ; + dual_video_capture_i2c = <0>; + + preview_high_speed_fps_int = ; + preview_high_speed_fps_cam = ; + preview_high_speed_fps_mif = ; + preview_high_speed_fps_i2c = <0>; + + video_high_speed_fps_int = ; + video_high_speed_fps_cam = ; + video_high_speed_fps_mif = ; + video_high_speed_fps_i2c = <0>; + + max_int = ; + max_cam = ; + max_mif = ; + max_i2c = <0>; + }; + }; + + pinctrl@13470000 { + fimc_is_ois: fimc-is-ois { + samsung,pins = "gpc2-5", "gpc2-4"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + fimc_is_ois_hsi2c_on: fimc-is-ois-hsi2c-on { + samsung,pins = "gpb0-3", "gpb0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + fimc_is_hsi2c_off: fimc-is-hsi2c-off { + samsung,pins = "gpb0-3", "gpb0-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <3>; + }; + }; + + pcie@157B0000 { + pcie,wlan-gpio = <&gpf4 6 0x1 /* WLAN_EN */ >; + pcie,bt-gpio = <&gpf4 1 0x1 /* BT_EN */ >; + status = "okay"; + }; + + spi_2: spi@14d40000 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + spidev@0 { + #address-celss = <1>; + #size-cells = <1>; + compatible = "mipi_lli_boot_spi,second"; + reg = <0x0>; + spi-max-frequency = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&cp_status>, <&cp_on>, <&cp_off>, <&cp_reset>; + gpios = <&gpa1 0 0xf>, <&gpf5 0 0x1>, <&gpr3 6 0x0>, <&gpf1 1 0x1>; + controller-data { + samsung,spi-feedback-delay = <0>; + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + mipi-lli@10F24000 { + status = "okay"; + memory-region = <&mipi_lli_reserved>; + modem-name = "ss333"; + modems { + ss300 { + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + + ss303 { + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + + ss333 { + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + + xmm7260 { + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + }; + + mphy { + modem-name = "ss333"; + modems { + ss300 { + /* initial-gear is HS-G1 */ + init-gear = <2 1 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + + ss303 { + /* initial-gear is HS-G1 */ + init-gear = <2 1 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + + ss333 { + /* initial-gear is HS-G2 */ + init-gear = <2 2 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + + xmm7260 { + /* initial-gear is HS-G1 */ + init-gear = <2 1 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + }; + }; + }; + + ufs@0x15570000 { + status = "okay"; + ufs,pmd-attr-mode = "FAST"; + ufs,pmd-attr-lane = /bits/ 8 <2>; + ufs,pmd-attr-gear = /bits/ 8 <2>; + ufs,pmd-attr-hs-series = "HS_rate_b"; + ufs-opts-skip-connection-estab; + ufs-rx-adv-fine-gran-sup_en = <1>; + ufs-rx-adv-fine-gran-step = <3>; + ufs-rx-adv-min-activate-time-cap = <10>; + ufs-pa-granularity = <6>; + ufs-pa-tacctivate = <3>; + ufs-pa-hibern8time = <20>; + startup-delay-us = <2000>; + endup-delay-us = <2000>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-universal7420_rev00_battery.dtsi b/arch/arm64/boot/dts/exynos7420-universal7420_rev00_battery.dtsi new file mode 100644 index 000000000000..d0e403dcfcf3 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-universal7420_rev00_battery.dtsi @@ -0,0 +1,182 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + battery { + status = "okay"; + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77833-charger"; + battery,fuelgauge_name = "max77833-fuelgauge"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,polling_time = <10 30 30 30 3600>; + battery,chg_temp_check = <1>; + + + + battery,temp_table_adc = <294 304 314 325 335 345 357 369 382 391 + 406 420 434 449 463 477 494 511 527 544 + 561 580 599 619 638 657 679 700 722 743 + 765 791 816 842 867 893 922 951 979 1008 + 1037 1070 1103 1136 1168 1201 1236 1272 1308 1344 + 1382 1408 1452 1495 1539 1583 1628 1670 1713 1757 + 1803 1843 1885 1937 1984 2031 2080 2120 2171 2218 + 2262 2309 2352 2404 2452 2497 2542 2593 2631 2680 + 2717 2765 2810 2856 2902 2948 2990 3031 3073 3114 + 3132 3156 3188 3219 3251 3282 3314 3343 3373 3402 + 3461 3485 3509 3534 3558 3582 3602 3622 3642 3662 3682>; + battery,temp_table_data = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100) (-110) (-120) (-130) (-140) (-150) (-160) (-170) (-180) (-190) (-200)>; + + battery,chg_temp_table_adc = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 3436>; + battery,chg_temp_table_data = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100) (-110) (-120) (-130) (-140) (-150) (-160) (-170) (-180) (-190) (-200)>; + + battery,input_current_limit = <1100 0 0 1100 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1000 1600 2100 0 0 400 700 1300 300 1000 1500 0 3150 1000 3150 80 1800 1000 1400>; + battery,full_check_current_1st = <200 0 0 200 200 200 200 200 200 0 200 200 200 0 0 200 200 200 200 200 200 0 200 200 200 0 200 200 200>; + battery,full_check_current_2nd = <2400 0 2400 2400 2400 2400 2400 2400 0 2400 2400 2400 0 0 2400 2400 2400 2400 2400 2400 0 2400 2400 2400 2400 2400 2400 2400>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <5>; /* SEC_BATTERY_CHECK_CHARGER */ + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <3>; /* SEC_BATTERY_FULLCHARGED_TIME */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <460>; + battery,chg_high_temp_2nd = <460>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1467>; + battery,chg_charging_limit_current_2nd = <1433>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <94>; + battery,full_condition_vcell = <4250>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4300>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 2>; + io-channel-names = "adc-temp", "chg-adc-temp"; + #io-channel-cells = <2>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4350>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-v_common.dtsi b/arch/arm64/boot/dts/exynos7420-v_common.dtsi new file mode 100644 index 000000000000..f4b2ec66d7f3 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-v_common.dtsi @@ -0,0 +1,1280 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +#include "exynos7420.dtsi" +/ { + model = "Samsung UNIVERSAL7420 board based on EXYNOS7420"; + compatible = "samsung,exynos7420", "samsung,UNIVERSAL7420"; + + memory@40000000 { + device_type = "memory"; + reg = <0x40000000 0xC0000000>; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + common { + compatible = "exynos5433-ion,common"; + size = <0x600000>; + alignment = <0x1000>; + }; + + video { + compatible = "exynos5433-ion,video"; + size = <0xA800000>; + alignment = <0x10000>; + }; + + mfc_fw { + compatible = "exynos5433-ion,mfc_fw"; + size = <0x100000>; + alignment = <0x10000>; + }; + + mfc_nfw { + compatible = "exynos5433-ion,mfc_nfw"; + size = <0x100000>; + alignment = <0x1000>; + }; + + secdma { + compatible = "exynos5433-ion,secdma"; + size = <0x20000>; + alignment = <0x10000>; + }; + + mipi_lli_reserved: mipi_lli { + compatible = "mipi-lli-shmem"; + #memory-region-cells = <0>; + size = <0x400000>; + alignment = <0x400000>; + }; + }; + + aliases { + spi0 = &spi_0; + spi1 = &spi_1; + spi2 = &spi_2; + spi3 = &spi_3; + spi4 = &spi_4; + spi5 = &spi_5; + spi6 = &spi_6; + spi7 = &spi_7; + dsim1 = &dsim_1; + }; + + chosen { + bootargs = "console=ttySAC1,115200n8 ess_setup=0x46000000"; + linux,initrd-start = <0x42000000>; + linux,initrd-end = <0x420FFFFF>; + }; + + fixed-rate-clocks { + oscclk { + compatible = "samsung,exynos7420-oscclk"; + clock-frequency = <24000000>; + }; + }; + + ion { + compatible = "samsung,exynos5430-ion"; + + ion_noncontig_heap { + id-type = <0 0>; + }; + }; + + serial_1: uart@14C20000 { + /* Enable UART channel for debug port */ + status = "okay"; + }; + + serial_2: uart@14C30000 { + status = "okay"; + }; + + serial_3: uart@14C40000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "okay"; + num-slots = <1>; + broken-cd; + bypass-smu; + fixed_volt; + biu-clock-gate; + clock-gate; + enable-cclk-on-suspend; + only_once_tune; + use-fine-tuning; + bypass-for-allpass; + supports-highspeed; + supports-hs200-mode; + supports-ddr200-mode; + enable-cache-control; + use-enable-shift; + qos_int_level = <468000>; + desc-size = <3>; + fifo-depth = <0x40>; + card-detect-delay = <200>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 2 0>; + samsung,dw-mshc-ddr-timing = <3 0 3 2>; + samsung,dw-mshc-hs200-timing = <3 0 3 1>; + samsung,dw-mshc-ddr200-timing = <1 0 2 2>; + samsung,dw-mshc-ddr200-delay-line = <118>; + clk_pin = "gpr0-0"; + clk_addr = "15690000.pinctrl"; + clk_val = <0x4>; + clk_str_num = <6>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_rdqs &sd0_bus1 &sd0_bus4 &sd0_bus8>; + gpios = <&gph1 4 0>; + slot@0 { + reg = <0>; + bus-width = <8>; + }; + }; + + dwmmc2@15560000 { + status = "okay"; + num-slots = <1>; + supports-highspeed; + enable-cclk-on-suspend; + cd-type = <0>; + bypass-smu; + biu-clock-gate; + clock-gate; + use-fine-tuning; + fifo-depth = <0x40>; + card-detect-delay = <200>; + qos_int_level = <468000>; + desc-size = <3>; + bypass-for-allpass; + fix-fmp-size-mismatch; + not-allow-single-dma; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 3 2>; + samsung,dw-mshc-ddr-timing = <3 0 2 1>; + clk_pin = "gpr4-0"; + clk_addr = "10E60000.pinctrl"; + clk_val = <0x2>; + clk_str_num = <6>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4 &dwmmc2_cd_ext_irq>; + vdd_vmmc-supply = <&ldo17_reg>; + vqmmc-supply = <&ldo2_reg>; + gpio-controller; + #gpio-cells = <2>; + cd-gpio = <&gpa2 4 0xf>; + + slot@0 { + reg = <0>; + bus-width = <4>; + disable-wp; + }; + }; + + pinctrl@10580000 { + dwmmc2_cd_ext_irq: dwmmc2_cd_ext_irq { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + pmic_irq: pmic-irq { + samsung,pins = "gpa3-7"; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + + }; + + pinctrl@14870000 { + /* Warm reset information from AP */ + pm_wrsti: pm-wrsti { + samsung,pins = "gpf3-0"; + samsung,pin-con-pdn = <3>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + compatible = "maxim,max77843"; + reg = <0x66>; + pinctrl-names = "default"; + pinctrl-0 = <&chg_irq &vibetonz_pwm>; + max77843,irq-gpio = <&gpa1 4 1>; + max77843,wakeup; + + regulators { + safeout1: ESAFEOUT1 { + regulator-compatible = "safeout1"; + regulator-name = "safeout1_range"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <4900000>; + regulator-boot-on; + }; + + safeout2: ESAFEOUT2 { + regulator-compatible = "safeout2"; + regulator-name = "safeout2_range"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <4900000>; + }; + }; + }; + }; + + haptic { + status = "okay"; + haptic,max_timeout = <10000>; + haptic,duty = <30500>; + haptic,period = <33670>; + haptic,reg2 = <0x82>; + haptic,pwm_id = <1>; + haptic,regulator_name = "VCC_3.0V_MOTOR_AP"; + }; + + rgb { + rgb-name = "led_w", "led_r", "led_g", "led_b"; + }; + + hsi2c@13650000{ + status = "okay"; + + max77843@66 { + status = "okay"; + }; + }; + + muic { + status = "disabled"; + muic,support-list = "MHL","OTG","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Unofficial", + "Fuelgauge test"; + }; + + hsi2c@13660000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <2500000>; + samsung,use-apm; + + s2mps15_pmic@66 { + compatible = "samsung,s2mps15-pmic"; + reg = <0x66>; + interrupts = <7 0 0>; + interrupt-parent = <&gpa3>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_irq &pm_wrsti>; + gpios = <&gpg1 0 0>, <&gpb0 4 0x2>, <&gpg1 1 0x1>; + smpl_warn_en = <0>; /* 1 : enable , 0 : disable*/ + g3d_en = <1>; /* 1 : enable , 0 : disable */ + dvs_en = <0>; /* 1 : enable , 0 : disable */ + buck6en_pin = "gpb0-4"; + buck6en_addr = "13470000.pinctrl"; + /* RTC: wtsr/smpl */ + wtsr_en = <1>; /* enable */ + smpl_en = <1>; /* enable */ + wtsr_timer_val = <3>; /* 1000ms */ + smpl_timer_val = <4>; /* 500ms */ + check_jigon = <0>; /* do not check jigon */ + /* RTC: If it's first boot, reset rtc to 1/1/2014 12:00:00(Wed) */ + init_time,sec = <0>; + init_time,min = <0>; + init_time,hour = <12>; + init_time,mday = <1>; + init_time,mon = <0>; + init_time,year = <114>; + init_time,wday = <3>; + + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck10_reg: BUCK10 { + regulator-name = "vdd_lldo2"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo15_reg: LDO15 { + regulator-name = "vdd_ldo15"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <3>; + }; + + ldo16_reg: LDO16 { + regulator-name = "vdd_ldo16"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo17_reg: LDO17 { + regulator-name = "vmmc"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "vdd_ldo18"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + + ldo19_reg: LDO19 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "vdd_ldo20"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VSIL_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "vdd_ldo23"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + regulator-initial-mode = <1>; + }; + ldo24_reg: LDO24 { + regulator-name = "tsp_avdd_sub"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "VCC_3.0V_MOTOR_AP"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "vdd_ldo26"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + }; + + ldo27_reg: LDO27 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + + s2mpb01_pmic@59 { + compatible = "s2mpb01,s2mpb01-regulator"; + reg = <0x59>; + + regulators { + _ldo1_reg: LDO1 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo2_reg: LDO2 { + regulator-name = "VDDD_MIPI_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: LDO3 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: LDO4 { + regulator-name = "tsp_io_en"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo5_reg: LDO5 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: LDO7 { + regulator-name = "tsp_io_en_sub"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: LDO8 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: LDO9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: LDO10 { + regulator-name = "VDDA_3.0V_VT"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo11_reg: LDO11 { + regulator-name = "VDDA_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo12_reg: LDO12 { + regulator-name = "GES_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + _ldo13_reg: LDO13 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo14_reg: LDO14 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: LDO15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + }; + }; + }; + + i2c@50 { + compatible = "i2c-gpio"; + gpios = <&gpr2 3 0 /* sda */ + &gpr2 4 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + ice5lp@50 { + compatible = "lattice,ice5lp"; + reg = <0x50>; + ice5lp,creset_b = <&gpr2 1 0>; + ice5lp,cdone = <&gpf5 6 0>; + ice5lp,irda_irq = <&gpr2 2 0>; + ice5lp,spi_si_sda = <&gpr2 3 0>; + ice5lp,spi_clk_scl = <&gpr2 4 0>; + ice5lp,spi_en_rstn = <&gpr2 0 0>; + irled,power_type = "LDO"; + irled,ldo = <&gpf1 2 0>; + clocks = <&clock 4300>; + clock-names = "clk_out"; + }; + }; + + pinctrl@10580000 { + gpa2_pull_up: gpa2_pull_up { + samsung,pins = "gpa2-2"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + attn_irq: attn-irq { + samsung,pins = "gpa1-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + attn_input: attn-input { + samsung,pins = "gpa1-6"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&gpa2_pull_up>; + button@1 { + label = "gpio-keys: KEY_POWER"; + interrupts = <2 0 0>; + interrupt-parent = <&gpa2>; + linux,code = <116>; + gpios = <&gpa2 2 0xf>; + gpio-key,wakeup = <1>; + }; + button@2 { + label = "gpio-keys: KEY_VOLUMEDOWN"; + interrupts = <3 0 0>; + interrupt-parent = <&gpa0>; + linux,code = <114>; + gpios = <&gpa0 3 0xf>; + }; + button@3 { + label = "gpio-keys: KEY_VOLUMEUP"; + interrupts = <2 0 0>; + interrupt-parent = <&gpa0>; + linux,code = <115>; + gpios = <&gpa0 2 0xf>; + }; + button@4 { + label = "gpio-keys: KEY_HOMEPAGE"; + interrupts = <5 0 0>; + interrupt-parent = <&gpa0>; + linux,code = <172>; + gpios = <&gpa0 5 0xf>; + gpio-key,wakeup = <1>; + }; + }; + + pinctrl@14CE0000 { + hs_i2c7_bus: hs-i2c7-bus { + samsung,pins = "gpj1-1", "gpj1-0"; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + samsung,pin-con-pdn = <2>; + samsung,pin-pud-pdn = <1>; + }; + }; + + hsi2c@14E10000 { + status = "okay"; + touchscreen@20 { + compatible = "stm,fts_touch"; + reg = <0x49>; + pinctrl-names = "on_state", "off_state"; + pinctrl-0 = <&attn_irq>; + pinctrl-1 = <&attn_input>; + stm,irq_gpio = <&gpa1 6 0>; + stm,irq_type = <8200>; + stm,max_coords = <1599 2559>; /* x y */ + stm,num_lines = <25 16>; /* rx tx */ + stm,regulator_dvdd = "tsp_io"; + stm,regulator_avdd = "tsp_avdd"; + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + usb@15400000 { + status = "okay"; + + dwc3 { + maximum-speed = "high-speed"; + dr_mode = "otg"; + }; + }; + + ipa_pdata { + compatible = "samsung,exynos-ipa"; + + control_temp = <90>; + temp_threshold = <30>; + enabled = <1>; + tdp = <3500>; + boost = <1>; + ros_power = <500>; + little_weight = <1024>; + big_weight = <256>; + gpu_weight = <256>; + little_max_power = <1000>; + big_max_power = <6552>; + gpu_max_power = <3110>; + hotplug_out_threshold = <10>; + hotplug_in_threshold = <0>; + enable_ctlr = <1>; + ctlr.mult = <2>; + ctlr.k_i = <1>; + ctlr.k_d = <0>; + ctlr.feed_forward = <1>; + ctlr.integral_reset_value = <0>; + ctlr.integral_cutoff = <0>; + ctlr.integral_reset_threshold = <10>; + }; + + decon_0: decon_fb { + /* EINT for TE */ + gpios = <&gpg1 2 0xf>; + dsi_mode = <2>; + }; + + decon_1: decon_ext { + /* EINT for TE */ + gpios = <&gpg1 3 0xf>; + dsi_mode = <2>; + }; + + dsim_0: dsim@0x13900000 { + lcd_info = <&s6e3fa2>; + /* MCD_RST, LCD_3.0V_EN, LCD_1.5V_EN */ + gpios = <&gpr3 0 0x1>, <&gpf3 2 0x1>, <&gpf4 3 0x1>; + }; + + dsim_1: dsim@0x13910000 { + compatible = "samsung,exynos5-mipi-dsi"; + reg = <0x13910000 0x1000>; + samsung,power-domain = <&pd_disp>; + interrupts = <0 197 0>; + + clocks = <&clock 222>, <&clock 236>, <&clock 237>, + <&clock 235>, + <&clock 233>; + + clock-names = "pclk_dsim1", "mipi1_rx", "mipi1_bit", + /* rgb data from decon-int to dsim */ + "rgb_vclk1", + /* pclk_ahb2apb_disp0p -> pclk_cp_disp */ + "pclk_disp"; + + pinctrl-names = "turnon_tes", "turnoff_tes"; + pinctrl-0 = <&disp1_teson>; + pinctrl-1 = <&disp1_tesoff>; + + /* number of using data lane */ + data_lane_cnt = <4>; + + lcd_info = <&s6e3fa2>; + + /* SUB_MLCD_RST, SUB_LCD_3.0V_EN, SUB_LCD_1.5V_EN */ + gpios = <&gpr3 1 0x1>, <&gpd4 1 0x1>, <&gpr2 0 0x1>; + + }; + + + s6e3hf2: s6e3hf2_wqxga { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1600 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <20 1 1>; + timing,dsi-hs-clk = <1100>; + timing,dsi-escape-clk = <20>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3fa2: s6e3fa2_fhd { + mode = <2>; + resolution = <1080 1920>; + size = <65 115>; + timing,refresh = <60>; + timing,h-porch = <10 10 10>; + timing,v-porch = <3 4 1>; + timing,dsi-hs-clk = <896>; + timing,dsi-escape-clk=<19>; + mic = <0>; + mic_ver=<2>; + type_of_ddi=<0>; + }; + hdmi@13970000 { + /* all bit clock supports: 1, not support: 0 */ + audio_master_clk = <1>; + gpios = <&gpa3 0 0xf>; + }; + + i2s0: i2s@11440000 { + /*samsung,supports-esa-dma;*/ + /*samsung,supports-sec-compr;*/ + status = "okay"; + }; + + i2s1: i2s@14D60000 { + status = "okay"; + }; + + audio_codec_dummy: dummy-codec { + compatible = "samsung,dummy-codec"; + status = "okay"; + }; + + i2s_dummy: dummy-i2s { + compatible = "samsung,dummy-i2s"; + status = "okay"; + }; + + sound { + compatible = "samsung,zero-arizona"; + samsung,audio-cpu = <&i2s0 /* primary */ + &i2s_dummy + &i2s_dummy + &i2s0 /* secondary */ + &i2s_dummy /* voice wakeup */ + &i2s_dummy /* dsp trace */ + &eax /* eax0 ~ 3 */ + &eax + &eax + &eax>; + samsung,audio-codec = <&audio_codec + &audio_codec + &audio_codec + &audio_codec + &audio_codec_dummy + &audio_codec_dummy + &audio_codec + &audio_codec + &audio_codec + &audio_codec>; + status = "okay"; + }; + + hdmi { + compatible = "samsung,zero-hdmi"; + samsung,audio-cpu = <&i2s1>; + samsung,audio-codec = <&audio_codec_dummy>; + status = "okay"; + }; + + amba { + adma: adma@11420000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x11420000 0x1000>; + interrupts = <0 97 0>; + clocks = <&clock 400>; + clock-names = "apb_pclk"; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <16>; + #dma-mcode-addr = <0x03047000>; + samsung,lpass-subip; + status = "ok"; + }; + }; + + spi_6: spi@14390000 { + /*clocks = <&clock 2626>, <&clock 4083>;*/ /* Workaround for SPI read in A5 */ + /* clock-names = "spi", "spi_busclk0";*/ /* Must be removed later */ + #address-cells = <1>; + #size-cells = <0>; + + num-cs = <1>; + + fimc_is_spi_0@0 { + compatible = "samsung,fimc_is_spi0"; + fimc_is_spi_clk = "gpc3-0"; + fimc_is_spi_ssn = "gpc3-1"; + fimc_is_spi_miso = "gpc3-2"; + fimc_is_spi_mosi = "gpc3-3"; + spi-max-frequency = <50000000>; + reg = <0x0>; + + controller-data { + cs-gpio = <&gpc0 6 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_7: spi@143A0000 { + /*clocks = <&clock 2626>, <&clock 4083>;*/ /* Workaround for SPI read in A5 */ + /* clock-names = "spi", "spi_busclk0";*/ /* Must be removed later */ + #address-cells = <1>; + #size-cells = <0>; + + num-cs = <1>; + + fimc_is_spi_0@0 { + compatible = "samsung,fimc_is_spi1"; + fimc_is_spi_clk = "gpc3-4"; + fimc_is_spi_ssn = "gpc3-5"; + fimc_is_spi_miso = "gpc3-6"; + fimc_is_spi_mosi = "gpc3-7"; + spi-max-frequency = <50000000>; + reg = <0x0>; + /*pinctrl-names = "default"; + pinctrl-0 = <&fimc_is_comp_int>;*/ + + controller-data { + cs-gpio = <&gpc3 5 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + /* Companion driver */ + fimc_is_companion: fimc_is_companion@14020000 { + compatible = "samsung,exynos5-fimc-is-companion"; + samsung,power-domain = <&pd_cam1>; + clock-names = + /* SENSOR0 MCLK */ + "sclk_isp_sensor0", /* 16 */ + "dout_sclk_isp_sensor0", /* 20 */ + "mout_sclk_isp_sensor0", /* 23 */ + + /* SPI-ISP */ + "gate_isp_spi1", /* 2625 */ + "gate_isp_spi0", /* 2626 */ + "dout_sclk_isp_spi0", /* 2030 */ + "dout_sclk_isp_spi1", /* 2031 */ + "mout_user_mux_sclk_isp_spi0", /* 3296 */ + "mout_user_mux_sclk_isp_spi1", /* 3297 */ + + "dout_clkdiv_pclk_cam1_busperi_167", /* 3317 */ + "dout_clkdiv_pclk_cam1_busperi_84", /* 3318 */ + "mout_user_mux_aclk_cam1_busperi_334", /* 3292 */ + "mout_user_mux_aclk_cam1_bnscsis_133", /* 3293 */ + + /* CMU TOP */ + "dout_aclk_cam1_333", /* 4047 */ + + /* USER_MUX_SEL */ + "aclk_cam1_333", /* 342 */ + "mout_aclk_cam1_333_user"; /* 3225 */ + clocks = + /* SENSOR0 MCLK */ + <&clock 16>, + <&clock 20>, + <&clock 23>, + + /* SPI-ISP */ + <&clock 2625>, + <&clock 2626>, + <&clock 2030>, + <&clock 2031>, + <&clock 3296>, + <&clock 3297>, + + <&clock 3317>, + <&clock 3318>, + <&clock 3292>, + <&clock 3293>, + + /* CMU TOP */ + <&clock 4047>, + + /* USER_MUX_SEL */ + <&clock 342>, + <&clock 3225>; + scenario = <0>; + mclk_ch = <0>; + spi_ch = <1>; + gpio_reset = <&gpc0 1 0x1>; /* sensor reset */ + gpio_comp_reset = <&gpc0 6 0x1>; /* companion reset */ + status = "okay"; + }; + + fimc_is_sensor0: fimc_is_sensor@14020000 { + scenario = <0>; + gpio_reset = <&gpc0 1 0x1>; + id = <0>; + mclk_ch = <0>; + csi_ch = <0>; + flite_ch = <0>; + i2c_ch = <0x0200>; + i2c_addr = <0x3434>; + flash_first_gpio = <2>; + flash_second_gpio = <3>; + is_bns = <1>; + status = "okay"; + }; + + fimc_is_sensor1: fimc_is_sensor@14030000 { + scenario = <0>; + gpio_reset = <&gpc0 4 0x1>; + gpio_standby = <&gpc0 0 0x1>; + id = <1>; + mclk_ch = <2>; + csi_ch = <1>; + flite_ch = <1>; + i2c_ch = <1>; + i2c_addr = <0x6A>; + is_bns = <0>; + status = "okay"; + }; + + fimc_is_sensor2: fimc_is_sensor@14110000 { + scenario = <0>; + gpio_reset = <&gpc0 1 0x1>; + id = <2>; + mclk_ch = <2>; + csi_ch = <2>; + flite_ch = <2>; + i2c_ch = <0x0000>; + i2c_addr = <0x0000>; + flash_first_gpio = <0>; + flash_second_gpio = <0>; + is_bns = <1>; + status = "okay"; + }; + + fimc_is_sensor3: fimc_is_sensor@14040000 { + scenario = <0>; + gpio_reset = <&gpc0 4 0x1>; + gpio_standby = <&gpc0 0 0x1>; + id = <3>; + mclk_ch = <3>; + csi_ch = <3>; + flite_ch = <3>; + i2c_ch = <0x0000>; + i2c_addr = <0x0000>; + is_bns = <0>; + status = "okay"; +}; + + fimc_is@14200000 { + pinctrl-names = "default", "pin0", "pin1", "pin2"; + pinctrl-0 = <&fimc_is_mclk0_in &fimc_is_mclk1_in &fimc_is_mclk2_in>; + pinctrl-1 = <&fimc_is_mclk0_fn>; /* companion */ + pinctrl-2 = <&fimc_is_i2c0 &fimc_is_i2c2 &fimc_is_mclk0_fn &fimc_is_flash>; /* main */ + pinctrl-3 = <&fimc_is_i2c1 &fimc_is_mclk2_fn>; /* front */ + + #define DVFS_INT_L0 690000 + #define DVFS_INT_L1 680000 + #define DVFS_INT_L2 670000 + #define DVFS_INT_L3 660000 + #define DVFS_INT_L4 650000 + #define DVFS_INT_L5 640000 + #define DVFS_INT_L6 630000 + #define DVFS_INT_L7 620000 + #define DVFS_INT_L8 610000 + #define DVFS_INT_L9 600000 + + #define DVFS_CAM_L0 590000 + #define DVFS_CAM_L1 580000 + #define DVFS_CAM_L2 570000 + #define DVFS_CAM_L3 560000 + #define DVFS_CAM_L4 550000 + #define DVFS_CAM_L5 540000 + #define DVFS_CAM_L6 530000 + #define DVFS_CAM_L7 520000 + #define DVFS_CAM_L8 510000 + #define DVFS_CAM_L9 500000 + + #define DVFS_MIF_L0 1552000 + #define DVFS_MIF_L1 1456000 + #define DVFS_MIF_L2 1264000 + #define DVFS_MIF_L3 1068000 + #define DVFS_MIF_L4 828000 + #define DVFS_MIF_L5 632000 + + fimc_is_dvfs { + default_int = ; + default_cam = ; + default_mif = ; + default_i2c = <0>; + + front_preview_int = ; + front_preview_cam = ; + front_preview_mif = ; + front_preview_i2c = <0>; + + front_capture_int = ; + front_capture_cam = ; + front_capture_mif = ; + front_capture_i2c = <0>; + + front_video_int = ; + front_video_cam = ; + front_video_mif = ; + front_video_i2c = <0>; + + front_video_whd_int = ; + front_video_whd_cam = ; + front_video_whd_mif = ; + front_video_whd_i2c = <0>; + + front_video_capture_int = ; + front_video_capture_cam = ; + front_video_capture_mif = ; + front_video_capture_i2c = <0>; + + front_video_whd_capture_int = ; + front_video_whd_capture_cam = ; + front_video_whd_capture_mif = ; + front_video_whd_capture_i2c = <0>; + + front_vt1_int = ; + front_vt1_cam = ; + front_vt1_mif = ; + front_vt1_i2c = <0>; + + front_vt2_int = ; + front_vt2_cam = ; + front_vt2_mif = ; + front_vt2_i2c = <0>; + + rear_preview_fhd_int = ; + rear_preview_fhd_cam = ; + rear_preview_fhd_mif = ; + rear_preview_fhd_i2c = <0>; + + rear_preview_whd_int = ; + rear_preview_whd_cam = ; + rear_preview_whd_mif = ; + rear_preview_whd_i2c = <0>; + + rear_preview_uhd_int = ; + rear_preview_uhd_cam = ; + rear_preview_uhd_mif = ; + rear_preview_uhd_i2c = <0>; + + rear_capture_int = ; + rear_capture_cam = ; + rear_capture_mif = ; + rear_capture_i2c = <0>; + + rear_video_fhd_int = ; + rear_video_fhd_cam = ; + rear_video_fhd_mif = ; + rear_video_fhd_i2c = <0>; + + rear_video_uhd_int = ; + rear_video_uhd_cam = ; + rear_video_uhd_mif = ; + rear_video_uhd_i2c = <0>; + + rear_video_fhd_capture_int = ; + rear_video_fhd_capture_cam = ; + rear_video_fhd_capture_mif = ; + rear_video_fhd_capture_i2c = <0>; + + rear_video_uhd_capture_int = ; + rear_video_uhd_capture_cam = ; + rear_video_uhd_capture_mif = ; + rear_video_uhd_capture_i2c = <0>; + + dual_preview_int = ; + dual_preview_cam = ; + dual_preview_mif = ; + dual_preview_i2c = <0>; + + dual_capture_int = ; + dual_capture_cam = ; + dual_capture_mif = ; + dual_capture_i2c = <0>; + + dual_video_int = ; + dual_video_cam = ; + dual_video_mif = ; + dual_video_i2c = <0>; + + dual_video_capture_int = ; + dual_video_capture_cam = ; + dual_video_capture_mif = ; + dual_video_capture_i2c = <0>; + + high_speed_fps_int = ; + high_speed_fps_cam = ; + high_speed_fps_mif = ; + high_speed_fps_i2c = <0>; + + max_int = ; + max_cam = ; + max_mif = ; + max_i2c = <0>; + }; + }; + + pcie@157B0000 { + status = "okay"; + }; + + mipi-lli@10F24000 { + status = "okay"; + memory-region = <&mipi_lli_reserved>; + modem-name = "ss303"; + modems { + ss300 { + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + + ss303 { + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + + xmm7260 { + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + }; + + mphy { + modem-name = "ss303"; + modems { + ss300 { + /* initial-gear is HS-G1 */ + init-gear = <2 1 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + + ss303 { + /* initial-gear is HS-G1 */ + init-gear = <2 1 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + + xmm7260 { + /* initial-gear is HS-G1 */ + init-gear = <2 1 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-vlte_eur_open_00.dts b/arch/arm64/boot/dts/exynos7420-vlte_eur_open_00.dts new file mode 100644 index 000000000000..9cd4cd86f8d4 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-vlte_eur_open_00.dts @@ -0,0 +1,436 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-v_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +/ { + model = "Samsung VLTE EUR revision 00 board(EVT1) based on EXYNOS7420"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <255>; + compatible = "samsung,V LTE EVT1 EUR,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 139 226 + 295 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + mic_bias_gpio = <&gpf1 0 0>; + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + vcc_i2c-supply = <&ldo16_reg>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + /* SSAM */ + pinctrl@13470000 { + mem_i2c: mem-i2c { + samsung,pins = "gpd0-0", "gpd0-1"; + samsung,pin-pud = <0>; + }; + }; + + pinctrl@14870000 { + cam_i2c: cam_i2c { + samsung,pins = "gpf5-2", "gpf5-3"; + samsung,pin-pud = <0>; + }; + }; + + pinctrl@15690000 { + grip_i2c: grip_i2c { + samsung,pins = "gpr2-3", "gpr2-4"; + samsung,pin-pud = <0>; + }; + + touch_i2c: touch_i2c { + samsung,pins = "gpr2-1", "gpr3-3"; + samsung,pin-pud = <0>; + }; + }; + + + pinctrl@10580000 { + /* MAIN TSP*/ + attn_irq: attn-irq { + samsung,pins = "gpa1-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + attn_input: attn-input { + samsung,pins = "gpa1-6"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + /* SUB TSP*/ + attn_irq_sub: attn-irq-sub { + samsung,pins = "gpa1-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + attn_input_sub: attn-input-sub { + samsung,pins = "gpa1-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + }; + +/* + pinctrl@14CC0000 { + hs_i2c2_bus: hs-i2c2-bus { + samsung,pins = "gpd0-2", "gpd0-3"; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + samsung,pin-con-pdn = <2>; + samsung,pin-pud-pdn = <1>; + }; + }; + + pinctrl@14CE0000 { + hs_i2c5_bus: hs-i2c5-bus { + samsung,pins = "gpj1-1", "gpj1-0"; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + samsung,pin-con-pdn = <2>; + samsung,pin-pud-pdn = <1>; + }; + }; +*/ + + /* HSIC7 */ + hsi2c@14E10000 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <400000>; + status = "okay"; + touchscreen@20 { + compatible = "synaptics,rmi4"; + reg = <0x20>; + pinctrl-names = "on_state", "off_state"; + pinctrl-0 = <&attn_irq>; + pinctrl-1 = <&attn_input>; + synaptics,irq_gpio = <&gpa1 6 0>; + synaptics,irq_type = <8200>; + synaptics,max_coords = <1079 1919>; /* x y */ + synaptics,num_lines = <28 16>; /* rx tx */ + synaptics,regulator_dvdd = "tsp_io_en"; + synaptics,regulator_avdd = "tsp_avdd"; + synaptics,project_name = "V"; + }; + }; + + /* HSIC3 */ + hsi2c@14E70000 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <400000>; + status = "okay"; + touchscreen_sub@20 { + compatible = "synaptics,rmi4"; + reg = <0x20>; + pinctrl-names = "on_state", "off_state"; + pinctrl-0 = <&attn_irq_sub>; + pinctrl-1 = <&attn_input_sub>; + synaptics,irq_gpio = <&gpa1 5 0>; + synaptics,irq_type = <8200>; + synaptics,max_coords = <1079 1919>; /* x y */ + synaptics,num_lines = <28 16>; /* rx tx */ + synaptics,regulator_dvdd = "tsp_io_en_sub"; + synaptics,regulator_avdd = "tsp_avdd_sub"; + synaptics,project_name = "V"; + synaptics,device_num = <2>; /* sub */ + }; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_battery_02.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_battery_02.dtsi new file mode 100644 index 000000000000..7d11824ee2c3 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_battery_02.dtsi @@ -0,0 +1,360 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + wchg_ctl: wchg-ctl { + samsung,pins = "gpf5-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &wpc_sda &wpc_scl>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + /*battery,wpc_temp_check = <1>;*/ + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <261 307 363 413 563 655 714 754 805 882 1025 1192 1265 1377 1578 + 1798 2032 2268 2493 2720 2959 3155 3266 3340 3495 3627 3727>; + battery,temp_table_data = <900 850 800 750 700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <542 638 665 733 782 855 1000 1168 1237 1341 1530 + 1736 1949 2170 2378 2583 2801 2975 3081 3149 3284 3413 3504>; + battery,chg_temp_table_data = <700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2550 1000 2550 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <86>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <530>; + battery,chg_high_temp_2nd = <530>; + battery,chg_high_temp_recovery = <525>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <390>; + battery,wpc_high_temp_recovery = <200>; + battery,wpc_charging_limit_current = <700>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc"; + #io-channel-cells = <3>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1603>; + fuelgauge,qrtable30 = <0x1005>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x1B45>; + fuelgauge,temp_cocold = <0x194D>; + fuelgauge,rcomp0 = <0x35>; + fuelgauge,rcomp_charging = <0x35>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x1438>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_battery_05.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_battery_05.dtsi new file mode 100644 index 000000000000..eb75a6b3f92f --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_battery_05.dtsi @@ -0,0 +1,370 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging &wpc_sda &wpc_scl>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + /*battery,wpc_temp_check = <1>;*/ + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <261 307 363 413 563 655 714 754 805 882 1025 1192 1265 1377 1578 + 1798 2032 2268 2493 2720 2959 3155 3266 3340 3495 3627 3727>; + battery,temp_table_data = <900 850 800 750 700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <542 638 665 733 782 855 1000 1168 1237 1341 1530 + 1736 1949 2170 2378 2583 2801 2975 3081 3149 3284 3413 3504>; + battery,chg_temp_table_data = <700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2550 1000 2550 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <86>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <530>; + battery,chg_high_temp_2nd = <530>; + battery,chg_high_temp_recovery = <525>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <390>; + battery,wpc_high_temp_recovery = <200>; + battery,wpc_charging_limit_current = <700>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1603>; + fuelgauge,qrtable30 = <0x1005>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x1B45>; + fuelgauge,temp_cocold = <0x194D>; + fuelgauge,rcomp0 = <0x35>; + fuelgauge,rcomp_charging = <0x35>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x1438>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_chn_00.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_00.dts new file mode 100644 index 000000000000..ceddb41720a4 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_00.dts @@ -0,0 +1,943 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_chn_00.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE CHN rev04 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO-F LTE CHN EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <0>; + ssp,mag-array = /bits/ 8 <3 81 179 63 170 42 0 69 207 55 + 152 229 56 164 255 249 2 131 111 229 + 188 250 29 147 12 184 176>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "p61"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p61-mosipin = <&gpg4 3 0>; + p61-misopin = <&gpg4 2 0>; + p61-cspin = <&gpg4 1 0>; + p61-clkpin = <&gpg4 0 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + cs-gpio = <&gpg4 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + sound { + mixer-paths = "mixer_paths_cdma_03.xml"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + hsi2c@14E00000 { + pn547@2B { + pn547,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + usb_notifier { + samsung,can-disable-usb; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_chn_01.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_01.dts new file mode 100644 index 000000000000..94f2a71d1abf --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_01.dts @@ -0,0 +1,994 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_chn_01.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO-F LTE CHN rev05 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <7>; + compatible = "samsung,ZERO-F LTE CHN EVT1 mPOP,r05", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <0>; + ssp,mag-array = /bits/ 8 <3 81 179 63 170 42 0 69 207 55 + 152 229 56 164 255 249 2 131 111 229 + 188 250 29 147 12 184 176>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + rgb { + normal_powermode_current = <30>; + low_powermode_current = <5>; + brightness_ratio_r = <133>; + brightness_ratio_g = <100>; + brightness_ratio_b = <167>; + }; + + spi_3: spi@14d50000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "p61"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p61-mosipin = <&gpg4 3 0>; + p61-misopin = <&gpg4 2 0>; + p61-cspin = <&gpg4 1 0>; + p61-clkpin = <&gpg4 0 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + cs-gpio = <&gpg4 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + sound { + mixer-paths = "mixer_paths_cdma_03.xml"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + hsi2c@14E00000 { + pn547@2B { + pn547,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + usb_notifier { + samsung,can-disable-usb; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_chn_02.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_02.dts new file mode 100644 index 000000000000..1c2b1a428db0 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_02.dts @@ -0,0 +1,977 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_05.dtsi" +#include "exynos7420-zeroflte_gpio_chn_02.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO-F LTE CHN rev06a board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <8>; + model_info-hw_rev_end = <8>; + compatible = "samsung,ZERO-F LTE CHN EVT1 mPOP,r06a", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <0>; + ssp,mag-array = /bits/ 8 <3 81 179 63 170 42 0 69 207 55 + 152 229 56 164 255 249 2 131 111 229 + 188 250 29 147 12 184 176>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "p61"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p61-mosipin = <&gpg4 3 0>; + p61-misopin = <&gpg4 2 0>; + p61-cspin = <&gpg4 1 0>; + p61-clkpin = <&gpg4 0 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + cs-gpio = <&gpg4 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + sound { + mixer-paths = "mixer_paths_cdma_03.xml"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + hsi2c@14E00000 { + pn547@2B { + pn547,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + usb_notifier { + samsung,can-disable-usb; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_chn_03.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_03.dts new file mode 100644 index 000000000000..fb2266c2733f --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_03.dts @@ -0,0 +1,931 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_chn_battery_06.dtsi" +#include "exynos7420-zeroflte_gpio_chn_03.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO-F LTE CHN rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <9>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO-F LTE CHN EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <0>; + ssp,mag-array = /bits/ 8 <3 81 179 63 170 42 0 69 207 55 + 152 229 56 164 255 249 2 131 111 229 + 188 250 29 147 12 184 176>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "p61"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p61-mosipin = <&gpg4 3 0>; + p61-misopin = <&gpg4 2 0>; + p61-cspin = <&gpg4 1 0>; + p61-clkpin = <&gpg4 0 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + cs-gpio = <&gpg4 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + hsi2c@14E00000 { + pn547@2B { + pn547,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + usb_notifier { + samsung,can-disable-usb; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_chn_04.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_04.dts new file mode 100644 index 000000000000..43857b73ae3e --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_04.dts @@ -0,0 +1,911 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_chn_battery_06.dtsi" +#include "exynos7420-zeroflte_gpio_chn_04.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO-F LTE CHN rev07 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <10>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO-F LTE CHN EVT1 mPOP,r07", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <0>; + ssp,mag-array = /bits/ 8 <3 81 179 63 170 42 0 69 207 55 + 152 229 56 164 255 249 2 131 111 229 + 188 250 29 147 12 184 176>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "p61"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p61-mosipin = <&gpg4 3 0>; + p61-misopin = <&gpg4 2 0>; + p61-cspin = <&gpg4 1 0>; + p61-clkpin = <&gpg4 0 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + cs-gpio = <&gpg4 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + hsi2c@14E00000 { + pn547@2B { + pn547,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + usb_notifier { + samsung,can-disable-usb; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_chn_battery_06.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_battery_06.dtsi new file mode 100644 index 000000000000..229f87339881 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_chn_battery_06.dtsi @@ -0,0 +1,350 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + hsi2c@14E20000 { /* hsi2c8 */ + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + status = "okay"; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + /*battery,wpc_temp_check = <1>;*/ + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <261 307 363 413 563 655 714 754 805 882 1025 1192 1265 1377 1578 + 1798 2032 2268 2493 2720 2959 3155 3266 3340 3495 3627 3727>; + battery,temp_table_data = <900 850 800 750 700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <542 638 665 733 782 855 1000 1168 1237 1341 1530 + 1736 1949 2170 2378 2583 2801 2975 3081 3149 3284 3413 3504>; + battery,chg_temp_table_data = <700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2550 1000 2550 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <86>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <510>; + battery,chg_high_temp_2nd = <510>; + battery,chg_high_temp_recovery = <500>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <390>; + battery,wpc_high_temp_recovery = <200>; + battery,wpc_charging_limit_current = <700>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1603>; + fuelgauge,qrtable30 = <0x1005>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x1B45>; + fuelgauge,temp_cocold = <0x194D>; + fuelgauge,rcomp0 = <0x35>; + fuelgauge,rcomp_charging = <0x35>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x1438>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_eur_battery_08.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_battery_08.dtsi new file mode 100644 index 000000000000..0baa988e49da --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_battery_08.dtsi @@ -0,0 +1,351 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + hsi2c@13670000 { /* hsi2c5 */ + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + status = "okay"; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + /*battery,wpc_temp_check = <1>;*/ + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <261 307 363 413 563 655 714 754 805 882 1025 1192 1265 1377 1578 + 1798 2032 2268 2493 2720 2959 3155 3266 3340 3495 3627 3727>; + battery,temp_table_data = <900 850 800 750 700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <542 638 665 733 782 855 1000 1168 1237 1341 1530 + 1736 1949 2170 2378 2583 2801 2975 3081 3149 3284 3413 3504>; + battery,chg_temp_table_data = <700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2550 1000 2550 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <86>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <3120 3101 3061 3038 3001 2956 2920 2887 2856 2814 + 2793 2754 2720 2677 2641 2613 2572 2531 2502 2467 2436>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 405 400 395 + 390 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <530>; + battery,chg_high_temp_2nd = <530>; + battery,chg_high_temp_recovery = <525>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <390>; + battery,wpc_high_temp_recovery = <200>; + battery,wpc_charging_limit_current = <700>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1603>; + fuelgauge,qrtable30 = <0x1005>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x1B45>; + fuelgauge,temp_cocold = <0x194D>; + fuelgauge,rcomp0 = <0x35>; + fuelgauge,rcomp_charging = <0x35>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x1438>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_00.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_00.dts new file mode 100644 index 000000000000..ff55304774de --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_00.dts @@ -0,0 +1,734 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery.dtsi" +#include "exynos7420-zeroflte_gpio_00.dtsi" +#include "exynos7420-zerolte_modem-shannon_ds.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE EUR rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <0>; + compatible = "samsung,ZERO-F LTE EUR EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10227 (-404) 215 (-666) 8429 (-61) 853 (-1154) 11138>; /* Only for YAS532 */ + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + mic_bias_gpio = <&gpf1 0 0>; + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13650000{ + max77833@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VSIL_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3ha0_wqhd>; + }; + + s6e3ha0_wqhd: s6e3ha0_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <20>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + fimc_is@14200000 { + pinctrl-names = "default", "release"; + pinctrl-0 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_mclk2_out>; + pinctrl-1 = <>; + }; + + fimc_is_sensor_imx240: fimc-is_sensor_imx240@34 { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_2p2: fimc-is_sensor_2p2@5A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out &fimc_is_mclk2_out &fimc_is_i2c0 &fimc_is_i2c1>; + pinctrl-2 = <&fimc_is_mclk1_fn &fimc_is_mclk2_fn &fimc_is_i2c0 &fimc_is_i2c1>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; + + simslot_count { + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_01.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_01.dts new file mode 100644 index 000000000000..c7344961ba65 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_01.dts @@ -0,0 +1,888 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery.dtsi" +#include "exynos7420-zeroflte_gpio_01.dtsi" +#include "exynos7420-zerolte_modem-shannon_ds.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE EUR rev01 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <3>; + model_info-hw_rev_end = <3>; + compatible = "samsung,ZERO-F LTE EUR EVT1 mPOP,r01", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10227 (-404) 215 (-666) 8429 (-61) 853 (-1154) 11138>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + + simslot_count { + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_02.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_02.dts new file mode 100644 index 000000000000..bc05a8a79900 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_02.dts @@ -0,0 +1,887 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_02.dtsi" +#include "exynos7420-zerolte_modem-shannon_ds.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE EUR rev02 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <5>; + model_info-hw_rev_end = <5>; + compatible = "samsung,ZERO-F LTE EUR EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10227 (-404) 215 (-666) 8429 (-61) 853 (-1154) 11138>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + simslot_count { + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_03.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_03.dts new file mode 100644 index 000000000000..951b45140d54 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_03.dts @@ -0,0 +1,897 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_03.dtsi" +#include "exynos7420-zerolte_modem-shannon_ds.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE EUR rev03,rev04(0110) board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <6>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO-F LTE EUR EVT1 mPOP,r03", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10227 (-404) 215 (-666) 8429 (-61) 853 (-1154) 11138>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + pcie_clkreq_l: pcie_clkreq_l { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pcie1@157B0000 { + pinctrl-0 = <&pcie1_clkreq &pcie_clkreq_l &pcie1_perst &pcie_wake &pcie1_reset_clear &cfg_wlanen &wlan_host_wake &pcie_eint>; + pinctrl-1 = <&pcie1_clkreq &pcie_clkreq_l &pcie1_perst &pcie_wake &pcie1_reset &cfg_wlanen &wlan_host_wake &pcie_eint>; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + simslot_count { + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_04.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_04.dts new file mode 100644 index 000000000000..a3e25acfcaf5 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_04.dts @@ -0,0 +1,897 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_04.dtsi" +#include "exynos7420-zerolte_modem-shannon_ds.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE EUR rev04(0111) board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <7>; + compatible = "samsung,ZERO-F LTE EUR EVT1 mPOP,r04", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10227 (-404) 215 (-666) 8429 (-61) 853 (-1154) 11138>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + pcie_clkreq_l: pcie_clkreq_l { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pcie1@157B0000 { + pinctrl-0 = <&pcie1_clkreq &pcie_clkreq_l &pcie1_perst &pcie_wake &pcie1_reset_clear &cfg_wlanen &wlan_host_wake &pcie_eint>; + pinctrl-1 = <&pcie1_clkreq &pcie_clkreq_l &pcie1_perst &pcie_wake &pcie1_reset &cfg_wlanen &wlan_host_wake &pcie_eint>; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + simslot_count { + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_05.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_05.dts new file mode 100644 index 000000000000..4db8847e82d6 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_eur_open_05.dts @@ -0,0 +1,898 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_05.dtsi" +#include "exynos7420-zeroflte_gpio_05.dtsi" +#include "exynos7420-zerolte_modem-shannon_ds.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO-F LTE EUR rev05 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <8>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO-F LTE EUR EVT1 mPOP,r05", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10213 (-360) 154 (-206) 8673 (-59) (-66) (-59) 10479>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + pcie_clkreq_l: pcie_clkreq_l { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pcie1@157B0000 { + pinctrl-0 = <&pcie1_clkreq &pcie_clkreq_l &pcie1_perst &pcie_wake &pcie1_reset_clear &cfg_wlanen &wlan_host_wake &pcie_eint>; + pinctrl-1 = <&pcie1_clkreq &pcie_clkreq_l &pcie1_perst &pcie_wake &pcie1_reset &cfg_wlanen &wlan_host_wake &pcie_eint>; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + simslot_count { + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_00.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_00.dtsi new file mode 100644 index 000000000000..8284f588b8f0 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_00.dtsi @@ -0,0 +1,380 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE HW REV00 (b0000) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* VOICE_WAKE */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* VOICE_RST_N */ + PIN_SLP(gpz0-6, PREV, NONE); /* MAIN_MIC_CTL */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd0-1, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* TOUCH_CSDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* TOUCH_CSCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* VOICE_RXD */ + PIN_SLP(gpd1-5, OUT1, UP); /* VOICE_TXD */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* DISP_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* DISP_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + PIN_IN(gpf1-4, NONE, LV1); /* VTCAM_ID */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, PREV, NONE); /* IR_LED_EN */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, NONE); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* NC*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_01.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_01.dtsi new file mode 100644 index 000000000000..be82cf52ae25 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_01.dtsi @@ -0,0 +1,389 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE HW REV01 (b0011) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_02.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_02.dtsi new file mode 100644 index 000000000000..22057af442a1 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_02.dtsi @@ -0,0 +1,390 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE HW REV02 (b0101) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_03.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_03.dtsi new file mode 100644 index 000000000000..2e60b37b5526 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_03.dtsi @@ -0,0 +1,390 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE HW REV03, REV04 (b0110) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_04.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_04.dtsi new file mode 100644 index 000000000000..3452dd9c2a3a --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_04.dtsi @@ -0,0 +1,390 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE HW REV04 (b0111) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_05.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_05.dtsi new file mode 100644 index 000000000000..a7f62dcd2d62 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_05.dtsi @@ -0,0 +1,398 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE HW REV05 (b1000) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* WCP_TSB */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* WCP_TSB */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_00.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_00.dtsi new file mode 100644 index 000000000000..62bdb7a21c89 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_00.dtsi @@ -0,0 +1,387 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CHN HW REV04 (b0110) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_01.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_01.dtsi new file mode 100644 index 000000000000..91372df29963 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_01.dtsi @@ -0,0 +1,396 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CHN HW REV05 (b0111) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_02.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_02.dtsi new file mode 100644 index 000000000000..a5f612c4634e --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_02.dtsi @@ -0,0 +1,395 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CHN HW REV06A (b1000) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_03.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_03.dtsi new file mode 100644 index 000000000000..ec518e2f4e38 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_03.dtsi @@ -0,0 +1,410 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CHN HW REV06 (b1001) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd5-3, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, UP); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, UP); /* SUB_PMIC_SDA_1P8 */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_04.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_04.dtsi new file mode 100644 index 000000000000..4aaaf2f5562f --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_chn_04.dtsi @@ -0,0 +1,410 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CHN HW REV06 (b1010) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd5-3, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, UP); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, UP); /* SUB_PMIC_SDA_1P8 */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_00.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_00.dtsi new file mode 100644 index 000000000000..684acc413bea --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_00.dtsi @@ -0,0 +1,377 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE JPN HW REV00 (b0101) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, UP); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_01.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_01.dtsi new file mode 100644 index 000000000000..49aab1cbe8fd --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_01.dtsi @@ -0,0 +1,394 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE JPN HW REV02 (b0101) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, DOWN); /* ISDBT_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, DOWN); /* ISDBT_SPI_CSN */ + PIN_SLP(gpd5-2, OUT0, DOWN); /* ISDBT_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, DOWN); /* ISDBT_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* ISDBT_INT */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, OUT0, DOWN); /* ISDBT_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, OUT0, DOWN); /* ISDBT_PWR_EN */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_02.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_02.dtsi new file mode 100644 index 000000000000..e4e31877475a --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_02.dtsi @@ -0,0 +1,401 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE JPN HW REV04 (b1001) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi" + + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, DOWN); /* ISDBT_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, DOWN); /* ISDBT_SPI_CSN */ + PIN_SLP(gpd5-2, OUT0, DOWN); /* ISDBT_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, DOWN); /* ISDBT_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* ISDBT_INT */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, OUT0, DOWN); /* ISDBT_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, OUT0, DOWN); /* ISDBT_PWR_EN */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_03.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_03.dtsi new file mode 100644 index 000000000000..2e8089f04379 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_03.dtsi @@ -0,0 +1,406 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE JPN HW REV05 (b1010) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi" + + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, DOWN); /* ISDBT_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, DOWN); /* ISDBT_SPI_CSN */ + PIN_SLP(gpd5-2, OUT0, DOWN); /* ISDBT_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, DOWN); /* ISDBT_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* ISDBT_INT */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, OUT0, DOWN); /* ISDBT_PWR_EN */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_04.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_04.dtsi new file mode 100644 index 000000000000..49d34d06d06f --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_jpn_04.dtsi @@ -0,0 +1,406 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE JPN HW REV07 (b1100) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi" + + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, DOWN); /* ISDBT_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, DOWN); /* ISDBT_SPI_CSN */ + PIN_SLP(gpd5-2, OUT0, DOWN); /* ISDBT_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, DOWN); /* ISDBT_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* ISDBT_INT */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, OUT0, DOWN); /* ISDBT_PWR_EN */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* UBS_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_00.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_00.dtsi new file mode 100644 index 000000000000..56389bb61c21 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_00.dtsi @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE KOR HW REV00 (b0000) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* CODEC_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* CODEC_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* CODEC_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* CODEC_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_LDO_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_LDO_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* VT_CAM_STBY */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* MAIN_CAM_NRST */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VT_CAM_NRST */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* COMP_SPI_INT */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* COMPANION_RSTN */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* CAM_SENSOR_DET */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* COMP_INT */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* MAIN_CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* MAIN_CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VT_CAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VT_CAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* AF_OIS_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* AF_OIS_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* COMP_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* FROM_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* MHL_SDA */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* MHL_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* MAIN_CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VT_CAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* DP_PMIC_SDA */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* DP_PMIC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP2CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RESETn */ + PIN_SLP(gpf1-2, PREV, NONE); /* IR_LED_EN */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* MHL_RST */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VT_CAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PM_WRSTI */ + PIN_SLP(gpf3-1, INPUT, NONE); /* OCP_FLAG */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* DISPLAY_LDO_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RESET_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP2CP_WAKE */ + PIN_SLP(gpf4-3, INPUT, DOWN); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP MCU RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP MCU REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* SW_I2C1_SCL */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* SW_I2C1_SDA */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* CDONE */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* AP_SMPL_WARN */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* TP(Dual Display 1) */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* TP(Dual Display 2) */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, PREV, NONE); /* EMMC_RSTN */ + PIN_SLP(gph1-4, PREV, NONE); /* XBOOTLDO0 */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, PREV, NONE); /* XBOOTLDO1 */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* NFC_HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* NFC_HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* MHL_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* MHL_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* MHL_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* MHL_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* T_FLASH_CLK */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* T_FLASH_CMD */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* T_FLASH_D(0) */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* T_FLASH_D(1) */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* T_FLASH_D(2) */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* T_FLASH_D(3) */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, PREV, NONE); /* EMMC_CLK */ + PIN_SLP(gpr0-1, INPUT, NONE); /* EMMC_CMD */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* EMMC_RCLK */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, NONE); /* EMMC_DATA_0 */ + PIN_SLP(gpr1-1, INPUT, NONE); /* EMMC_DATA_1 */ + PIN_SLP(gpr1-2, INPUT, NONE); /* EMMC_DATA_2 */ + PIN_SLP(gpr1-3, INPUT, NONE); /* EMMC_DATA_3 */ + PIN_SLP(gpr1-4, INPUT, NONE); /* EMMC_DATA_4 */ + PIN_SLP(gpr1-5, INPUT, NONE); /* EMMC_DATA_5 */ + PIN_SLP(gpr1-6, INPUT, NONE); /* EMMC_DATA_6 */ + PIN_SLP(gpr1-7, INPUT, NONE); /* EMMC_DATA_7 */ + + PIN_SLP(gpr2-0, INPUT, DOWN); /* FPGA_RSTN */ + PIN_SLP(gpr2-1, OUT0, NONE); /* CRESET_B */ + PIN_SLP(gpr2-2, INPUT, DOWN); /* IRDA_IRQ */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* MHL_SPI_DVLD */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, NONE); /* COVER_ID */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* ERR_FG */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_01.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_01.dtsi new file mode 100644 index 000000000000..7f852307c32c --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_01.dtsi @@ -0,0 +1,381 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE KOR HW REV01 (b0011) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_02.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_02.dtsi new file mode 100644 index 000000000000..510c2b675334 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_02.dtsi @@ -0,0 +1,382 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE KOR HW REV02 (b0101) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_03.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_03.dtsi new file mode 100644 index 000000000000..4867a79d93ca --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_03.dtsi @@ -0,0 +1,382 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE KOR HW REV03 (b0110) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_04.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_04.dtsi new file mode 100644 index 000000000000..465b288ac8e1 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_04.dtsi @@ -0,0 +1,382 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE KOR HW REV04 (b0111) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_05.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_05.dtsi new file mode 100644 index 000000000000..10932da5130b --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_05.dtsi @@ -0,0 +1,381 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE KOR HW REV05 (b1000 - b1001) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_06.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_06.dtsi new file mode 100644 index 000000000000..6bdd78727b3e --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_kor_06.dtsi @@ -0,0 +1,380 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE KOR HW REV06 (b1010) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* WPC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_00.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_00.dtsi new file mode 100644 index 000000000000..c0c7101e1998 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_00.dtsi @@ -0,0 +1,334 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE USA HW REV00 (b0010) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* CODEC_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* CODEC_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* CODEC_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* CODEC_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_LDO_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_LDO_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* VT_CAM_STBY */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* MAIN_CAM_NRST */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VT_CAM_NRST */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* COMP_SPI_INT */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* COMPANION_RSTN */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* CAM_SENSOR_DET */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* COMP_INT */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* MAIN_CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* MAIN_CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VT_CAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VT_CAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* AF_OIS_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* AF_OIS_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* COMP_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* FROM_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* MAIN_CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VT_CAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* DP_PMIC_SDA */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* DP_PMIC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP2CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RESETn */ + PIN_SLP(gpf1-2, PREV, NONE); /* IR_LED_EN */ + PIN_SLP(gpf1-3, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VT_CAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PM_WRSTI */ + PIN_SLP(gpf3-1, INPUT, NONE); /* OCP_FLAG */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* DISPLAY_LDO_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RESET_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP2CP_WAKE */ + PIN_SLP(gpf4-3, INPUT, DOWN); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP MCU RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP MCU REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* SW_I2C1_SCL */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* SW_I2C1_SDA */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* CDONE */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* AP_SMPL_WARN */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* TP(Dual Display 1) */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* TP(Dual Display 2) */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, PREV, NONE); /* EMMC_RSTN */ + PIN_SLP(gph1-4, PREV, NONE); /* XBOOTLDO0 */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, PREV, NONE); /* XBOOTLDO1 */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* NFC_HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* NFC_HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* MHL_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* MHL_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* MHL_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* MHL_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* T_FLASH_CLK */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* T_FLASH_CMD */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* T_FLASH_D(0) */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* T_FLASH_D(1) */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* T_FLASH_D(2) */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* T_FLASH_D(3) */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, PREV, NONE); /* EMMC_CLK */ + PIN_SLP(gpr0-1, INPUT, NONE); /* EMMC_CMD */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* EMMC_RCLK */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, NONE); /* EMMC_DATA_0 */ + PIN_SLP(gpr1-1, INPUT, NONE); /* EMMC_DATA_1 */ + PIN_SLP(gpr1-2, INPUT, NONE); /* EMMC_DATA_2 */ + PIN_SLP(gpr1-3, INPUT, NONE); /* EMMC_DATA_3 */ + PIN_SLP(gpr1-4, INPUT, NONE); /* EMMC_DATA_4 */ + PIN_SLP(gpr1-5, INPUT, NONE); /* EMMC_DATA_5 */ + PIN_SLP(gpr1-6, INPUT, NONE); /* EMMC_DATA_6 */ + PIN_SLP(gpr1-7, INPUT, NONE); /* EMMC_DATA_7 */ + + PIN_SLP(gpr2-0, INPUT, DOWN); /* FPGA_RSTN */ + PIN_SLP(gpr2-1, OUT0, NONE); /* CRESET_B */ + PIN_SLP(gpr2-2, INPUT, DOWN); /* IRDA_IRQ */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* FPGA_SDA */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* FPGA_SCL */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* MHL_SPI_DVLD */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, NONE); /* COVER_ID */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* ERR_FG */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_01.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_01.dtsi new file mode 100644 index 000000000000..bbaf5f9726f0 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_01.dtsi @@ -0,0 +1,382 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE USA HW REV01 (b0011) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_02.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_02.dtsi new file mode 100644 index 000000000000..0713d2b4d1b4 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_02.dtsi @@ -0,0 +1,383 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE USA HW REV02 (b0101) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_03.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_03.dtsi new file mode 100644 index 000000000000..37034205b108 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_03.dtsi @@ -0,0 +1,383 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE USA HW REV03 (b0110) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_04.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_04.dtsi new file mode 100644 index 000000000000..81fff61d5241 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_04.dtsi @@ -0,0 +1,382 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE USA HW REV05 (b1000 - b1001) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_00.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_00.dtsi new file mode 100644 index 000000000000..8c8c1173a5d1 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_00.dtsi @@ -0,0 +1,401 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE CDMA HW REV00 (b0101) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + PIN_IN(gpd5-2, DOWN, LV1); /* NC */ + PIN_IN(gpd5-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-1, DOWN, LV1); /* NC */ + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + PIN_IN(gpr3-6, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_01.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_01.dtsi new file mode 100644 index 000000000000..8f3209421baa --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_01.dtsi @@ -0,0 +1,400 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE CDMA HW REV06 (b0111) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + PIN_IN(gpd5-2, DOWN, LV1); /* NC */ + PIN_IN(gpd5-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-1, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + PIN_IN(gpr3-6, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_02.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_02.dtsi new file mode 100644 index 000000000000..9353e494b967 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_gpio_usa_cdma_02.dtsi @@ -0,0 +1,403 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE CDMA HW REV07 (b1001) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd5-3, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-1, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-1, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + PIN_IN(gpr3-6, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_00.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_00.dts new file mode 100644 index 000000000000..05f383a5f2f3 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_00.dts @@ -0,0 +1,878 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery.dtsi" +#include "exynos7420-zeroflte_gpio_jpn_00.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE JPN rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <4>; + compatible = "samsung,ZERO-F LTE JPN EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + /* &gpa3 2 0xf */ + >; + status = "okay"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_01.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_01.dts new file mode 100644 index 000000000000..217714dd08ec --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_01.dts @@ -0,0 +1,887 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_jpn_01.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE JPN rev02 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <5>; + model_info-hw_rev_end = <8>; + compatible = "samsung,ZERO-F LTE JPN EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_02.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_02.dts new file mode 100644 index 000000000000..71c0f4f64777 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_02.dts @@ -0,0 +1,893 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_jpn_battery_04.dtsi" +#include "exynos7420-zeroflte_gpio_jpn_02.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE JPN rev04 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <9>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO-F LTE JPN EVT1 mPOP,r04", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + _ldo18_reg: s2mpb02-ldo18 { + regulator-name = "vdd_tx_2p8"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_03.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_03.dts new file mode 100644 index 000000000000..bbab1c7eee7c --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_03.dts @@ -0,0 +1,884 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_jpn_battery_04.dtsi" +#include "exynos7420-zeroflte_gpio_jpn_03.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE JPN rev05 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <10>; + model_info-hw_rev_end = <11>; + compatible = "samsung,ZERO-F LTE JPN EVT1 mPOP,r05", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + _ldo18_reg: s2mpb02-ldo18 { + regulator-name = "vdd_tx_2p8"; + regulator-min-microvolt = <3100000>; + regulator-max-microvolt = <3100000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_04.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_04.dts new file mode 100644 index 000000000000..e063410e2bf7 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_04.dts @@ -0,0 +1,901 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_jpn_battery_04.dtsi" +#include "exynos7420-zeroflte_gpio_jpn_04.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE JPN rev07 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <12>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO-F LTE JPN EVT1 mPOP,r07", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <83 81 45 111 71 205 254 139 208 53 + 186 80 75 179 253 179 2 209 225 103 + 186 250 35 43 10 5 60>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + _ldo18_reg: s2mpb02-ldo18 { + regulator-name = "vdd_tx_2p8"; + regulator-min-microvolt = <3100000>; + regulator-max-microvolt = <3100000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_battery_04.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_battery_04.dtsi new file mode 100644 index 000000000000..3936cc7abc06 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_jpn_battery_04.dtsi @@ -0,0 +1,350 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + hsi2c@13680000 { /* hsi2c9 */ + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + status = "okay"; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + /*battery,wpc_temp_check = <1>;*/ + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <261 307 363 413 563 655 714 754 805 882 1025 1192 1265 1377 1578 + 1798 2032 2268 2493 2720 2959 3155 3266 3340 3495 3627 3727>; + battery,temp_table_data = <900 850 800 750 700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <542 638 665 733 782 855 1000 1168 1237 1341 1530 + 1736 1949 2170 2378 2583 2801 2975 3081 3149 3284 3413 3504>; + battery,chg_temp_table_data = <700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2550 1000 2550 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <86>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <530>; + battery,chg_high_temp_2nd = <530>; + battery,chg_high_temp_recovery = <525>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <390>; + battery,wpc_high_temp_recovery = <200>; + battery,wpc_charging_limit_current = <700>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1603>; + fuelgauge,qrtable30 = <0x1005>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x1B45>; + fuelgauge,temp_cocold = <0x194D>; + fuelgauge,rcomp0 = <0x35>; + fuelgauge,rcomp_charging = <0x35>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x1438>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_kor_00.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_00.dts new file mode 100644 index 000000000000..4a1544746ebb --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_00.dts @@ -0,0 +1,722 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery.dtsi" +#include "exynos7420-zeroflte_gpio_kor_00.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE KOR rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <0>; + compatible = "samsung,ZERO-F LTE KOR EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + wlf,hs-mic = <3>; + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + mic_bias_gpio = <&gpf1 0 0>; + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + sec-mst{ + compatible = "sec-mst"; + sec-mst,mst-pwr-gpio = <&gpf3 2 0>; + sec-mst,mst-md-gpio = <&gpj0 2 0>; + sec-mst,mst-pd-gpio = <&gpj1 2 0>; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13650000{ + max77833@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VSIL_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + fimc_is@14200000 { + pinctrl-names = "default", "release"; + pinctrl-0 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_mclk2_out>; + pinctrl-1 = <>; + }; + + fimc_is_sensor_imx240: fimc-is_sensor_imx240@34 { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_2p2: fimc-is_sensor_2p2@5A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out &fimc_is_mclk2_out &fimc_is_i2c0 &fimc_is_i2c1>; + pinctrl-2 = <&fimc_is_mclk1_fn &fimc_is_mclk2_fn &fimc_is_i2c0 &fimc_is_i2c1>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_kor_01.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_01.dts new file mode 100644 index 000000000000..fdf266f2653a --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_01.dts @@ -0,0 +1,873 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery.dtsi" +#include "exynos7420-zeroflte_gpio_kor_01.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE KOR rev01 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <3>; + model_info-hw_rev_end = <3>; + compatible = "samsung,ZERO-F LTE KOR EVT1 mPOP,r01", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_kor_02.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_02.dts new file mode 100644 index 000000000000..ca5d5ab7e16b --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_02.dts @@ -0,0 +1,864 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_kor_02.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE KOR rev02 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <5>; + model_info-hw_rev_end = <5>; + compatible = "samsung,ZERO-F LTE KOR EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_kor_03.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_03.dts new file mode 100644 index 000000000000..a3206c3b8455 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_03.dts @@ -0,0 +1,864 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_kor_03.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE KOR rev03 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <6>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO-F LTE KOR EVT1 mPOP,r03", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_kor_04.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_04.dts new file mode 100644 index 000000000000..a5743ed8c381 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_04.dts @@ -0,0 +1,870 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_kor_04.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE KOR rev04 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <7>; + compatible = "samsung,ZERO-F LTE KOR EVT1 mPOP,r04", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10213 (-360) 154 (-206) 8673 (-59) (-66) (-59) 10479>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_kor_05.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_05.dts new file mode 100644 index 000000000000..c32c3d405917 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_05.dts @@ -0,0 +1,870 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_05.dtsi" +#include "exynos7420-zeroflte_gpio_kor_05.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE KOR rev05 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <8>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO-F LTE KOR EVT1 mPOP,r05", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10312 (-385) 28 (-172) 8873 162 88 (-383) 10382>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_kor_06.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_06.dts new file mode 100644 index 000000000000..a265ecff15fc --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_kor_06.dts @@ -0,0 +1,870 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery_06.dtsi" +#include "exynos7420-zeroflte_gpio_kor_06.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE KOR rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <10>; + model_info-hw_rev_end = <10>; + compatible = "samsung,ZERO-F LTE KOR EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10312 (-385) 28 (-172) 8873 162 88 (-383) 10382>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_00.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_00.dts new file mode 100644 index 000000000000..1d7509b64306 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_00.dts @@ -0,0 +1,771 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_usa_battery.dtsi" +#include "exynos7420-zeroflte_gpio_usa_00.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE USA rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <2>; + model_info-hw_rev_end = <2>; + compatible = "samsung,ZERO-F LTE USA EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq &mainmic_ctl>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + mic_bias_gpio = <&gpf1 0 0>; + main_mic_ctl = <&gpf5 2 0>; + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + es704_reset: es704-reset { + samsung,pins ="gpf1-3"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + mainmic_ctl: mainmic-ctl { + samsung,pins ="gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 3 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es705-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_LDO26_1P1"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + fimc_is@14200000 { + pinctrl-names = "default", "release"; + pinctrl-0 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_mclk2_out>; + pinctrl-1 = <>; + }; + + fimc_is_sensor_imx240: fimc-is_sensor_imx240@34 { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_2p2: fimc-is_sensor_2p2@5A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out &fimc_is_mclk2_out &fimc_is_i2c0 &fimc_is_i2c1>; + pinctrl-2 = <&fimc_is_mclk1_fn &fimc_is_mclk2_fn &fimc_is_i2c0 &fimc_is_i2c1>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_01.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_01.dts new file mode 100644 index 000000000000..d450a0e94fc5 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_01.dts @@ -0,0 +1,930 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_usa_battery.dtsi" +#include "exynos7420-zeroflte_gpio_usa_01.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE USA rev01 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <3>; + model_info-hw_rev_end = <3>; + compatible = "samsung,ZERO-F LTE USA EVT1 mPOP,r01", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 1 1 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_02.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_02.dts new file mode 100644 index 000000000000..52a81b6666e3 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_02.dts @@ -0,0 +1,927 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_usa_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_usa_02.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE USA rev02 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <5>; + model_info-hw_rev_end = <5>; + compatible = "samsung,ZERO-F LTE USA EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 1 1 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_03.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_03.dts new file mode 100644 index 000000000000..fdd99d37d0f1 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_03.dts @@ -0,0 +1,927 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_usa_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_usa_03.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE USA rev03 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <6>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO-F LTE USA EVT1 mPOP,r03", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 1 1 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_04.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_04.dts new file mode 100644 index 000000000000..a3e9900e1807 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_04.dts @@ -0,0 +1,927 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_usa_battery_05.dtsi" +#include "exynos7420-zeroflte_gpio_usa_04.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE USA rev05 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <8>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO-F LTE USA EVT1 mPOP,r05", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 1 1 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10468 (-358) 1 (-163) 8834 23 101 (-283) 10458>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_battery_02.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_battery_02.dtsi new file mode 100644 index 000000000000..a413dfd2557a --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_battery_02.dtsi @@ -0,0 +1,353 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &wpc_sda &wpc_scl>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + /*battery,wpc_temp_check = <1>;*/ + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <261 307 363 413 563 655 714 754 805 882 1025 1192 1265 1377 1578 + 1798 2032 2268 2493 2720 2959 3155 3266 3340 3495 3627 3727>; + battery,temp_table_data = <900 850 800 750 700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <542 638 665 733 782 855 1000 1168 1237 1341 1530 + 1736 1949 2170 2378 2583 2801 2975 3081 3149 3284 3413 3504>; + battery,chg_temp_table_data = <700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2500 1000 2500 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <86>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <530>; + battery,chg_high_temp_2nd = <530>; + battery,chg_high_temp_recovery = <525>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <390>; + battery,wpc_high_temp_recovery = <200>; + battery,wpc_charging_limit_current = <700>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc"; + #io-channel-cells = <3>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1603>; + fuelgauge,qrtable30 = <0x1005>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x1B45>; + fuelgauge,temp_cocold = <0x194D>; + fuelgauge,rcomp0 = <0x35>; + fuelgauge,rcomp_charging = <0x35>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x1438>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_battery_05.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_battery_05.dtsi new file mode 100644 index 000000000000..3de4ec065d4a --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_battery_05.dtsi @@ -0,0 +1,369 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging &wpc_sda &wpc_scl>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + /*battery,wpc_temp_check = <1>;*/ + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <261 307 363 413 563 655 714 754 805 882 1025 1192 1265 1377 1578 + 1798 2032 2268 2493 2720 2959 3155 3266 3340 3495 3627 3727>; + battery,temp_table_data = <900 850 800 750 700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <542 638 665 733 782 855 1000 1168 1237 1341 1530 + 1736 1949 2170 2378 2583 2801 2975 3081 3149 3284 3413 3504>; + battery,chg_temp_table_data = <700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2500 1000 2500 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <86>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <530>; + battery,chg_high_temp_2nd = <530>; + battery,chg_high_temp_recovery = <525>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <390>; + battery,wpc_high_temp_recovery = <200>; + battery,wpc_charging_limit_current = <700>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1603>; + fuelgauge,qrtable30 = <0x1005>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x1B45>; + fuelgauge,temp_cocold = <0x194D>; + fuelgauge,rcomp0 = <0x35>; + fuelgauge,rcomp_charging = <0x35>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x1438>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_00.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_00.dts new file mode 100644 index 000000000000..bd4348e93173 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_00.dts @@ -0,0 +1,982 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_usa_battery_02.dtsi" +#include "exynos7420-zeroflte_gpio_usa_cdma_00.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE CDMA rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO-F LTE CDMA EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 1 1 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + sound { + mixer-paths = "mixer_paths_cdma_03.xml"; + }; + + pinctrl@10580000 { + si4705_irq: si4705-irq { + samsung,pins ="gpa1-3"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + si4705_i2c: si4705-i2c { + samsung,pins = "gpd0-3", "gpd0-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + si4705_reset: si4705-reset { + samsung,pins ="gpf4-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1050000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + si4705@11 { + compatible = "si4705,fmradio"; + reg = <0x11>; + pinctrl-0 = <&si4705_i2c &si4705_reset &si4705_irq>; + si4705,reset = <&gpf4 7 0>; + si4705,interrupt = <&gpa1 3 0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha0_wqhd>; + }; + + s6e3ha0_wqhd: s6e3ha0_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + haptic { + haptic,duty = <33670>; + haptic,period = <33510>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_01.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_01.dts new file mode 100644 index 000000000000..8d9730a09399 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_01.dts @@ -0,0 +1,1018 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_usa_cdma_battery_06.dtsi" +#include "exynos7420-zeroflte_gpio_usa_cdma_01.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE CDMA rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <8>; + compatible = "samsung,ZERO-F LTE CDMA EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 1 1 3 3 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + si4705_irq: si4705-irq { + samsung,pins ="gpa1-3"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + si4705_i2c: si4705-i2c { + samsung,pins = "gpd0-3", "gpd0-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + si4705_reset: si4705-reset { + samsung,pins ="gpf4-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-names = "default"; + pinctrl-0 = <&es704_wakeup &es704_reset &es704_i2c>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + si4705@11 { + compatible = "si4705,fmradio"; + reg = <0x11>; + pinctrl-0 = <&si4705_i2c &si4705_reset &si4705_irq>; + si4705,reset = <&gpf4 7 0>; + si4705,interrupt = <&gpa1 3 0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha0_wqhd>; + }; + + s6e3ha0_wqhd: s6e3ha0_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + haptic { + haptic,duty = <33670>; + haptic,period = <33510>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_02.dts b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_02.dts new file mode 100644 index 000000000000..063dd4a6e2ef --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_02.dts @@ -0,0 +1,1018 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_usa_cdma_battery_07.dtsi" +#include "exynos7420-zeroflte_gpio_usa_cdma_02.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE CDMA rev07 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <9>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO-F LTE CDMA EVT1 mPOP,r07", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 1 1 3 3 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + si4705_irq: si4705-irq { + samsung,pins ="gpa1-3"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + si4705_i2c: si4705-i2c { + samsung,pins = "gpd0-3", "gpd0-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + si4705_reset: si4705-reset { + samsung,pins ="gpf4-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-names = "default"; + pinctrl-0 = <&es704_wakeup &es704_reset &es704_i2c>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <290 297 302 307 312 318 324 330 336 342 + 348 359 369 379 389 399 409 419 428 437 + 446 462 477 493 508 523 538 553 568 583 + 598 618 637 656 675 694 712 730 748 766 + 784 805 826 847 868 889 910 931 952 973 + 994 1018 1042 1066 1090 1114 1138 1161 1184 1207 + 1230 1250 1271 1292 1313 1334 1355 1376 1397 1418 + 1439 1458 1477 1496 1515 1534 1553 1572 1591 1610 + 1629 1644 1660 1675 1689 1704 1718 1733 1747 1762 + 1776 1786 1796 1807 1818 1829 1840 1850 1861 1872 + 1883 1889 1894 1899 1904 1909 1914 1919 1924 1929 + 1934>; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + si4705@11 { + compatible = "si4705,fmradio"; + reg = <0x11>; + pinctrl-0 = <&si4705_i2c &si4705_reset &si4705_irq>; + si4705,reset = <&gpf4 7 0>; + si4705,interrupt = <&gpa1 3 0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 5 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha0_wqhd>; + }; + + s6e3ha0_wqhd: s6e3ha0_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + haptic { + haptic,duty = <33670>; + haptic,period = <33510>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_battery_06.dtsi b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_battery_06.dtsi new file mode 100644 index 000000000000..3de4ec065d4a --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroflte_usa_cdma_battery_06.dtsi @@ -0,0 +1,369 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging &wpc_sda &wpc_scl>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + /*battery,wpc_temp_check = <1>;*/ + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <261 307 363 413 563 655 714 754 805 882 1025 1192 1265 1377 1578 + 1798 2032 2268 2493 2720 2959 3155 3266 3340 3495 3627 3727>; + battery,temp_table_data = <900 850 800 750 700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <542 638 665 733 782 855 1000 1168 1237 1341 1530 + 1736 1949 2170 2378 2583 2801 2975 3081 3149 3284 3413 3504>; + battery,chg_temp_table_data = <700 650 630 600 580 550 500 450 430 400 350 + 300 250 200 150 100 50 0 (-30) (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2500 1000 2500 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <86>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <530>; + battery,chg_high_temp_2nd = <530>; + battery,chg_high_temp_recovery = <525>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <390>; + battery,wpc_high_temp_recovery = <200>; + battery,wpc_charging_limit_current = <700>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1603>; + fuelgauge,qrtable30 = <0x1005>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x1B45>; + fuelgauge,temp_cocold = <0x194D>; + fuelgauge,rcomp0 = <0x35>; + fuelgauge,rcomp_charging = <0x35>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x1438>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerofslte_gpio_jpn_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerofslte_gpio_jpn_00.dtsi new file mode 100644 index 000000000000..64d66c9f0acb --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerofslte_gpio_jpn_00.dtsi @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-F LTE JPN HW REV00 (b0101) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, UP); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, INPUT, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerofslte_gpio_jpn_03.dtsi b/arch/arm64/boot/dts/exynos7420-zerofslte_gpio_jpn_03.dtsi new file mode 100644 index 000000000000..60ab8f1da6a7 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerofslte_gpio_jpn_03.dtsi @@ -0,0 +1,398 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-FS LTE JPN HW REV06 (b1010) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* WPC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* WCP_TSB */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* WCP_TSB */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, OUT0, NONE); /* AP_CP_PACKET_SEND */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerofslte_jpn_00.dts b/arch/arm64/boot/dts/exynos7420-zerofslte_jpn_00.dts new file mode 100644 index 000000000000..4aaefa1df5da --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerofslte_jpn_00.dts @@ -0,0 +1,832 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_battery.dtsi" +#include "exynos7420-zeroflte_gpio_jpn_00.dtsi" +#include "exynos7420-zerolte_modem-shannon_ds.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" + +/ { + model = "Samsung ZERO-F LTE JPN rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <5>; + compatible = "samsung,ZERO-F LTE JPN EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <4>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + simslot_count { + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerofslte_jpn_03.dts b/arch/arm64/boot/dts/exynos7420-zerofslte_jpn_03.dts new file mode 100644 index 000000000000..5473bf4ee2c0 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerofslte_jpn_03.dts @@ -0,0 +1,841 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_jpn_battery_04.dtsi" +#include "exynos7420-zerofslte_gpio_jpn_03.dtsi" +#include "exynos7420-zerolte_modem-shannon_ds.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO-FS LTE JPN rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <6>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO-FS LTE JPN EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10213 (-360) 154 (-206) 8673 (-59) (-66) (-59) 10479>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + simslot_count { + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_battery.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_battery.dtsi new file mode 100644 index 000000000000..9a61254168bf --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_battery.dtsi @@ -0,0 +1,336 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + wchg_ctl: wchg-ctl { + samsung,pins = "gpf5-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + battery,wchg_ctl_en; + + pinctrl-names = "default"; + pinctrl-0 = <&wchg_ctl &wciokb_irq &wpc_scl &wpc_sda>; + battery,wchg_ctl = <&gpf5 6 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + battery,wpc_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1000 1000>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2600 1000 2600 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <410>; + battery,wpc_high_temp_recovery = <400>; + battery,wpc_charging_limit_current = <450>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4250>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4300>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4350>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc"; + #io-channel-cells = <3>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4350>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4350>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_battery_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_battery_02.dtsi new file mode 100644 index 000000000000..091e8d794278 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_battery_02.dtsi @@ -0,0 +1,360 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + wchg_ctl: wchg-ctl { + samsung,pins = "gpf5-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &wpc_sda &wpc_scl>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2600 1000 2600 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + + battery,chg_float_voltage = <4375>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc"; + #io-channel-cells = <3>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_battery_05.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_battery_05.dtsi new file mode 100644 index 000000000000..b5891be3e1c9 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_battery_05.dtsi @@ -0,0 +1,369 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging &wpc_sda &wpc_scl>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2600 1000 2600 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_battery_06.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_battery_06.dtsi new file mode 100644 index 000000000000..b395acf87c40 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_battery_06.dtsi @@ -0,0 +1,385 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + hsi2c@13670000 { /* hsi2c5 */ + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + status = "okay"; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + battery,wpc_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1000 1000>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2600 1000 2600 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <3137 3113 3077 3045 3010 2976 2942 2904 2874 2832 + 2794 2763 2723 2693 2660 2623 2589 2552 2517 2481 2464>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 405 400 395 + 390 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <410>; + battery,wpc_high_temp_recovery = <400>; + battery,wpc_charging_limit_current = <450>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4325>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + + /***********************************************************/ + /* VE_SW for Battery Self Discharging(to prevent swelling) */ + /* Enable TYPE : sdchg_ic, sdchg_ap, sdchg_cs, sdchg_ldo, ... */ + /* The following line, "sdchg_type", is annotaed to support the dualization for Zero project. + In case of other projects, "sdchg_type" should be designated to decide the way of self-discharging. + In general cases, the default type is "sdchg_ic",which means self-discharging IC on PCB, + unless "sdchg_type" is not designated.*/ + /* + sdchg_type = "sdchg_ic"; + */ + sdchg_ap { + compatible = "samsung,sdchg_ap"; + sdchg,temperature_start = <600>; + sdchg,temperature_end = <550>; + sdchg,soc_start = <96>; + sdchg,soc_end = <92>; + sdchg,voltage_start = <4250>; + /* sdchg,voltage_end = <4200>; -> from battery,swelling_drop_float_voltage */ + }; + sdchg_cs { + compatible = "samsung,sdchg_cs"; + sdchg,temperature_start = <600>; + sdchg,temperature_end = <550>; + sdchg,soc_start = <96>; + sdchg,soc_end = <92>; + sdchg,voltage_start = <4250>; + /* sdchg,voltage_end = <4200>; -> from battery,swelling_drop_float_voltage */ + }; + /***********************************************************/ + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_chn_00.dts b/arch/arm64/boot/dts/exynos7420-zerolte_chn_00.dts new file mode 100644 index 000000000000..49f4c65b01d0 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_chn_00.dts @@ -0,0 +1,913 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_chn_00.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +/ { + model = "Samsung ZERO LTE CHN rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <8>; + compatible = "samsung,ZERO LTE CHN EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <25 83 56 111 50 147 254 139 209 54 + 186 22 178 179 1 179 254 19 59 70 + 191 0 172 165 12 5 94>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "p61"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p61-mosipin = <&gpg4 3 0>; + p61-misopin = <&gpg4 2 0>; + p61-cspin = <&gpg4 1 0>; + p61-clkpin = <&gpg4 0 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + cs-gpio = <&gpg4 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 42 0 + 43 100 2 + 101 200 4 + 201 450 6 + 451 1000 7 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + sound { + mixer-paths = "mixer_paths_cdma_03.xml"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + pn547@2B { + pn547,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + usb_notifier { + samsung,can-disable-usb; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_chn_01.dts b/arch/arm64/boot/dts/exynos7420-zerolte_chn_01.dts new file mode 100644 index 000000000000..3fb7c9eb3aaf --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_chn_01.dts @@ -0,0 +1,872 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_chn_battery_06.dtsi" +#include "exynos7420-zerolte_gpio_chn_01.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +/ { + model = "Samsung ZERO LTE CHN rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <9>; + model_info-hw_rev_end = <10>; + compatible = "samsung,ZERO LTE CHN EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <25 83 56 111 50 147 254 139 209 54 + 186 22 178 179 1 179 254 19 59 70 + 191 0 172 165 12 5 94>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "p61"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p61-mosipin = <&gpg4 3 0>; + p61-misopin = <&gpg4 2 0>; + p61-cspin = <&gpg4 1 0>; + p61-clkpin = <&gpg4 0 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + cs-gpio = <&gpg4 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + imp_table = < + /* min max gain */ + 0 42 0 + 43 100 2 + 101 200 4 + 201 450 6 + 451 1000 7 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + pn547@2B { + pn547,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + usb_notifier { + samsung,can-disable-usb; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_chn_02.dts b/arch/arm64/boot/dts/exynos7420-zerolte_chn_02.dts new file mode 100644 index 000000000000..681f61c9307e --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_chn_02.dts @@ -0,0 +1,873 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_chn_battery_06.dtsi" +#include "exynos7420-zerolte_gpio_chn_02.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +/ { + model = "Samsung ZERO LTE CHN rev07 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <11>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO LTE CHN EVT1 mPOP,r07", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp-acc-type = <1>; + ssp,mag-array = /bits/ 8 <25 83 56 111 50 147 254 139 209 54 + 186 22 178 179 1 179 254 19 59 70 + 191 0 172 165 12 5 94>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "p61"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p61-mosipin = <&gpg4 3 0>; + p61-misopin = <&gpg4 2 0>; + p61-cspin = <&gpg4 1 0>; + p61-clkpin = <&gpg4 0 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + cs-gpio = <&gpg4 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + imp_table = < + /* min max gain */ + 0 42 0 + 43 100 2 + 101 200 4 + 201 450 6 + 451 1000 7 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + pn547@2B { + pn547,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + usb_notifier { + samsung,can-disable-usb; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_chn_battery_06.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_chn_battery_06.dtsi new file mode 100644 index 000000000000..1db74e8823b7 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_chn_battery_06.dtsi @@ -0,0 +1,349 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + hsi2c@14E20000 { /* hsi2c8 */ + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + status = "okay"; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2600 1000 2600 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_00.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_00.dts new file mode 100644 index 000000000000..1ebd4cddb452 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_00.dts @@ -0,0 +1,701 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_00.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE EUR rev00/00A board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <1>; + compatible = "samsung,ZERO LTE EUR EVT1 mPOP,r00/00A", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <6>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + mic_bias_gpio = <&gpf1 0 0>; + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13650000{ + max77833@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VSIL_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1100>; + timing,dsi-escape-clk = <20>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <20>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + fimc_is@14200000 { + pinctrl-names = "default", "release"; + pinctrl-0 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_mclk2_out>; + pinctrl-1 = <>; + }; + + fimc_is_sensor_imx240: fimc-is_sensor_imx240@34 { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_2p2: fimc-is_sensor_2p2@5A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out &fimc_is_mclk2_out &fimc_is_i2c0 &fimc_is_i2c1>; + pinctrl-2 = <&fimc_is_mclk1_fn &fimc_is_mclk2_fn &fimc_is_i2c0 &fimc_is_i2c1>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_01.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_01.dts new file mode 100644 index 000000000000..e51c3d5f7842 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_01.dts @@ -0,0 +1,687 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_01.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE EUR rev00B board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <2>; + model_info-hw_rev_end = <2>; + compatible = "samsung,ZERO LTE EUR EVT1 mPOP,r00B", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <6>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + mic_bias_gpio = <&gpf1 0 0>; + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VSIL_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + fimc_is@14200000 { + pinctrl-names = "default", "release"; + pinctrl-0 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_mclk2_out>; + pinctrl-1 = <>; + }; + + fimc_is_sensor_imx240: fimc-is_sensor_imx240@34 { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_2p2: fimc-is_sensor_2p2@5A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out &fimc_is_mclk2_out &fimc_is_i2c0 &fimc_is_i2c1>; + pinctrl-2 = <&fimc_is_mclk1_fn &fimc_is_mclk2_fn &fimc_is_i2c0 &fimc_is_i2c1>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_02.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_02.dts new file mode 100644 index 000000000000..6d8615434cfc --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_02.dts @@ -0,0 +1,797 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_02.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE EUR rev01 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <3>; + model_info-hw_rev_end = <3>; + compatible = "samsung,ZERO LTE EUR EVT1 mPOP,r01", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_03.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_03.dts new file mode 100644 index 000000000000..d9fbe0095688 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_03.dts @@ -0,0 +1,823 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_03.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE EUR rev02 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <5>; + model_info-hw_rev_end = <5>; + compatible = "samsung,ZERO LTE EUR EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_04.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_04.dts new file mode 100644 index 000000000000..0864dbef23ed --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_04.dts @@ -0,0 +1,846 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_04.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE EUR rev03 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <6>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO LTE EUR EVT1 mPOP,r03", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_05.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_05.dts new file mode 100644 index 000000000000..aa9404361b9c --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_05.dts @@ -0,0 +1,846 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_05.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE EUR rev04 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <7>; + compatible = "samsung,ZERO LTE EUR EVT1 mPOP,r04", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_06.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_06.dts new file mode 100644 index 000000000000..2f60710338fd --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_06.dts @@ -0,0 +1,845 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_05.dtsi" +#include "exynos7420-zerolte_gpio_06.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +/ { + model = "Samsung ZERO LTE EUR rev05 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <8>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO LTE EUR EVT1 mPOP,r05", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_07.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_07.dts new file mode 100644 index 000000000000..29892e68b2fb --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_07.dts @@ -0,0 +1,845 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_06.dtsi" +#include "exynos7420-zerolte_gpio_07.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +/ { + model = "Samsung ZERO LTE EUR rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <10>; + model_info-hw_rev_end = <10>; + compatible = "samsung,ZERO LTE EUR EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_08.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_08.dts new file mode 100644 index 000000000000..7cd2c6ab2c3e --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_08.dts @@ -0,0 +1,846 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_06.dtsi" +#include "exynos7420-zerolte_gpio_08.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +/ { + model = "Samsung ZERO LTE EUR rev07 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <11>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO LTE EUR EVT1 mPOP,r07", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp-acc-type = <1>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_ev03_00.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_ev03_00.dts new file mode 100644 index 000000000000..8a5be4ac2f24 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_ev03_00.dts @@ -0,0 +1,660 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_ev03_00.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE EUR EV03 rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <33>; + model_info-hw_rev_end = <33>; + compatible = "samsung,ZERO LTE EUR EV03 EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <6>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + mic_bias_gpio = <&gpf1 0 0>; + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + + s2mpb01_pmic@59 { + compatible = "s2mpb01,s2mpb01-regulator"; + reg = <0x59>; + + regulators { + _ldo13_reg: LDO13 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + }; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VSIL_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <20>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <20>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_upop_01.dts b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_upop_01.dts new file mode 100644 index 000000000000..267495332d51 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_eur_open_upop_01.dts @@ -0,0 +1,685 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_upop_01.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE EUR EV rev01 board(EVT1) based on EXYNOS7420, uPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <17>; + model_info-hw_rev_end = <17>; + compatible = "samsung,ZERO LTE EVT1 EUR uPOP,r01", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <3>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + mic_bias_gpio = <&gpf1 0 0>; + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13650000 { + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "vmmc"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VSIL_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_tb_integ.fw"; + stm,max_coords = <1599 2559>; /* x y */ + stm,num_lines = <25 16>; /* rx tx */ + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3hf2_wqxga>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <20>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <20>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + fimc_is@14200000 { + pinctrl-names = "default", "release"; + pinctrl-0 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_mclk2_out>; + pinctrl-1 = <>; + }; + + fimc_is_sensor_imx240: fimc-is_sensor_imx240@34 { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_2p2: fimc-is_sensor_2p2@5A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out &fimc_is_mclk2_out &fimc_is_i2c0 &fimc_is_i2c1>; + pinctrl-2 = <&fimc_is_mclk1_fn &fimc_is_mclk2_fn &fimc_is_i2c0 &fimc_is_i2c1>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_fingerprint-sensor_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_fingerprint-sensor_00.dtsi new file mode 100644 index 000000000000..dc29a0384d37 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_fingerprint-sensor_00.dtsi @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/ { + pinctrl@10580000 { + btp_irq: btp-irq { + samsung,pins = "gpa0-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <3>; + }; + btp_irqsleep: btp-irqsleep { + samsung,pins = "gpa0-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <3>; + }; + btp_irqidle: btp-irqidle { + samsung,pins = "gpa0-7"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <3>; + }; + }; + pinctrl@14870000 { + btp_ldo: btp-ldo { + samsung,pins = "gpf1-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + btp_ldo2: btp-ldo2 { + samsung,pins = "gpf1-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + btp_reset: btp-reset { + samsung,pins = "gpf3-4"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14CA0000 { + ocp_en: ocp-en { + samsung,pins = "gpv7-4"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + spi_4: spi@14d70000 { + status = "okay"; + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + secure-mode; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi4_bus &spi4_cs>; + + vfsspi-spi@0 { + compatible = "vfsspi,vfs7xxx"; + reg = <0>; + spi-max-frequency = <19200000>; + pinctrl-names = "default", "sleep", "idle"; + pinctrl-0 = <&btp_irq &btp_reset &btp_ldo &btp_ldo2 &ocp_en>; + pinctrl-1 = <&btp_irqsleep>; + pinctrl-2 = <&btp_irqidle>; + + gpio-controller; + #gpio-cells = <2>; + + vfsspi-sleepPin = <&gpf3 4 0x00>; + vfsspi-drdyPin = <&gpa0 7 0x00>; + vfsspi-ldoPin = <&gpf1 6 0x00>; + vfsspi-ldoPin2 = <&gpf1 7 0x00>; + vfsspi-ocpen = <&gpv7 4 0x01>; + vfsspi-orient = <0>; + vfsspi-ldocontrol = <1>; + controller-data { + samsung,spi-feedback-delay = <0>; + samsung,spi-chip-select-mode = <0>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_00.dtsi new file mode 100644 index 000000000000..86cbb6540773 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_00.dtsi @@ -0,0 +1,377 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZEROLTE HW REV00-00A (b0000 - b0010) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* VOICE_WAKE */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* VOICE_RST_N */ + PIN_SLP(gpz0-6, PREV, NONE); /* MAIN_MIC_CTL */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd0-1, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* MHL_CSDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* MHL_CSCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* VOICE_RXD */ + PIN_SLP(gpd1-5, OUT1, UP); /* VOICE_TXD */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* MHL_SDA */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* MHL_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* DISP_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* DISP_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-4, NONE, LV1); /* VTCAM_ID */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, PREV, NONE); /* IR_LED_EN */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* MHL_RST */ + PIN_SLP(gpf1-4, INPUT, NONE); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_01.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_01.dtsi new file mode 100644 index 000000000000..dc5771d228c1 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_01.dtsi @@ -0,0 +1,377 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE HW REV00B (b0010) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* VOICE_WAKE */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* VOICE_RST_N */ + PIN_SLP(gpz0-6, PREV, NONE); /* MAIN_MIC_CTL */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd0-1, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* MHL_CSDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* MHL_CSCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* VOICE_RXD */ + PIN_SLP(gpd1-5, OUT1, UP); /* VOICE_TXD */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* MHL_SDA */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* MHL_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* DISP_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* DISP_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-4, NONE, LV1); /* VTCAM_ID */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, PREV, NONE); /* IR_LED_EN */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* MHL_RST */ + PIN_SLP(gpf1-4, INPUT, NONE); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_02.dtsi new file mode 100644 index 000000000000..cfbb850a6eb5 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_02.dtsi @@ -0,0 +1,392 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE HW REV01 (b0011) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_03.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_03.dtsi new file mode 100644 index 000000000000..e2bf2a284ffa --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_03.dtsi @@ -0,0 +1,393 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE HW REV02 (b0101) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_04.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_04.dtsi new file mode 100644 index 000000000000..cd7064681735 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_04.dtsi @@ -0,0 +1,393 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE HW REV03 (b0110) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_05.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_05.dtsi new file mode 100644 index 000000000000..12aed14b593b --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_05.dtsi @@ -0,0 +1,394 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE HW REV04 (b0111) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_06.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_06.dtsi new file mode 100644 index 000000000000..6745558267f3 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_06.dtsi @@ -0,0 +1,402 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE HW REV05 (b1000,1001) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_07.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_07.dtsi new file mode 100644 index 000000000000..6ea8f53f8658 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_07.dtsi @@ -0,0 +1,401 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE HW REV06 (b1010) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* WPC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_08.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_08.dtsi new file mode 100644 index 000000000000..c17cf072ffa5 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_08.dtsi @@ -0,0 +1,401 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE HW REV07 (b1011) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* WPC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_00.dtsi new file mode 100644 index 000000000000..b27391675523 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_00.dtsi @@ -0,0 +1,399 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CHN HW REV00 (b0110) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_01.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_01.dtsi new file mode 100644 index 000000000000..bd75b9e22f83 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_01.dtsi @@ -0,0 +1,415 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CHN HW REV00 (b1001) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd5-3, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* 2MIC_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_02.dtsi new file mode 100644 index 000000000000..2959e812c818 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_chn_02.dtsi @@ -0,0 +1,415 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CHN HW REV02 (b1011) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd5-3, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* 2MIC_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_ev03_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_ev03_00.dtsi new file mode 100644 index 000000000000..01a18562070d --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_ev03_00.dtsi @@ -0,0 +1,377 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE EV03 HW REV00 (b0001) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* VOICE_WAKE */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* VOICE_RST_N */ + PIN_SLP(gpz0-6, PREV, NONE); /* MAIN_MIC_CTL */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd0-1, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* MHL_CSDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* MHL_CSCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* VOICE_RXD */ + PIN_SLP(gpd1-5, OUT1, UP); /* VOICE_TXD */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* MHL_SDA */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* MHL_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* DISP_SDA */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* DISP_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-4, NONE, LV1); /* VTCAM_ID */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* IR_LED_EN */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* MHL_RST */ + PIN_SLP(gpf1-4, INPUT, NONE); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* MCU_AP_INT_1.8V */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* AP_MCU_INT_1.8V */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, PREV, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_00.dtsi new file mode 100644 index 000000000000..de83028fc32b --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_00.dtsi @@ -0,0 +1,375 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE JPN HW REV00 (b0101) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* CP_AP_HSIC_READY */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, UP); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_01.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_01.dtsi new file mode 100644 index 000000000000..efd03fdeae2f --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_01.dtsi @@ -0,0 +1,394 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE JPN HW REV00 (b0101) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi" + + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, DOWN); /* ISDBT_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, DOWN); /* ISDBT_SPI_CSN */ + PIN_SLP(gpd5-2, OUT0, DOWN); /* ISDBT_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, DOWN); /* ISDBT_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* CP_AP_HSIC_READY */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* ISDBT_INT */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, OUT0, DOWN); /* ISDBT_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, OUT0, DOWN); /* ISDBT_PWR_EN */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_02.dtsi new file mode 100644 index 000000000000..55d3b9a75ff8 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_02.dtsi @@ -0,0 +1,401 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE JPN HW REV01 (b0111) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, DOWN); /* ISDBT_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, DOWN); /* ISDBT_SPI_CSN */ + PIN_SLP(gpd5-2, OUT0, DOWN); /* ISDBT_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, DOWN); /* ISDBT_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* CP_AP_HSIC_READY */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* ISDBT_INT */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, OUT0, DOWN); /* ISDBT_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, OUT0, DOWN); /* ISDBT_PWR_EN */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_03.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_03.dtsi new file mode 100644 index 000000000000..8682658d53b1 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_03.dtsi @@ -0,0 +1,407 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE JPN HW REV01 (b1001) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r02.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, DOWN); /* ISDBT_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, DOWN); /* ISDBT_SPI_CSN */ + PIN_SLP(gpd5-2, OUT0, DOWN); /* ISDBT_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, DOWN); /* ISDBT_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* CP_AP_HSIC_READY */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* ISDBT_INT */ + + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, OUT0, DOWN); /* ISDBT_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, OUT0, DOWN); /* ISDBT_PWR_EN */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_04.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_04.dtsi new file mode 100644 index 000000000000..03197d62dd36 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_jpn_04.dtsi @@ -0,0 +1,407 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE JPN HW REV05 (b1100) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r02.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, PREV, NONE); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, PREV, NONE); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, PREV, NONE); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, DOWN); /* ISDBT_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, DOWN); /* ISDBT_SPI_CSN */ + PIN_SLP(gpd5-2, OUT0, DOWN); /* ISDBT_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, DOWN); /* ISDBT_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* CP_AP_HSIC_READY */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* ISDBT_INT */ + + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, OUT0, DOWN); /* ISDBT_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, OUT0, DOWN); /* FELICA_RFS */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT1, NONE); /* FELICA_LDO_EN */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, OUT0, DOWN); /* ISDBT_PWR_EN */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_00.dtsi new file mode 100644 index 000000000000..039014c52933 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_00.dtsi @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE KOR HW REV00 (b0000) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* CODEC_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* CODEC_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* CODEC_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* CODEC_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_LDO_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_LDO_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* VT_CAM_STBY */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* MAIN_CAM_NRST */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VT_CAM_NRST */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* COMP_SPI_INT */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* COMPANION_RSTN */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* CAM_SENSOR_DET */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* COMP_INT */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* MAIN_CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* MAIN_CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VT_CAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VT_CAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* AF_OIS_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* AF_OIS_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* COMP_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* FROM_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* MHL_SDA */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* MHL_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* MAIN_CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VT_CAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* DP_PMIC_SDA */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* DP_PMIC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP2CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RESETn */ + PIN_SLP(gpf1-2, PREV, NONE); /* IR_LED_EN */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* MHL_RST */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VT_CAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PM_WRSTI */ + PIN_SLP(gpf3-1, INPUT, NONE); /* OCP_FLAG */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* DISPLAY_LDO_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RESET_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP2CP_WAKE */ + PIN_SLP(gpf4-3, INPUT, DOWN); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP MCU RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP MCU REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* SW_I2C1_SCL */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* SW_I2C1_SDA */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* CDONE */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* AP_SMPL_WARN */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* TP(Dual Display 1) */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* TP(Dual Display 2) */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, PREV, NONE); /* EMMC_RSTN */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, PREV, NONE); /* XBOOTLDO1 */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* NFC_HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* NFC_HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* MHL_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* MHL_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* MHL_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* MHL_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* T_FLASH_CLK */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* T_FLASH_CMD */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* T_FLASH_D(0) */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* T_FLASH_D(1) */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* T_FLASH_D(2) */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* T_FLASH_D(3) */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, PREV, NONE); /* EMMC_CLK */ + PIN_SLP(gpr0-1, INPUT, NONE); /* EMMC_CMD */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* EMMC_RCLK */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, NONE); /* EMMC_DATA_0 */ + PIN_SLP(gpr1-1, INPUT, NONE); /* EMMC_DATA_1 */ + PIN_SLP(gpr1-2, INPUT, NONE); /* EMMC_DATA_2 */ + PIN_SLP(gpr1-3, INPUT, NONE); /* EMMC_DATA_3 */ + PIN_SLP(gpr1-4, INPUT, NONE); /* EMMC_DATA_4 */ + PIN_SLP(gpr1-5, INPUT, NONE); /* EMMC_DATA_5 */ + PIN_SLP(gpr1-6, INPUT, NONE); /* EMMC_DATA_6 */ + PIN_SLP(gpr1-7, INPUT, NONE); /* EMMC_DATA_7 */ + + PIN_SLP(gpr2-0, INPUT, DOWN); /* FPGA_RSTN */ + PIN_SLP(gpr2-1, OUT0, NONE); /* CRESET_B */ + PIN_SLP(gpr2-2, INPUT, DOWN); /* IRDA_IRQ */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* MHL_SPI_DVLD */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, NONE); /* COVER_ID */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* ERR_FG */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_01.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_01.dtsi new file mode 100644 index 000000000000..40efdf178c61 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_01.dtsi @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE KOR HW REV01 (b0011) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_02.dtsi new file mode 100644 index 000000000000..b07ff0dec4d7 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_02.dtsi @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE KOR HW REV02 (b0101) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_03.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_03.dtsi new file mode 100644 index 000000000000..2efe92777a50 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_03.dtsi @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE KOR HW REV03 (b0110) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_04.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_04.dtsi new file mode 100644 index 000000000000..ada0bbdf865d --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_04.dtsi @@ -0,0 +1,387 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE KOR HW REV04 (b0111) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_05.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_05.dtsi new file mode 100644 index 000000000000..03fd22c2e02c --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_05.dtsi @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE KOR HW REV05 (b1000,1001) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_06.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_06.dtsi new file mode 100644 index 000000000000..05ff3126de03 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_kor_06.dtsi @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE KOR HW REV06 (b1010) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* WPC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, PREV, NONE); /* TDMB_SPI_CLK */ + PIN_SLP(gpf2-1, PREV, NONE); /* TDMB_SPI_CS */ + PIN_SLP(gpf2-2, PREV, NONE); /* TDMB_SPI_MISO */ + PIN_SLP(gpf2-3, PREV, NONE); /* TDMB_SPI_MOSI1 */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, PREV, NONE); /* TDMB_INT */ + PIN_SLP(gpr2-4, PREV, NONE); /* TDMB_PWR_EN */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_ue_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_ue_00.dtsi new file mode 100644 index 000000000000..5ca8c5ad8708 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_ue_00.dtsi @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE USA OPEN HW REV00 (b0011) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* VOICE_WAKE */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* VOICE_RST_N */ + PIN_SLP(gpz0-6, PREV, NONE); /* MAIN_MIC_CTL */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd0-1, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* MHL_CSDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* MHL_CSCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* VOICE_RXD */ + PIN_SLP(gpd1-5, OUT1, UP); /* VOICE_TXD */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* MHL_SDA */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* MHL_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* DISP_SDA */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* DISP_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-4, NONE, LV1); /* VTCAM_ID */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* IR_LED_EN */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* MHL_RST */ + PIN_SLP(gpf1-4, INPUT, NONE); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* MCU_AP_INT_1.8V */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* AP_MCU_INT_1.8V */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_upop_01.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_upop_01.dtsi new file mode 100644 index 000000000000..3c7d38f9474d --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_upop_01.dtsi @@ -0,0 +1,357 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZEROLTE HW REV00 (b0000) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* DBMD_WAKEUP */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* DBMD_RST_N */ + PIN_SLP(gpz0-6, PREV, NONE); /* MIC_WAKEUP_EN */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_LDO_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_LDO_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VT_CAM_E2P_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VT_CAM_E2P_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VT_CAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VT_CAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* MAIN_CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* MAIN_CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VT_CAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VT_CAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* AF_OIS_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* AF_OIS_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd0-1, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* MHL_CSDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* MHL_CSCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* DBMD_RXD */ + PIN_SLP(gpd1-5, OUT1, UP); /* DBMD_TXD */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, NONE); /* ANC_INT */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* MHL_SDA */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* MHL_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, NONE); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* MAIN_CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VT_CAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* DP_PMIC_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* DP_PMIC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-4, NONE, LV1); /* VT_CAM_ID */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP2CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RESETn */ + PIN_SLP(gpf1-2, PREV, NONE); /* IR_LED_EN */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* MHL_RST */ + PIN_SLP(gpf1-4, INPUT, NONE); /* VT_CAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PM_WRSTI */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* OCP_FLAG */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RESET_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP2CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, UP); /* SSP MCU RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP MCU REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* SW_I2C1_SCL */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* SW_I2C1_SDA */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CONTROL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* AP_SMPL_WARN */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* TP(Dual Display 1) */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* TP(Dual Display 2) */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, INPUT, NONE); /* TP(UFS) */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, INPUT, NONE); /* 10K pull-up */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, PREV, NONE); /* XBOOTLDO1 */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* NFC_HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* NFC_HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* eSE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* eSE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* eSE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* eSE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, NONE); /* T_FLASH_CLK */ + PIN_SLP(gpr4-1, INPUT, NONE); /* T_FLASH_CMD */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, NONE); /* T_FLASH_D(0) */ + PIN_SLP(gpr4-4, INPUT, NONE); /* T_FLASH_D(1) */ + PIN_SLP(gpr4-5, INPUT, NONE); /* T_FLASH_D(2) */ + PIN_SLP(gpr4-6, INPUT, NONE); /* T_FLASH_D(3) */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, NONE); /* ANC_SDA */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, NONE); /* ANC_SCL */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, NONE); /* COVER_ID */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* ERR_FG */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_00.dtsi new file mode 100644 index 000000000000..6f7e2e13736b --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_00.dtsi @@ -0,0 +1,334 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE USA HW REV00 (b0000) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* CODEC_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* CODEC_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* CODEC_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* CODEC_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_LDO_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_LDO_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* VT_CAM_STBY */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* MAIN_CAM_NRST */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VT_CAM_NRST */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* COMP_SPI_INT */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* COMPANION_RSTN */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* CAM_SENSOR_DET */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* COMP_INT */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* MAIN_CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* MAIN_CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VT_CAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VT_CAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* AF_OIS_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* AF_OIS_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* COMP_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* FROM_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* MAIN_CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VT_CAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* DP_PMIC_SDA */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* DP_PMIC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP2CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RESETn */ + PIN_SLP(gpf1-2, PREV, NONE); /* IR_LED_EN */ + PIN_SLP(gpf1-3, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VT_CAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PM_WRSTI */ + PIN_SLP(gpf3-1, INPUT, NONE); /* OCP_FLAG */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* DISPLAY_LDO_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RESET_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP2CP_WAKE */ + PIN_SLP(gpf4-3, INPUT, DOWN); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP MCU RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP MCU REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* SW_I2C1_SCL */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* SW_I2C1_SDA */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* CDONE */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* AP_SMPL_WARN */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* TP(Dual Display 1) */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* TP(Dual Display 2) */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, PREV, NONE); /* EMMC_RSTN */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, PREV, NONE); /* XBOOTLDO1 */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* NFC_HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* NFC_HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* MHL_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* MHL_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* MHL_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* MHL_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* T_FLASH_CLK */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* T_FLASH_CMD */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* T_FLASH_D(0) */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* T_FLASH_D(1) */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* T_FLASH_D(2) */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* T_FLASH_D(3) */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, PREV, NONE); /* EMMC_CLK */ + PIN_SLP(gpr0-1, INPUT, NONE); /* EMMC_CMD */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* EMMC_RCLK */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, NONE); /* EMMC_DATA_0 */ + PIN_SLP(gpr1-1, INPUT, NONE); /* EMMC_DATA_1 */ + PIN_SLP(gpr1-2, INPUT, NONE); /* EMMC_DATA_2 */ + PIN_SLP(gpr1-3, INPUT, NONE); /* EMMC_DATA_3 */ + PIN_SLP(gpr1-4, INPUT, NONE); /* EMMC_DATA_4 */ + PIN_SLP(gpr1-5, INPUT, NONE); /* EMMC_DATA_5 */ + PIN_SLP(gpr1-6, INPUT, NONE); /* EMMC_DATA_6 */ + PIN_SLP(gpr1-7, INPUT, NONE); /* EMMC_DATA_7 */ + + PIN_SLP(gpr2-0, INPUT, DOWN); /* FPGA_RSTN */ + PIN_SLP(gpr2-1, OUT0, NONE); /* CRESET_B */ + PIN_SLP(gpr2-2, INPUT, DOWN); /* IRDA_IRQ */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* FPGA_SDA */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* FPGA_SCL */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* MHL_SPI_DVLD */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, NONE); /* COVER_ID */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* ERR_FG */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_01.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_01.dtsi new file mode 100644 index 000000000000..5fda7d980615 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_01.dtsi @@ -0,0 +1,334 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE USA HW REV00A (b0010) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* CODEC_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* CODEC_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* CODEC_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* CODEC_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_LDO_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_LDO_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* VT_CAM_STBY */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* MAIN_CAM_NRST */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VT_CAM_NRST */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* COMP_SPI_INT */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* COMPANION_RSTN */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* CAM_SENSOR_DET */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* COMP_INT */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* MAIN_CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* MAIN_CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VT_CAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VT_CAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* AF_OIS_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* AF_OIS_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* COMP_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* FROM_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, OUT0, NONE); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, OUT0, NONE); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, OUT0, NONE); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* MAIN_CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VT_CAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* DP_PMIC_SDA */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* DP_PMIC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP2CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* MICBIAS_EN_AP */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RESETn */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* IR_LED_EN */ + PIN_SLP(gpf1-3, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VT_CAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PM_WRSTI */ + PIN_SLP(gpf3-1, INPUT, NONE); /* OCP_FLAG */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* DISPLAY_LDO_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RESET_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP2CP_WAKE */ + PIN_SLP(gpf4-3, INPUT, DOWN); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* CP2AP_STATUS */ + PIN_SLP(gpf4-5, PREV, NONE); /* CP2AP_GPIO_RSV */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* SW_I2C1_SCL */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* SW_I2C1_SDA */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* MHL_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* CDONE */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* AP_SMPL_WARN */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* TP(Dual Display 1) */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* TP(Dual Display 2) */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, PREV, NONE); /* EMMC_RSTN */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, PREV, NONE); /* XBOOTLDO1 */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* NFC_HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* NFC_HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* TP */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* MHL_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* MHL_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* MHL_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* MHL_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* T_FLASH_CLK */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* T_FLASH_CMD */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* T_FLASH_D(0) */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* T_FLASH_D(1) */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* T_FLASH_D(2) */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* T_FLASH_D(3) */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, PREV, NONE); /* EMMC_CLK */ + PIN_SLP(gpr0-1, INPUT, NONE); /* EMMC_CMD */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* EMMC_RCLK */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, NONE); /* EMMC_DATA_0 */ + PIN_SLP(gpr1-1, INPUT, NONE); /* EMMC_DATA_1 */ + PIN_SLP(gpr1-2, INPUT, NONE); /* EMMC_DATA_2 */ + PIN_SLP(gpr1-3, INPUT, NONE); /* EMMC_DATA_3 */ + PIN_SLP(gpr1-4, INPUT, NONE); /* EMMC_DATA_4 */ + PIN_SLP(gpr1-5, INPUT, NONE); /* EMMC_DATA_5 */ + PIN_SLP(gpr1-6, INPUT, NONE); /* EMMC_DATA_6 */ + PIN_SLP(gpr1-7, INPUT, NONE); /* EMMC_DATA_7 */ + + PIN_SLP(gpr2-0, INPUT, DOWN); /* FPGA_RSTN */ + PIN_SLP(gpr2-1, OUT0, NONE); /* CRESET_B */ + PIN_SLP(gpr2-2, INPUT, DOWN); /* IRDA_IRQ */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* FPGA_SDA */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* FPGA_SCL */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* DISPLAY_ID*/ + PIN_SLP(gpr3-3, INPUT, DOWN); /* MHL_SPI_DVLD */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, NONE); /* COVER_ID */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* ERR_FG */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_02.dtsi new file mode 100644 index 000000000000..bce0d3cf3d6d --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_02.dtsi @@ -0,0 +1,384 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE USA HW REV01 (b0011) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_03.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_03.dtsi new file mode 100644 index 000000000000..5a9b15db96ca --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_03.dtsi @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE USA HW REV02 (b0110) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WLCHG_CTL */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_04.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_04.dtsi new file mode 100644 index 000000000000..71bffcb2644f --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_04.dtsi @@ -0,0 +1,386 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE USA HW REV03 (b0111) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_05.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_05.dtsi new file mode 100644 index 000000000000..99297273d10d --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_05.dtsi @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE USA HW REV05 (b1000) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpg3-2, DOWN, LV1); /* NC */ + PIN_IN(gpg3-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_06.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_06.dtsi new file mode 100644 index 000000000000..e57d2e88b403 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_06.dtsi @@ -0,0 +1,385 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE USA HW REV06 (b1010) + +#include "exynos_gpio_config_macros.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* WPC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_00.dtsi new file mode 100644 index 000000000000..d4123020a6e7 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_00.dtsi @@ -0,0 +1,399 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CDMA HW REV00 (b0110) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + PIN_IN(gpd5-2, DOWN, LV1); /* NC */ + PIN_IN(gpd5-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-1, DOWN, LV1); /* NC */ + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + PIN_IN(gpr3-6, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_01.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_01.dtsi new file mode 100644 index 000000000000..7c85a6bc269b --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_01.dtsi @@ -0,0 +1,402 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CDMA HW REV04 (b0111) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + PIN_IN(gpd5-2, DOWN, LV1); /* NC */ + PIN_IN(gpd5-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-1, DOWN, LV1); /* NC */ + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + PIN_IN(gpr3-6, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_02.dtsi new file mode 100644 index 000000000000..846aebbb4c10 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_02.dtsi @@ -0,0 +1,402 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CDMA HW REV06 (b1001) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd5-3, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-1, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + PIN_IN(gpr3-6, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_03.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_03.dtsi new file mode 100644 index 000000000000..60f282fe2634 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_gpio_usa_cdma_03.dtsi @@ -0,0 +1,401 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE CDMA HW REV07 (b1010) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_IN(gpa3-2, NONE, LV1); /* PCIE1_WAKE_N */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpd5-3, INPUT, NONE); /* WPC_SCL */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* SUB_PMIC_SDA_1P8 */ + PIN_SLP(gpg3-3, INPUT, NONE); /* SUB_PMIC_SCL_1P8 */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + PIN_IN(gpf0-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-1, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpg2-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, INPUT, DOWN); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, PREV, DOWN); /* AP_CP_VDDMIN */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, PREV, NONE); /* USB_EAR_DET */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi new file mode 100644 index 000000000000..d7c058fee4b7 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi @@ -0,0 +1,192 @@ +/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/{ + + /delete-node/ i2c@50; + /delete-node/ uart@13630000; + hsi2c_6: hsi2c@14E00000 { + status = "okay"; + /delete-node/ pn547@2B; + isdb_fc8300@58 { + compatible = "isdb,isdb_fc8300"; + reg = <0x58>; + }; + felica_i2c@2B + { + compatible = "felica,felica-i2c"; + reg = <0x2B>; + }; + }; + + i2c@50 { /* gpr2-3 gpr2-4 */ + status = "disabled"; + }; + pinctrl@13470000 { + /delete-node/ uart0_bus; + uart0_bus: uart0-bus { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + uart0_lpm: lpm + { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + uart0_suspend: uart0-suspend { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + spi_5: spi@14d90000 { + #address-cells = <1>; + #size-cells = <0>; + num-cs = <1>; + + dma-mode; + dmas = <&pdma1 11 + &pdma1 10>; + dma-names = "tx", "rx"; + swap-mode; + status = "ok"; + spi-clkoff-time = <100>; + + isdbt-spi@0 { + compatible = "isdbt_spi_comp"; + reg = <0>; + spi-max-frequency = <50000000>; + controller-data { + cs-gpio = <&gpf2 1 0>; + samsung,spi-feedback-delay = <2>; + }; + }; + }; + + isdbt_fc8300_data { + compatible = "isdb_fc8300_pdata"; + + isdbt,isdb-gpio-pwr-en = <&gpr2 3 0>; + isdbt,isdb-gpio-rst = <&gpf3 1 0>; + isdbt,isdb-gpio-irq = <&gpa3 4 0x01>; + isdbt,isdb-gpio-lna = <&gpr2 4 0>; + isdbt,isdb-gpio-i2c_sda = <&gpj0 0 0>; + isdbt,isdb-gpio-i2c_scl = <&gpj0 1 0>; + isdbt,isdb-gpio-spi_do = <&gpf2 3 0>; + isdbt,isdb-gpio-spi_di = <&gpf2 2 0>; + isdbt,isdb-gpio-spi_cs = <&gpf2 1 0>; + isdbt,isdb-gpio-spi_clk = <&gpf2 0 0>; + isdbt,isdb-bbm-xtal-freq = <24000>; + + clocks = <&clock 45>; + clock-names = "isdbt_clkout"; + + }; + + pinctrl@10580000 + { + felica_nfc_pon: pon /* VEN PIN */ + { + samsung,pins = "gpa2-6"; + samsung,pin-function = <1>; /* Output */ + samsung,pin-pud = <0>; /* NONE*/ + samsung,pin-drv = <3>; /* High */ + }; + + felica_nfc_int: int /* IRQ PIN */ + { + samsung,pins = "gpa0-6"; + samsung,pin-function = <0xf>; /* WAKE_EXT_INT */ + samsung,pin-pud = <1>; /* Pull Down Enabled */ + samsung,pin-drv = <3>; /* High */ + }; + }; +/* + pinctrl@13630000 + { + felica_nfc_uart_suspend: felica_nfc_uart_suspend + { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + felica_nfc_uart_active: felica_nfc_uart_active + { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + }; +*/ + pinctrl@14870000 + { + sec_nfc_rfs_lpm: rfs_lpm + { + samsung,pins = "gpf1-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + serial_0: uart@13630000 + { + compatible = "samsung,exynos7420-uart"; + samsung,separate-uart-clk; + reg = <0x13630000 0x100>; + interrupts = <0 440 0>; + clocks = <&clock 103>, <&clock 104>, <&clock 100>; + clock-names = "gate_pclk0", "gate_uart0", "sclk_uart0"; + uart-sclk-frequency = <200000000>; + status = "okay"; + }; + + senn3ab_fn + { + status = "okay"; + compatible = "sec-nfc-fn"; + interrupt-parent = <&gpa0>; + interrupts = <6 0>; + + sec-nfc-fn,int-gpio = <&gpa0 6 0x00>; + }; + + senn3ab + { + status = "okay"; + compatible = "sec-nfc"; + interrupt-parent = <&gpa0>; + interrupts = <6 0 0>; + + sec-nfc,irq-gpio = <&gpa0 6 0x00>; + sec-nfc,pon-gpio = <&gpa2 6 0x00>; + sec-nfc,rfs-gpio = <&gpf1 5 0x0>; + sec-nfc,tvdd-gpio = <&gpf5 4 0x1>; + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + + pinctrl-names = "sec_nfc_active", "sec_nfc_suspend", "sec_nfc_lpm"; /*, "sec_nfc_uart_suspend", "sec_nfc_uart_active" */ + pinctrl-0 = <&felica_nfc_pon &felica_nfc_int &uart0_bus>; + pinctrl-1 = <&felica_nfc_pon &felica_nfc_int &uart0_suspend>; + pinctrl-2 = <&felica_nfc_pon &felica_nfc_int &uart0_lpm &sec_nfc_rfs_lpm>; + /* + pinctrl-2 = <&felica_nfc_uart_suspend>; + pinctrl-3 = <&felica_nfc_uart_active>; + */ + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi new file mode 100644 index 000000000000..76d2792baeab --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r01.dtsi @@ -0,0 +1,208 @@ +/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/{ + + /delete-node/ i2c@50; + /delete-node/ uart@13630000; + hsi2c_6: hsi2c@14E00000 { + status = "okay"; + /delete-node/ pn547@2B; + isdb_fc8300@58 { + compatible = "isdb,isdb_fc8300"; + reg = <0x58>; + }; + felica_i2c@2B + { + compatible = "felica,felica-i2c"; + reg = <0x2B>; + }; + }; + + i2c@50 { /* gpr2-3 gpr2-4 */ + status = "disabled"; + }; + + pinctrl@13470000 { + /delete-node/ spi2-bus; + /delete-node/ spi2-cs-func; + /delete-node/ uart0_bus; + spi2_bus: spi2-bus { + samsung,pins = "gpd5-0", "gpd5-2", "gpd5-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + spi2_cs_func: spi2-cs-func { + samsung,pins = "gpd5-1"; + samsung,pin-function = <0x2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + uart0_bus: uart0-bus { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + uart0_lpm: lpm + { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + uart0_suspend: uart0-suspend { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + spi_2: spi@14d40000 { + pinctrl-0 = <&spi2_bus>, <&spi2_cs_func>; + #address-cells = <1>; + #size-cells = <0>; + num-cs = <1>; + + dma-mode; + dmas = <&pdma0 11 + &pdma0 10>; + dma-names = "tx", "rx"; + swap-mode; + status = "ok"; + spi-clkoff-time = <100>; + + isdbt-spi@0 { + compatible = "isdbt_spi_comp"; + reg = <0>; + spi-max-frequency = <50000000>; + controller-data { + cs-gpio = <&gpd5 1 0>; + samsung,spi-feedback-delay = <3>; + }; + }; + }; + + isdbt_fc8300_data { + compatible = "isdb_fc8300_pdata"; + + isdbt,isdb-gpio-pwr-en = <&gpr2 3 0>; + isdbt,isdb-gpio-rst = <&gpf1 0 0>; + isdbt,isdb-gpio-irq = <&gpf5 5 0x01>; + isdbt,isdb-gpio-lna = <&gpr2 4 0>; + isdbt,isdb-gpio-i2c_sda = <&gpj0 0 0>; + isdbt,isdb-gpio-i2c_scl = <&gpj0 1 0>; + isdbt,isdb-gpio-spi_do = <&gpd5 3 0>; + isdbt,isdb-gpio-spi_di = <&gpd5 2 0>; + isdbt,isdb-gpio-spi_cs = <&gpd5 1 0>; + isdbt,isdb-gpio-spi_clk = <&gpd5 0 0>; + isdbt,isdb-bbm-xtal-freq = <24000>; + + clocks = <&clock 45>; + clock-names = "isdbt_clkout"; + + }; + + pinctrl@10580000 + { + felica_nfc_pon: pon /* VEN PIN */ + { + samsung,pins = "gpa2-6"; + samsung,pin-function = <1>; /* Output */ + samsung,pin-pud = <0>; /* NONE */ + samsung,pin-drv = <3>; /* High */ + }; + + felica_nfc_int: int /* IRQ PIN */ + { + samsung,pins = "gpa0-6"; + samsung,pin-function = <0xf>; /* WAKE_EXT_INT */ + samsung,pin-pud = <1>; /* Pull Down Enabled */ + samsung,pin-drv = <3>; /* High */ + }; + }; +/* + pinctrl@13630000 + { + felica_nfc_uart_suspend: felica_nfc_uart_suspend + { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + felica_nfc_uart_active: felica_nfc_uart_active + { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + }; +*/ + pinctrl@14870000 + { + sec_nfc_rfs_lpm: rfs_lpm + { + samsung,pins = "gpf1-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + serial_0: uart@13630000 + { + compatible = "samsung,exynos7420-uart"; + samsung,separate-uart-clk; + reg = <0x13630000 0x100>; + interrupts = <0 440 0>; + clocks = <&clock 103>, <&clock 104>, <&clock 100>; + clock-names = "gate_pclk0", "gate_uart0", "sclk_uart0"; + uart-sclk-frequency = <200000000>; + status = "okay"; + }; + + senn3ab_fn + { + status = "okay"; + compatible = "sec-nfc-fn"; + interrupt-parent = <&gpa0>; + interrupts = <6 0>; + + sec-nfc-fn,int-gpio = <&gpa0 6 0x00>; + }; + + senn3ab + { + status = "okay"; + compatible = "sec-nfc"; + interrupt-parent = <&gpa0>; + interrupts = <6 0 0>; + + sec-nfc,irq-gpio = <&gpa0 6 0x00>; + sec-nfc,pon-gpio = <&gpa2 6 0x00>; + sec-nfc,rfs-gpio = <&gpf1 5 0x0>; + sec-nfc,tvdd-gpio = <&gpf5 4 0x1>; + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + sec-nfc,regulator_tvdd = "vdd_tx_2p8"; + pinctrl-names = "sec_nfc_active", "sec_nfc_suspend", "sec_nfc_lpm"; /*, "sec_nfc_uart_suspend", "sec_nfc_uart_active" */ + pinctrl-0 = <&felica_nfc_pon &felica_nfc_int &uart0_bus>; + pinctrl-1 = <&felica_nfc_pon &felica_nfc_int &uart0_suspend>; + pinctrl-2 = <&felica_nfc_pon &felica_nfc_int &uart0_lpm &sec_nfc_rfs_lpm>; + /* + pinctrl-2 = <&felica_nfc_uart_suspend>; + pinctrl-3 = <&felica_nfc_uart_active>; + */ + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r02.dtsi new file mode 100644 index 000000000000..bfc5d05d08ac --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_jpn-secnfc-tuner-r02.dtsi @@ -0,0 +1,209 @@ +/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/{ + + /delete-node/ i2c@50; + /delete-node/ uart@13630000; + hsi2c_6: hsi2c@14E00000 { + status = "okay"; + /delete-node/ pn547@2B; + isdb_fc8300@58 { + compatible = "isdb,isdb_fc8300"; + reg = <0x58>; + }; + felica_i2c@2B + { + compatible = "felica,felica-i2c"; + reg = <0x2B>; + }; + }; + + i2c@50 { /* gpr2-3 gpr2-4 */ + status = "disabled"; + }; + + pinctrl@13470000 { + /delete-node/ spi2-bus; + /delete-node/ spi2-cs-func; + /delete-node/ uart0_bus; + spi2_bus: spi2-bus { + samsung,pins = "gpd5-0", "gpd5-2", "gpd5-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + spi2_cs_func: spi2-cs-func { + samsung,pins = "gpd5-1"; + samsung,pin-function = <0x2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + uart0_bus: uart0-bus { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + uart0_lpm: lpm + { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + uart0_suspend: uart0-suspend { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + spi_2: spi@14d40000 { + pinctrl-0 = <&spi2_bus>, <&spi2_cs_func>; + #address-cells = <1>; + #size-cells = <0>; + num-cs = <1>; + + dma-mode; + dmas = <&pdma0 11 + &pdma0 10>; + dma-names = "tx", "rx"; + swap-mode; + status = "ok"; + spi-clkoff-time = <100>; + + isdbt-spi@0 { + compatible = "isdbt_spi_comp"; + reg = <0>; + spi-max-frequency = <50000000>; + controller-data { + cs-gpio = <&gpd5 1 0>; + samsung,spi-feedback-delay = <3>; + }; + }; + }; + + isdbt_fc8300_data { + compatible = "isdb_fc8300_pdata"; + + isdbt,isdb-gpio-pwr-en = <&gpr2 3 0>; + isdbt,isdb-gpio-rst = <&gpf1 0 0>; + isdbt,isdb-gpio-irq = <&gpf5 5 0x01>; + isdbt,isdb-gpio-lna = <&gpr2 4 0>; + isdbt,isdb-gpio-i2c_sda = <&gpj0 0 0>; + isdbt,isdb-gpio-i2c_scl = <&gpj0 1 0>; + isdbt,isdb-gpio-spi_do = <&gpd5 3 0>; + isdbt,isdb-gpio-spi_di = <&gpd5 2 0>; + isdbt,isdb-gpio-spi_cs = <&gpd5 1 0>; + isdbt,isdb-gpio-spi_clk = <&gpd5 0 0>; + isdbt,isdb-bbm-xtal-freq = <24000>; + isdbt,ldo_vdd_1p8 = "VDD_1.8V_ESE"; /* LDO 23 */ + + clocks = <&clock 45>; + clock-names = "isdbt_clkout"; + + }; + + pinctrl@10580000 + { + felica_nfc_pon: pon /* VEN PIN */ + { + samsung,pins = "gpa2-6"; + samsung,pin-function = <1>; /* Output */ + samsung,pin-pud = <0>; /* NONE */ + samsung,pin-drv = <3>; /* High */ + }; + + felica_nfc_int: int /* IRQ PIN */ + { + samsung,pins = "gpa0-6"; + samsung,pin-function = <0xf>; /* WAKE_EXT_INT */ + samsung,pin-pud = <1>; /* Pull Down Enabled */ + samsung,pin-drv = <3>; /* High */ + }; + }; +/* + pinctrl@13630000 + { + felica_nfc_uart_suspend: felica_nfc_uart_suspend + { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + felica_nfc_uart_active: felica_nfc_uart_active + { + samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + }; +*/ + pinctrl@14870000 + { + sec_nfc_rfs_lpm: rfs_lpm + { + samsung,pins = "gpf1-5"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + serial_0: uart@13630000 + { + compatible = "samsung,exynos7420-uart"; + samsung,separate-uart-clk; + reg = <0x13630000 0x100>; + interrupts = <0 440 0>; + clocks = <&clock 103>, <&clock 104>, <&clock 100>; + clock-names = "gate_pclk0", "gate_uart0", "sclk_uart0"; + uart-sclk-frequency = <200000000>; + status = "okay"; + }; + + senn3ab_fn + { + status = "okay"; + compatible = "sec-nfc-fn"; + interrupt-parent = <&gpa0>; + interrupts = <6 0>; + + sec-nfc-fn,int-gpio = <&gpa0 6 0x00>; + }; + + senn3ab + { + status = "okay"; + compatible = "sec-nfc"; + interrupt-parent = <&gpa0>; + interrupts = <6 0 0>; + + sec-nfc,irq-gpio = <&gpa0 6 0x00>; + sec-nfc,pon-gpio = <&gpa2 6 0x00>; + sec-nfc,rfs-gpio = <&gpf1 5 0x0>; + sec-nfc,tvdd-gpio = <&gpf5 4 0x1>; + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + sec-nfc,regulator_tvdd = "vdd_tx_2p8"; + pinctrl-names = "sec_nfc_active", "sec_nfc_suspend", "sec_nfc_lpm"; /*, "sec_nfc_uart_suspend", "sec_nfc_uart_active" */ + pinctrl-0 = <&felica_nfc_pon &felica_nfc_int &uart0_bus>; + pinctrl-1 = <&felica_nfc_pon &felica_nfc_int &uart0_suspend>; + pinctrl-2 = <&felica_nfc_pon &felica_nfc_int &uart0_lpm &sec_nfc_rfs_lpm>; + /* + pinctrl-2 = <&felica_nfc_uart_suspend>; + pinctrl-3 = <&felica_nfc_uart_active>; + */ + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_jpn_00.dts b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_00.dts new file mode 100644 index 000000000000..92ebc9fd7bc9 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_00.dts @@ -0,0 +1,825 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_jpn_00.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE JPN rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <5>; + compatible = "samsung,ZERO LTE JPN EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + /* &gpa3 2 0xf */ + >; + status = "okay"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_jpn_01.dts b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_01.dts new file mode 100644 index 000000000000..39fcc1c82cd2 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_01.dts @@ -0,0 +1,837 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_jpn_01.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE JPN rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <6>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO LTE JPN EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <139 85 83 13 4 173 0 132 209 55 + 203 107 85 107 2 223 252 232 47 168 + 189 1 231 61 12 66 205>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_jpn_02.dts b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_02.dts new file mode 100644 index 000000000000..fb4ef339986f --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_02.dts @@ -0,0 +1,837 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_jpn_02.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE JPN rev01 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <8>; + compatible = "samsung,ZERO LTE JPN EVT1 mPOP,r01", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <139 85 83 13 4 173 0 132 209 55 + 203 107 85 107 2 223 252 232 47 168 + 189 1 231 61 12 66 205>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_jpn_03.dts b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_03.dts new file mode 100644 index 000000000000..f536e0903ee7 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_03.dts @@ -0,0 +1,832 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_jpn_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_jpn_03.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +/ { + model = "Samsung ZERO LTE JPN rev02 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <9>; + model_info-hw_rev_end = <11>; + compatible = "samsung,ZERO LTE JPN EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <139 85 83 13 4 173 0 132 209 55 + 203 107 85 107 2 223 252 232 47 168 + 189 1 231 61 12 66 205>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + _ldo18_reg: s2mpb02-ldo18 { + regulator-name = "vdd_tx_2p8"; + regulator-min-microvolt = <3400000>; + regulator-max-microvolt = <3400000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_jpn_04.dts b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_04.dts new file mode 100644 index 000000000000..2d38bb424733 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_04.dts @@ -0,0 +1,846 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_jpn_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_jpn_04.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" +/ { + model = "Samsung ZERO LTE JPN rev05 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <12>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO LTE JPN EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <139 85 83 13 4 173 0 132 209 55 + 203 107 85 107 2 223 252 232 47 168 + 189 1 231 61 12 66 205>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + _ldo18_reg: s2mpb02-ldo18 { + regulator-name = "vdd_tx_2p8"; + regulator-min-microvolt = <3400000>; + regulator-max-microvolt = <3400000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@4 { + compatible = "samsung,sec-cf-thermistor"; + status = "okay"; + + adc_array = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 + 3436>; + temp_array = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100)(-110)(-120)(-130)(-140)(-150)(-160)(-170)(-180)(-190) + (-200)>; + + io-channels = <&exynos_adc 4>; + io-channel-names = "adc-cf-temp"; + io-channel-ranges; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_jpn_battery_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_battery_02.dtsi new file mode 100644 index 000000000000..ac5e2496fa32 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_jpn_battery_02.dtsi @@ -0,0 +1,349 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + hsi2c@13680000 { /* hsi2c9 */ + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + status = "okay"; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2600 1000 2600 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_kor-tdmb-00.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_kor-tdmb-00.dtsi new file mode 100644 index 000000000000..c8a4d9c39e9d --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_kor-tdmb-00.dtsi @@ -0,0 +1,75 @@ + /* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/{ + pinctrl@15690000 { + tdmb_pwr_on: tdmb-pwr-on { + samsung,pins = "gpr2-4"; + samsung,pin-function = <1>; /* OUTPUT */ + samsung,pin-pud = <0>; /* PULL NONE */ + }; + tdmb_irq_on: tdmb-irq-on { + samsung,pins = "gpr2-3"; + samsung,pin-function = <0xf>; /* EXT_INT31[3] */ + samsung,pin-pud = <0>; /* PULL NONE */ + }; + tdmb_irq_off: tdmb-irq-off { + samsung,pins = "gpr2-3"; + samsung,pin-function = <0>; /* INPUT */ + samsung,pin-pud = <1>; /* PULL DOWN */ + }; + tdmb_pwr_off: tdmb-pwr-off { + samsung,pins = "gpr2-4"; + samsung,pin-function = <1>; /* OUTPUT */ + samsung,pin-pud = <1>; /* PULL DOWN */ + samsung,pin-drv = <0>; + }; + }; + + i2c@50 { /* gpr2-3 gpr2-4 */ + status = "disabled"; + }; + + spi_5: spi@14d90000 { + #address-cells = <1>; + #size-cells = <0>; + num-cs = <1>; + + dma-mode; + dmas = <&pdma1 11 + &pdma1 10>; + dma-names = "tx", "rx"; + + status = "ok"; + + tdmb-spi@0 { + compatible = "tdmb_spi_comp"; + reg = <0>; + spi-max-frequency = <9600000>; + controller-data { + cs-gpio = <&gpf2 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + tdmb_data { + compatible = "samsung,tdmb"; + pinctrl-names = "tdmb_on", "tdmb_off"; + pinctrl-0 = <&tdmb_pwr_on &tdmb_irq_on>; + pinctrl-1 = <&tdmb_pwr_off &tdmb_irq_off>; + tdmb_pwr_en = <&gpr2 4 0>; + tdmb_irq = <&gpr2 3 0>; + tdmb_use_irq; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_kor_00.dts b/arch/arm64/boot/dts/exynos7420-zerolte_kor_00.dts new file mode 100644 index 000000000000..6ae9d2ebd087 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_kor_00.dts @@ -0,0 +1,675 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_kor_00.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +/ { + model = "Samsung ZERO LTE KOR rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <0>; + compatible = "samsung,ZERO LTE KOR EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <6>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + mic_bias_gpio = <&gpf1 0 0>; + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + sec-mst{ + compatible = "sec-mst"; + sec-mst,mst-pwr-gpio = <&gpf3 2 0>; + sec-mst,mst-md-gpio = <&gpj0 2 0>; + sec-mst,mst-pd-gpio = <&gpj1 2 0>; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13650000{ + max77833@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VSIL_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + fimc_is@14200000 { + pinctrl-names = "default", "release"; + pinctrl-0 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_mclk2_out>; + pinctrl-1 = <>; + }; + + fimc_is_sensor_imx240: fimc-is_sensor_imx240@34 { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_2p2: fimc-is_sensor_2p2@5A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out &fimc_is_mclk2_out &fimc_is_i2c0 &fimc_is_i2c1>; + pinctrl-2 = <&fimc_is_mclk1_fn &fimc_is_mclk2_fn &fimc_is_i2c0 &fimc_is_i2c1>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_kor_01.dts b/arch/arm64/boot/dts/exynos7420-zerolte_kor_01.dts new file mode 100644 index 000000000000..01c0039d7f6c --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_kor_01.dts @@ -0,0 +1,819 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_kor_01.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE KOR rev01 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <3>; + model_info-hw_rev_end = <3>; + compatible = "samsung,ZERO LTE KOR EVT1 mPOP,r01", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_kor_02.dts b/arch/arm64/boot/dts/exynos7420-zerolte_kor_02.dts new file mode 100644 index 000000000000..6e830a5b2cde --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_kor_02.dts @@ -0,0 +1,810 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_kor_02.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE KOR rev02 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <5>; + model_info-hw_rev_end = <5>; + compatible = "samsung,ZERO LTE KOR EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_kor_03.dts b/arch/arm64/boot/dts/exynos7420-zerolte_kor_03.dts new file mode 100644 index 000000000000..def09f2faf98 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_kor_03.dts @@ -0,0 +1,827 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_kor_03.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE KOR rev03 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <6>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO LTE KOR EVT1 mPOP,r03", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_kor_04.dts b/arch/arm64/boot/dts/exynos7420-zerolte_kor_04.dts new file mode 100644 index 000000000000..d200e2277d17 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_kor_04.dts @@ -0,0 +1,833 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_kor_04.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE KOR rev04 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <7>; + compatible = "samsung,ZERO LTE KOR EVT1 mPOP,r04", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_kor_05.dts b/arch/arm64/boot/dts/exynos7420-zerolte_kor_05.dts new file mode 100644 index 000000000000..78ca9d56faab --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_kor_05.dts @@ -0,0 +1,833 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_05.dtsi" +#include "exynos7420-zerolte_gpio_kor_05.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE KOR rev05 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <8>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO LTE KOR EVT1 mPOP,r05", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_kor_06.dts b/arch/arm64/boot/dts/exynos7420-zerolte_kor_06.dts new file mode 100644 index 000000000000..8a2102936409 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_kor_06.dts @@ -0,0 +1,833 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_06.dtsi" +#include "exynos7420-zerolte_gpio_kor_06.dtsi" +#include "exynos7420-zerolte_modem-shannon_kor.dtsi" +#include "exynos7420-zerolte_kor-tdmb-00.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE KOR rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <10>; + model_info-hw_rev_end = <10>; + compatible = "samsung,ZERO LTE KOR EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <183>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_mhl.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_mhl.dtsi new file mode 100644 index 000000000000..4f79935b9abc --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_mhl.dtsi @@ -0,0 +1,83 @@ +/* Copyright (c) 2013, Samsung Electronics Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/ { + hsi2c@14E70000 { + status = "okay"; + samsung,fs-mode; + clock-frequency = <400000>; + + sii8620tmds@39 { + compatible = "sii8620,tmds"; + reg = <0x39>; /* 0x72 >> 1 */ + sii8620,client_id = <0x00>; + + pinctrl-names = "default"; + pinctrl-0 = <&mhl_irq>; + + sii8620,gpio_mhl_irq = <&gpf5 5 0>; + sii8620,gpio_mhl_reset = <&gpf1 3 0>; + sii8620,gpio_mhl_scl = <&gpd1 3 0>; + sii8620,gpio_mhl_sda = <&gpd1 2 0>; + sii8620,swing_level_v2 = <0xBB>; + sii8620,swing_level_v3 = <0xA2>; + + clocks = <&clock 4300>; + clock-names = "mhl_clkout"; + }; + sii8620hdmi@3D { + compatible = "sii8620,usbt"; + reg = <0x3D>; /* 0x7A >> 1 */ + sii8620,client_id = <0x01>; + }; + sii8620hdmi@49 { + compatible = "sii8620,disc"; + reg = <0x49>; /* 0x92 >> 1 */ + sii8620,client_id = <0x02>; + }; + sii8620disc@4D { + compatible = "sii8620,tpi"; + reg = <0x4D>; /* 0x9A >> 1 */ + sii8620,client_id = <0x03>; + }; + sii8620tpi@59 { + compatible = "sii8620,tpi"; + reg = <0x59>; /* 0xB2 >> 1 */ + sii8620,client_id = <0x04>; + }; + sii8620cbus@64 { + compatible = "sii8620,cbus"; + reg = <0x64>; /* 0xC8 >> 1 */ + sii8620,client_id = <0x05>; + }; + sii8620coc@61 { + compatible = "sii8620,coc"; + reg = <0x61>; /* 0xC2 >> 1 */ + sii8620,client_id = <0x06>; + }; + sii8620devcap@5D { + compatible = "sii8620,devcap"; + reg = <0x5D>; /* 0xBA >> 1 */ + sii8620,client_id = <0x07>; + }; + }; + + pinctrl@14870000 { + mhl_irq: mhl-irq { + samsung,pins = "gpf5-5"; + samsung,pins-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_modem-mdm9x35.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_modem-mdm9x35.dtsi new file mode 100644 index 000000000000..5740f05945d9 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_modem-mdm9x35.dtsi @@ -0,0 +1,106 @@ +/* + * SAMSUNG board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + + mdm1: qcom,mdm1 { + compatible = "qcom,ext-mdm9x35"; + + pinctrl-names = "default"; + pinctrl-0 = <&ap2mdm_errfatal &ap2mdm_soft_reset &ap2mdm_hostrdy &ap2mdm_status + &ap2mdm_hsic_ready &ap2mdm_vddmin>; + + qcom,ramdump-delay-ms = <2000>; + qcom,ramdump-timeout-ms = <120000>; + qcom,sfr-query; + qcom,sysmon-subsys-id = <20>; + qcom,support-shutdown; + + qcom,mdm2ap-errfatal-gpio = <&gpa3 0 0xf>; + qcom,ap2mdm-errfatal-gpio = <&gpa3 4 0x1>; + qcom,mdm2ap-status-gpio = <&gpa1 0 0xf>; + qcom,ap2mdm-status-gpio = <&gpf0 4 0x1>; + qcom,ap2mdm-soft-reset-gpio = <&gpf5 0 0x1>; + qcom,mdm2ap-pblrdy-gpio = <&gpf2 2 0xf>; + qcom,ap2mdm-vddmin-gpio = <&gpf2 1 0x1>; + qcom,mdm2ap-vddmin-gpio = <&gpf2 0 0x0>; + qcom,ap2mdm-hsic-ready-gpio = <&gpf2 3 0x1>; + }; + + mdmpm_pdata { + compatible = "qcom,mdm-hsic-pm"; + + /* TODO below gpio check */ + qcom,ap2mdm-hostrdy-gpio = <&gpf3 3 0x1>; /* power active */ + qcom,mdm2ap-devicerdy-gpio = <&gpa1 1 0x0>;/* power active */ + qcom,mdm2ap-hostwake-gpio = <&gpa3 1 0xf>; + + reg = <0x15510000 0x100>, /* EHCI */ + <0x15530000 0x100>, /* PHY */ + <0x105C0704 0xC>, /* PMU */ + <0x156E0204 0xC>; /* USB phy clk CMU_FSYS1 */ + }; + + pinctrl@10580000{ + ap2mdm_errfatal: ap2mdm_errfatal { + samsung,pins = "gpa3-4"; + samsung,pin-function = <0x1>; /* OUT */ + samsung,pin-pud = <1>; /* PULL DOWN */ + samsung,pin-drv = <0>; + }; + }; + pinctrl@14870000{ + ap2mdm_soft_reset: ap2mdm_soft_reset { + samsung,pins = "gpf5-0"; + samsung,pin-function = <0x1>; /* OUT */ + samsung,pin-pud = <0>; /* No PULL */ + samsung,pin-drv = <0>; + }; + ap2mdm_hostrdy: ap2mdm_hostrdy { + samsung,pins = "gpf3-3"; + samsung,pin-function = <0x1>; /* OUT */ + samsung,pin-pud = <1>; /* PULL DOWN */ + samsung,pin-drv = <0>; + }; + ap2mdm_status: ap2mdm_status { + samsung,pins = "gpf0-4"; + samsung,pin-function = <0x1>; /* OUT */ + samsung,pin-pud = <3>; /* PULL UP */ + samsung,pin-drv = <3>; + }; + ap2mdm_hsic_ready: ap2mdm_hsic_ready { + samsung,pins = "gpf2-3"; + samsung,pin-function = <0x1>; /* OUT */ + samsung,pin-pud = <1>; /* PULL DOWN */ + samsung,pin-drv = <0>; + }; + + ap2mdm_vddmin: ap2mdm_vddmin { + samsung,pins = "gpf2-1"; + samsung,pin-function = <0x1>; /* OUT */ + samsung,pin-pud = <1>; /* PULL DOWN */ + samsung,pin-drv = <0>; + }; + }; + + mhi: qcom,mhi { + compatible = "qcom,msm_pcie"; + mhi-device-wake-gpio = <&gpf4 2 0x1>; + esoc-names = "mdm"; + esoc-0 = <&mdm1>; + }; + + pcie0@155C0000 { + status = "okay"; + }; + +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon.dtsi new file mode 100644 index 000000000000..853c2f679d55 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon.dtsi @@ -0,0 +1,195 @@ +/* + * SAMSUNG universal5422 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +#include "modem-ss333-pdata.dtsi" + +/* modem_interface_driver: UMTS modem, 2G/3G/4G, Samsung Electronics Shannon333 (SS333) */ + +/ { + mif_pdata { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&cp_on &cp_reset &pda_active &phone_active &ap2cp_wakeup &ap2cp_status + &cp2ap_wakeup &cp2ap_status &gpio_ipc_int2cp + &ap_dump_int &gpio_cp_dump_int>; + + mif,gpio_cp_on = <&gpf5 0 0x1>; + + mif,gpio_cp_reset = <&gpf1 1 0x1>; + mif,gpio_pda_active = <&gpf3 3 0x1>; + mif,gpio_phone_active = <&gpa2 7 0xf>; + + mif,gpio_cp_status = <&gpa1 0 0xf>; + mif,gpio_ipc_int2cp = <&gpa1 1 0x1>; + mif,gpio_ap_dump_int = <&gpf5 1 0x1>; + mif,gpio_cp_dump_int = <&gpa1 3 0xf>; + + link_pm { + gpio_cp2ap_wakeup = <&gpa3 1 0xf>; + gpio_ap2cp_wakeup = <&gpf4 2 0x1>; + gpio_cp2ap_status = <&gpa1 0 0xf>; + gpio_ap2cp_status = <&gpf0 4 0x1>; + }; + }; + + pinctrl@14870000 { + cp_on: cp_on { + samsung,pins = "gpf5-0"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + ap_dump_int: ap_dump_int { + samsung,pins = "gpf5-1"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + + }; + + pda_active: pda_active { + samsung,pins = "gpf3-3"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + ap2cp_status: ap2cp_status { + samsung,pins = "gpf0-4"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + ap2cp_wakeup: ap2cp_wakeup { + samsung,pins = "gpf4-2"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + cp_reset: cp_reset { + samsung,pins = "gpf1-1"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + }; + + pinctrl@10580000 { + phone_active: phone_active { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + cp2ap_wakeup: cp2ap_wakeup { + samsung,pins = "gpa3-1"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + cp2ap_status: cp2ap_status { + samsung,pins = "gpa1-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + gpio_ipc_int2cp: gpio_ipc_int2cp { + samsung,pins = "gpa1-1"; + samsung,pin-function = <1>; + samsung,pin-val = <0>; + samsung,pin-pud = <0>; + }; + + gpio_cp_dump_int: gpio_cp_dump_int { + samsung,pins = "gpa1-3"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@13470000 { + spi2_bus: spi2-bus { + samsung,pins = "gpd5-0", "gpd5-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + spi2_miso: spi2-miso { + samsung,pins = "gpd5-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + }; + }; + + mipi-lli@10F24000 { + modem-name = "ss333"; + + modems { + ss333 { + /* shared memory size for IPC */ + shdmem_size = <8>; + /* is the shdmem allocated by ion */ + is_ion_alloc = <0>; + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + }; + + mphy { + modem-name = "ss333"; + modems { + ss333 { + /* initial-gear is HS-G2 */ + init-gear = <2 2 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + }; + }; + }; + + spi_2: spi@14d40000 {/* for modem booting */ + pinctrl-names = "default"; + pinctrl-0 = <&spi2_bus>, <&spi2_cs_func>; + status = "okay"; + + spidev@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spi_boot_link"; + reg = <0x0>; + spi-max-frequency = <100000>; + + controller-data { + samsung,spi-feedback-delay = <0>; + samsung,spi-chip-select-mode = <1>; + }; + }; + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon_ds.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon_ds.dtsi new file mode 100644 index 000000000000..7e14119def28 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon_ds.dtsi @@ -0,0 +1,195 @@ +/* + * SAMSUNG universal5422 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +#include "modem-ss333-ds-pdata.dtsi" + +/* modem_interface_driver: UMTS modem, 2G/3G/4G, Samsung Electronics Shannon333 (SS333) */ + +/ { + mif_pdata { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&cp_on &cp_reset &pda_active &phone_active &ap2cp_wakeup &ap2cp_status + &cp2ap_wakeup &cp2ap_status &gpio_ipc_int2cp + &ap_dump_int &gpio_cp_dump_int>; + + mif,gpio_cp_on = <&gpf5 0 0x1>; + + mif,gpio_cp_reset = <&gpf1 1 0x1>; + mif,gpio_pda_active = <&gpf3 3 0x1>; + mif,gpio_phone_active = <&gpa2 7 0xf>; + + mif,gpio_cp_status = <&gpa1 0 0xf>; + mif,gpio_ipc_int2cp = <&gpa1 1 0x1>; + mif,gpio_ap_dump_int = <&gpf5 1 0x1>; + mif,gpio_cp_dump_int = <&gpa1 3 0xf>; + + link_pm { + gpio_cp2ap_wakeup = <&gpa3 1 0xf>; + gpio_ap2cp_wakeup = <&gpf4 2 0x1>; + gpio_cp2ap_status = <&gpa1 0 0xf>; + gpio_ap2cp_status = <&gpf0 4 0x1>; + }; + }; + + pinctrl@14870000 { + cp_on: cp_on { + samsung,pins = "gpf5-0"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + ap_dump_int: ap_dump_int { + samsung,pins = "gpf5-1"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + + }; + + pda_active: pda_active { + samsung,pins = "gpf3-3"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + ap2cp_status: ap2cp_status { + samsung,pins = "gpf0-4"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + ap2cp_wakeup: ap2cp_wakeup { + samsung,pins = "gpf4-2"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + cp_reset: cp_reset { + samsung,pins = "gpf1-1"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + }; + + pinctrl@10580000 { + phone_active: phone_active { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + cp2ap_wakeup: cp2ap_wakeup { + samsung,pins = "gpa3-1"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + cp2ap_status: cp2ap_status { + samsung,pins = "gpa1-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + gpio_ipc_int2cp: gpio_ipc_int2cp { + samsung,pins = "gpa1-1"; + samsung,pin-function = <1>; + samsung,pin-val = <0>; + samsung,pin-pud = <0>; + }; + + gpio_cp_dump_int: gpio_cp_dump_int { + samsung,pins = "gpa1-3"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@13470000 { + spi2_bus: spi2-bus { + samsung,pins = "gpd5-0", "gpd5-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + spi2_miso: spi2-miso { + samsung,pins = "gpd5-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + }; + }; + + mipi-lli@10F24000 { + modem-name = "ss333"; + + modems { + ss333 { + /* shared memory size for IPC */ + shdmem_size = <8>; + /* is the shdmem allocated by ion */ + is_ion_alloc = <0>; + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + }; + + mphy { + modem-name = "ss333"; + modems { + ss333 { + /* initial-gear is HS-G2 */ + init-gear = <2 2 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + }; + }; + }; + + spi_2: spi@14d40000 {/* for modem booting */ + pinctrl-names = "default"; + pinctrl-0 = <&spi2_bus>, <&spi2_cs_func>; + status = "okay"; + + spidev@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spi_boot_link"; + reg = <0x0>; + spi-max-frequency = <100000>; + + controller-data { + samsung,spi-feedback-delay = <0>; + samsung,spi-chip-select-mode = <1>; + }; + }; + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon_kor.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon_kor.dtsi new file mode 100644 index 000000000000..3c9a9f953518 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_modem-shannon_kor.dtsi @@ -0,0 +1,195 @@ +/* + * SAMSUNG universal5422 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +#include "modem-ss333-kor-pdata.dtsi" + +/* modem_interface_driver: UMTS modem, 2G/3G/4G, Samsung Electronics Shannon333 (SS333) */ + +/ { + mif_pdata { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&cp_on &cp_reset &pda_active &phone_active &ap2cp_wakeup &ap2cp_status + &cp2ap_wakeup &cp2ap_status &gpio_ipc_int2cp + &ap_dump_int &gpio_cp_dump_int>; + + mif,gpio_cp_on = <&gpf5 0 0x1>; + + mif,gpio_cp_reset = <&gpf1 1 0x1>; + mif,gpio_pda_active = <&gpf3 3 0x1>; + mif,gpio_phone_active = <&gpa2 7 0xf>; + + mif,gpio_cp_status = <&gpa1 0 0xf>; + mif,gpio_ipc_int2cp = <&gpa1 1 0x1>; + mif,gpio_ap_dump_int = <&gpf5 1 0x1>; + mif,gpio_cp_dump_int = <&gpa1 3 0xf>; + + link_pm { + gpio_cp2ap_wakeup = <&gpa3 1 0xf>; + gpio_ap2cp_wakeup = <&gpf4 2 0x1>; + gpio_cp2ap_status = <&gpa1 0 0xf>; + gpio_ap2cp_status = <&gpf0 4 0x1>; + }; + }; + + pinctrl@14870000 { + cp_on: cp_on { + samsung,pins = "gpf5-0"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + ap_dump_int: ap_dump_int { + samsung,pins = "gpf5-1"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + + }; + + pda_active: pda_active { + samsung,pins = "gpf3-3"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + ap2cp_status: ap2cp_status { + samsung,pins = "gpf0-4"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + ap2cp_wakeup: ap2cp_wakeup { + samsung,pins = "gpf4-2"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + cp_reset: cp_reset { + samsung,pins = "gpf1-1"; + samsung,pin-function = <1>; + samsung,pin-con-pdn = <3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-pud = <0>; + }; + + }; + + pinctrl@10580000 { + phone_active: phone_active { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + cp2ap_wakeup: cp2ap_wakeup { + samsung,pins = "gpa3-1"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + cp2ap_status: cp2ap_status { + samsung,pins = "gpa1-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + gpio_ipc_int2cp: gpio_ipc_int2cp { + samsung,pins = "gpa1-1"; + samsung,pin-function = <1>; + samsung,pin-val = <0>; + samsung,pin-pud = <0>; + }; + + gpio_cp_dump_int: gpio_cp_dump_int { + samsung,pins = "gpa1-3"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@13470000 { + spi2_bus: spi2-bus { + samsung,pins = "gpd5-0", "gpd5-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + spi2_miso: spi2-miso { + samsung,pins = "gpd5-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + }; + }; + + mipi-lli@10F24000 { + modem-name = "ss333"; + + modems { + ss333 { + /* shared memory size for IPC */ + shdmem_size = <8>; + /* is the shdmem allocated by ion */ + is_ion_alloc = <0>; + /* disable scrambler */ + scrambler = <0>; + /* do not control automode by AP */ + automode = <0>; + }; + }; + + mphy { + modem-name = "ss333"; + modems { + ss333 { + /* initial-gear is HS-G2 */ + init-gear = <2 2 1>; + /* use shared reference clock for MPHY */ + shd-refclk = <1>; + }; + }; + }; + }; + + spi_2: spi@14d40000 {/* for modem booting */ + pinctrl-names = "default"; + pinctrl-0 = <&spi2_bus>, <&spi2_cs_func>; + status = "okay"; + + spidev@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "spi_boot_link"; + reg = <0x0>; + spi-max-frequency = <100000>; + + controller-data { + samsung,spi-feedback-delay = <0>; + samsung,spi-chip-select-mode = <1>; + }; + }; + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_mst.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_mst.dtsi new file mode 100644 index 000000000000..ce712ff1fa0f --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_mst.dtsi @@ -0,0 +1,47 @@ +/* Copyright (c) 2013, Samsung Electronics Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/ { + sec-mst{ + compatible = "sec-mst"; + sec-mst,mst-pwr-gpio = <&gpf3 2 0>; + sec-mst,mst-md-gpio = <&gpj0 2 0>; + sec-mst,mst-pd-gpio = <&gpj1 2 0>; + + pinctrl-names = "default"; + pinctrl-0 = <&mst_pwr &mst_md &mst_pd>; + }; + + pinctrl@14870000 { + mst_pwr: sec-mst,mst-pwr-gpio { + samsung,pins ="gpf3-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; + + pinctrl@14CD0000 { + mst_md: sec-mst,mst-md-gpio { + samsung,pins ="gpj0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; + + pinctrl@14CE0000 { + mst_pd: sec-mst,mst-pd-gpio { + samsung,pins ="gpj1-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_ue_00.dts b/arch/arm64/boot/dts/exynos7420-zerolte_ue_00.dts new file mode 100644 index 000000000000..6e8abe803fb5 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_ue_00.dts @@ -0,0 +1,664 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_ue_00.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA OPEN rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <15>; + compatible = "samsung,ZERO LTE USA OPEN EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <6>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + /* &gpa3 2 0xf */ + >; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + mic_bias_gpio = <&gpf1 0 0>; + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VSIL_1.0V"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + ufs@0x15570000 { + /delete-property/ ufs-rx-adv-fine-gran-sup_en; + /delete-property/ ufs-rx-adv-fine-gran-step; + /delete-property/ ufs-rx-adv-min-activate-time-cap; + /delete-property/ ufs-pa-granularity; + /delete-property/ ufs-pa-tacctivate; + /delete-property/ ufs-pa-hibern8time; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1600 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1100>; + timing,dsi-escape-clk = <16>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1100>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; + + mdmpm_pdata { + qcom,mdm2ap-devicerdy-gpio = <&gpa0 0 0x0>;/* power active */ + }; + + +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_upop_battery.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_upop_battery.dtsi new file mode 100644 index 000000000000..1194de000a2d --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_upop_battery.dtsi @@ -0,0 +1,321 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + pinctrl@10580000 { + wpc_int: wpc_int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + wchg_ctl: wchg-ctl { + samsung,pins = "gpf5-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,polling_time = <10 30 30 30 3600>; + battery,chg_temp_check = <1>; + + battery,temp_table_adc = <294 304 314 325 335 345 357 369 382 391 + 406 420 434 449 463 477 494 511 527 544 + 561 580 599 619 638 657 679 700 722 743 + 765 791 816 842 867 893 922 951 979 1008 + 1037 1070 1103 1136 1168 1201 1236 1272 1308 1344 + 1382 1408 1452 1495 1539 1583 1628 1670 1713 1757 + 1803 1843 1885 1937 1984 2031 2080 2120 2171 2218 + 2262 2309 2352 2404 2452 2497 2542 2593 2631 2680 + 2717 2765 2810 2856 2902 2948 2990 3031 3073 3114 + 3132 3156 3188 3219 3251 3282 3314 3343 3373 3402 + 3461 3485 3509 3534 3558 3582 3602 3622 3642 3662 3682>; + battery,temp_table_data = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100) (-110) (-120) (-130) (-140) (-150) (-160) (-170) (-180) (-190) (-200)>; + + battery,chg_temp_table_adc = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 3436>; + battery,chg_temp_table_data = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100) (-110) (-120) (-130) (-140) (-150) (-160) (-170) (-180) (-190) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 3150 1000 3150 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <500 0 0 500 350 350 350 350 350 0 350 350 500 0 0 350 350 350 350 350 500 0 500 350 500 0 500 350 350 0 350>; + battery,full_check_current_2nd = <200 0 0 200 200 200 200 200 200 0 200 200 200 0 0 200 200 200 200 200 200 0 200 200 200 200 200 200 200 0 200>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <5>; /* SEC_BATTERY_CHECK_CHARGER */ + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <460>; + battery,chg_high_temp_2nd = <460>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1467>; + battery,chg_charging_limit_current_2nd = <1433>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <94>; + battery,full_condition_vcell = <4300>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4350>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <100>; + battery,swelling_low_temp_recov = <150>; + battery,swelling_drop_float_voltage = <4250>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 2>; + io-channel-names = "adc-temp", "chg-adc-temp"; + #io-channel-cells = <2>; + io-channel-ranges; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <920>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_00.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_00.dts new file mode 100644 index 000000000000..812fefbfe1b2 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_00.dts @@ -0,0 +1,741 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_battery.dtsi" +#include "exynos7420-zerolte_gpio_usa_00.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +/ { + model = "Samsung ZERO LTE USA rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <0>; + compatible = "samsung,ZERO LTE USA EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq &mainmic_ctl>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <6>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + mic_bias_gpio = <&gpf1 0 0>; + main_mic_ctl = <&gpf5 2 0>; + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + es704_reset: es704-reset { + samsung,pins ="gpf1-3"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + mainmic_ctl: mainmic-ctl { + samsung,pins ="gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 3 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es705-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13650000{ + max77833@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_LDO26_1P1"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + fimc_is@14200000 { + pinctrl-names = "default", "release"; + pinctrl-0 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_mclk2_out>; + pinctrl-1 = <>; + }; + + fimc_is_sensor_imx240: fimc-is_sensor_imx240@34 { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_2p2: fimc-is_sensor_2p2@5A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out &fimc_is_mclk2_out &fimc_is_i2c0 &fimc_is_i2c1>; + pinctrl-2 = <&fimc_is_mclk1_fn &fimc_is_mclk2_fn &fimc_is_i2c0 &fimc_is_i2c1>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_01.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_01.dts new file mode 100644 index 000000000000..9d45f0be33b3 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_01.dts @@ -0,0 +1,741 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_battery.dtsi" +#include "exynos7420-zerolte_gpio_usa_01.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +/ { + model = "Samsung ZERO LTE USA rev00A board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <2>; + model_info-hw_rev_end = <2>; + compatible = "samsung,ZERO LTE USA EVT1 mPOP,r00A", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm5110@0 { + compatible = "wlf,wm5110"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &audio_ctrl &codec_irq &mainmic_ctl>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 1 0 + >; + + wlf,micbias1 = <2800 0 1 0 0>; + wlf,micbias2 = <1800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xA101 + 0xA101 + 0xA101 + 0xA101 + 0x8101 + >; + + wlf,gpsw = <0x3>; + wlf,use-jd-gpio; + wlf,jd-gpio-nopull; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <2 1 3 0>; + /* 1st cell:IN1 2rd cell:IN2 3nd cell:IN3 4th cell:IN4 */ + wlf,inmode = <2 0 2 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@1100 { + reg = <0x1100>; + firmware { + EDAC { + wlf,wmfw-file = "edac"; + wlf,bin-file = "edac"; + }; + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@1200 { + reg = <0x1200>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1300 { + reg = <0x1300>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@1400 { + reg = <0x1400>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <6>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + sound { + samsung,audio-routing = + "HDMIL", "AIF1RX1", + "HDMIR", "AIF1RX2", + "HDMI", "HDMIL", + "HDMI", "HDMIR", + "HP", "HPOUT1L", + "HP", "HPOUT1R", + "SPK", "HPOUT2L", + "SPK", "HPOUT2R", + "VPS", "HPOUT2L", + "VPS", "HPOUT2R", + "RCV", "HPOUT3L", + "RCV", "HPOUT3R", + "IN1R", "Main Mic", + "Main Mic", "MICBIAS2", + "Headset Mic", "MICBIAS1", + "IN2R", "Headset Mic", + "Sub Mic", "MICBIAS3", + "IN3L", "Sub Mic", + "Third Mic", "MICBIAS2", + "Third Mic", "MICBIAS3", + "IN3R", "Third Mic", + "VI SENSING", "MICVDD", + "IN4R", "VI SENSING", + "IN4L", "VI SENSING"; + + mixer-paths = "mixer_paths_florida.xml"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + mic_bias_gpio = <&gpf1 0 0>; + main_mic_ctl = <&gpf5 2 0>; + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98504_ctrl: max98504-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98504_i2c: max98504-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_host: fimc-is-flash-host { + samsung,pins = "gpc0-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + fimc_is_flash_is: fimc-is-flash-is { + samsung,pins = "gpc0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + audio_ctrl: audio-ctl { + samsung,pins ="gpf1-0"; + samsung,pin-con-pdn =<3>; + }; + es704_reset: es704-reset { + samsung,pins ="gpf1-3"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + mainmic_ctl: mainmic-ctl { + samsung,pins ="gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98504@31 { + compatible = "max98504"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98504_i2c &max98504_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + max98504,rx_mode = <1>; + max98504,tx_mode = <1>; + max98504,cfg_data = <0 0 0 0 0 3 0 2 0 0>; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 3 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es705-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "VF_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VCC_1.8V_MHL"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + regulator-initial-mode = <1>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_LDO26_1P1"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1100>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + fimc_is@14200000 { + pinctrl-names = "default", "release"; + pinctrl-0 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_mclk2_out>; + pinctrl-1 = <>; + }; + + fimc_is_sensor_imx240: fimc-is_sensor_imx240@34 { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_2p2: fimc-is_sensor_2p2@5A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk0_out &fimc_is_mclk1_out &fimc_is_i2c0 &fimc_is_i2c2>; + pinctrl-2 = <&fimc_is_mclk0_fn &fimc_is_mclk1_fn &fimc_is_i2c0 &fimc_is_i2c2>; + + flash { + product_name = <5>; /* KTD2692 */ + flash_first_gpio = <2>; + flash_second_gpio = <3>; + }; + }; + + fimc_is_sensor_4e6_c2: fimc-is_sensor_4e6_c2@6A { + pinctrl-names = "pin0", "pin1", "pin2"; + pinctrl-0 = <>; + pinctrl-1 = <&fimc_is_mclk1_out &fimc_is_mclk2_out &fimc_is_i2c0 &fimc_is_i2c1>; + pinctrl-2 = <&fimc_is_mclk1_fn &fimc_is_mclk2_fn &fimc_is_i2c0 &fimc_is_i2c1>; + }; + + leds_ktd2692 { + compatible = "ktd2692"; + flash_control = <&gpc0 2 0x1>; + status = "okay"; + pinctrl-names ="default","host","is"; + pinctrl-0 = <&fimc_is_flash_is>; + pinctrl-1 = <&fimc_is_flash_host>; + pinctrl-2 = <&fimc_is_flash_is>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_02.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_02.dts new file mode 100644 index 000000000000..71cc14590452 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_02.dts @@ -0,0 +1,890 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_battery.dtsi" +#include "exynos7420-zerolte_gpio_usa_02.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA rev01 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <3>; + model_info-hw_rev_end = <3>; + compatible = "samsung,ZERO LTE USA EVT1 mPOP,r01", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <59>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_03.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_03.dts new file mode 100644 index 000000000000..9da6924b9dd8 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_03.dts @@ -0,0 +1,904 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_usa_03.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA rev02 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <6>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO LTE USA EVT1 mPOP,r02", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_04.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_04.dts new file mode 100644 index 000000000000..cbc1aaea7ca5 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_04.dts @@ -0,0 +1,904 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_usa_04.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA rev03 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <7>; + compatible = "samsung,ZERO LTE USA EVT1 mPOP,r03", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_05.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_05.dts new file mode 100644 index 000000000000..331aa7998210 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_05.dts @@ -0,0 +1,904 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_battery_04.dtsi" +#include "exynos7420-zerolte_gpio_usa_05.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA rev04 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <8>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO LTE USA EVT1 mPOP,r04", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_06.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_06.dts new file mode 100644 index 000000000000..39a6170946d0 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_06.dts @@ -0,0 +1,903 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_battery_05.dtsi" +#include "exynos7420-zerolte_gpio_usa_06.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA rev05 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <10>; + model_info-hw_rev_end = <10>; + compatible = "samsung,ZERO LTE USA EVT1 mPOP,r05", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x1001 0x1004 0x1001>; + aif_format_tdm = <0x0 0x1047 0x0>; + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@2 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_07.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_07.dts new file mode 100644 index 000000000000..75f32948ff54 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_07.dts @@ -0,0 +1,904 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_battery_05.dtsi" +#include "exynos7420-zerolte_gpio_usa_07.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <11>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO LTE USA EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp-acc-type = <1>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf>; + status = "okay"; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x1001 0x1004 0x1001>; + aif_format_tdm = <0x0 0x1047 0x0>; + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@2 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery.dtsi new file mode 100644 index 000000000000..e969d799e134 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery.dtsi @@ -0,0 +1,336 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + wchg_ctl: wchg-ctl { + samsung,pins = "gpf5-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + battery,wchg_ctl_en; + + pinctrl-names = "default"; + pinctrl-0 = <&wchg_ctl &wciokb_irq &wpc_scl &wpc_sda>; + battery,wchg_ctl = <&gpf5 6 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + battery,wpc_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1000 1000>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2600 1000 2600 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <400>; + battery,wpc_high_temp_recovery = <390>; + battery,wpc_charging_limit_current = <450>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4250>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4300>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4350>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc"; + #io-channel-cells = <3>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4350>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4350>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_02.dtsi new file mode 100644 index 000000000000..c668dc948de5 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_02.dtsi @@ -0,0 +1,358 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + wchg_ctl: wchg-ctl { + samsung,pins = "gpf5-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &wpc_sda &wpc_scl>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2550 1000 2550 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc"; + #io-channel-cells = <3>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_04.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_04.dtsi new file mode 100644 index 000000000000..0c0041f14066 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_04.dtsi @@ -0,0 +1,368 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging &wpc_sda &wpc_scl>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2550 1000 2550 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_05.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_05.dtsi new file mode 100644 index 000000000000..59820ffeb498 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_battery_05.dtsi @@ -0,0 +1,353 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + hsi2c@13670000 { /* hsi2c5 */ + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + status = "okay"; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; + + battery { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + battery,wpc_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1000 1000>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2550 1000 2550 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <3137 3113 3077 3045 3010 2976 2942 2904 2874 2832 + 2794 2763 2723 2693 2660 2623 2589 2552 2517 2481 2464>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 405 400 395 + 390 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <580>; + battery,chg_high_temp_2nd = <580>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <400>; + battery,wpc_high_temp_recovery = <390>; + battery,wpc_charging_limit_current = <450>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4325>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_00.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_00.dts new file mode 100644 index 000000000000..73d088c9bfac --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_00.dts @@ -0,0 +1,921 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_cdma_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_usa_cdma_00.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA CDMA rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <6>; + compatible = "samsung,ZERO LTE USA CDMA EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <136 83 231 111 14 248 254 139 209 54 + 186 156 35 179 2 179 253 51 136 143 + 189 0 222 132 13 5 194>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + sound { + mixer-paths = "mixer_paths_cdma_03.xml"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_01.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_01.dts new file mode 100644 index 000000000000..a7c5c0dcaddd --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_01.dts @@ -0,0 +1,934 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_cdma_battery_02.dtsi" +#include "exynos7420-zerolte_gpio_usa_cdma_01.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA CDMA rev04 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <8>; + compatible = "samsung,ZERO LTE USA CDMA EVT1 mPOP,r04", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 3 3 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <136 83 231 111 14 248 254 139 209 54 + 186 156 35 179 2 179 253 51 136 143 + 189 0 222 132 13 5 194>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_02.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_02.dts new file mode 100644 index 000000000000..aaa281ef30a4 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_02.dts @@ -0,0 +1,934 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_cdma_battery_06.dtsi" +#include "exynos7420-zerolte_gpio_usa_cdma_02.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA CDMA rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <9>; + model_info-hw_rev_end = <9>; + compatible = "samsung,ZERO LTE USA CDMA EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 3 3 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <136 83 231 111 14 248 254 139 209 54 + 186 156 35 179 2 179 253 51 136 143 + 189 0 222 132 13 5 194>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_03.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_03.dts new file mode 100644 index 000000000000..9aa617fe91a4 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_03.dts @@ -0,0 +1,947 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_cdma_battery_07.dtsi" +#include "exynos7420-zerolte_gpio_usa_cdma_03.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA CDMA rev07 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <10>; + model_info-hw_rev_end = <10>; + compatible = "samsung,ZERO LTE USA CDMA EVT1 mPOP,r07", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 3 3 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <136 83 231 111 14 248 254 139 209 54 + 186 156 35 179 2 179 253 51 136 143 + 189 0 222 132 13 5 194>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x1001 0x1004 0x1001>; + aif_format_tdm = <0x0 0x1047 0x0>; + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@2 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_04.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_04.dts new file mode 100644 index 000000000000..99d0cb7698dd --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_04.dts @@ -0,0 +1,948 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_cdma_battery_07.dtsi" +#include "exynos7420-zerolte_gpio_usa_cdma_04.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA CDMA rev08 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <11>; + model_info-hw_rev_end = <11>; + compatible = "samsung,ZERO LTE USA CDMA EVT1 mPOP,r08", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 3 3 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp-acc-type = <1>; + ssp,mag-array = /bits/ 8 <136 83 231 111 14 248 254 139 209 54 + 186 156 35 179 2 179 253 51 136 143 + 189 0 222 132 13 5 194>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x1001 0x1004 0x1001>; + aif_format_tdm = <0x0 0x1047 0x0>; + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@2 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_05.dts b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_05.dts new file mode 100644 index 000000000000..bb80b965edb5 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_05.dts @@ -0,0 +1,948 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_cdma_battery_07.dtsi" +#include "exynos7420-zerolte_gpio_usa_cdma_05.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE USA CDMA rev09 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <12>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO LTE USA CDMA EVT1 mPOP,r09", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 3 3 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <1>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp-acc-type = <1>; + ssp,mag-array = /bits/ 8 <136 83 231 111 14 248 254 139 209 54 + 186 156 35 179 2 179 253 51 136 143 + 189 0 222 132 13 5 194>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_3: spi@14d50000 { + spiclk-pindev-name = "14c90000.pinctrl"; + spiclk-pin-name = "gpg4-0"; + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default","ese-pwoff","clk-fix","clk-recover","ese-disable"; + pinctrl-0 = <&spi3_bus>; + pinctrl-1 = <&spi3_ese_pwoff>; + pinctrl-2 = <&spi3_clk_fix>; + pinctrl-3 = <&spi3_clk_recover>; + pinctrl-4 = <&spi3_ese_disable>; + samsung,ese-oberthur; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <23>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x1001 0x1004 0x1001>; + aif_format_tdm = <0x0 0x1047 0x0>; + + imp_table = < + /* min max gain */ + 0 13 0 + 14 42 3 + 43 100 5 + 101 200 7 + 201 450 9 + 451 1000 10 + 1001 0x7fffffff 0 + >; + + seamless_voicewakeup; + status = "okay"; + }; + + antenna_switch { + status = "okay"; + compatible = "antenna_switch"; + pinctrl-names = "default"; + pinctrl-0 = <&antenna_switch_en>; + antenna_switch,gpio_antenna_switch = <&gpr3 6 0>; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + antenna_switch_en: antenna-switch-en { + samsung,pins = "gpr3-6"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-val = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + samsung,use-default-irq; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2950000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + sec_thermistor@2 { + status = "okay"; + + adc_array = <205 216 227 238 249 260 271 282 293 303 + 314 324 335 346 356 366 377 388 398 408 + 418 436 454 472 489 506 520 534 548 561 + 575 588 602 619 636 655 674 697 720 737 + 754 775 796 819 842 857 872 904 936 953 + 974 993 1012 1031 1050 1070 1087 1104 1121 1138 + 1155 1175 1205 1232 1259 1286 1306 1326 1345 1365 + 1385 1403 1421 1439 1457 1475 1492 1509 1526 1543 + 1560 1579 1598 1616 1635 1654 1669 1684 1699 1713 + 1728 1740 1753 1766 1778 1790 1798 1806 1814 1822 + 1830 1839 1848 1856 1864 1872 1880 1888 1896 1904 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_02.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_02.dtsi new file mode 100644 index 000000000000..eb87ff6d9eae --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_02.dtsi @@ -0,0 +1,352 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + i2c@6c{ + compatible = "i2c-gpio"; + gpios = <&gpf1 2 0 /* sda */ + &gpf1 3 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + wpc_sda: wpc-sda { + samsung,pins = "gpf1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wpc_scl: wpc-scl { + samsung,pins = "gpf1-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + battery { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &wpc_sda &wpc_scl>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2600 1000 2600 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <620>; + battery,chg_high_temp_2nd = <620>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc"; + #io-channel-cells = <3>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_06.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_06.dtsi new file mode 100644 index 000000000000..ff4a6de16d5a --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_06.dtsi @@ -0,0 +1,348 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + hsi2c@14E20000 { /* hsi2c8 */ + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + status = "okay"; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; + + battery { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1500 1500>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2600 1000 2600 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2905 2873 2848 2819 2787 2762 2731 2677 2655 2619 + 2591 2565 2534 2504 2475 2445 2420 2401 2364 2343>; + battery,inbat_voltage_table_data = <438 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <620>; + battery,chg_high_temp_2nd = <620>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_07.dtsi b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_07.dtsi new file mode 100644 index 000000000000..c2c598965d89 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zerolte_usa_cdma_battery_07.dtsi @@ -0,0 +1,353 @@ +/* + * SAMSUNG UNIVERSAL5433 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + hsi2c@14E20000 { /* hsi2c8 */ + status = "okay"; + + bq51221-charger@6c { + compatible = "ti,bq51221-charger"; + reg = <0x6c>; + status = "okay"; + }; + }; + + pinctrl@10580000 { + wpc_int: wpc-int { + samsung,pins = "gpa2-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + chg_irq: chg-irq { + samsung,pins = "gpa1-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + wciokb_irq: wciokb-irq { + samsung,pins = "gpa1-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + }; + + pinctrl@14870000 { + factory_discharging: factory-discharging { + samsung,pins = "gpf5-2"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + }; + }; + + battery { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&wciokb_irq &factory_discharging>; + + battery,factory_discharging = <&gpf5 2 0>; + + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "max77843-charger"; + battery,fuelgauge_name = "max77843-fuelgauge"; + battery,wirelss_charger_name = "bq51221-charger"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,chg_temp_check = <1>; + battery,wpc_temp_check = <1>; + + battery,polling_time = <10 30 30 30 3600>; + + battery,temp_table_adc = <280 326 383 429 489 559 631 727 807 925 + 1015 1114 1217 1341 1448 1545 1625 + 1712 1778 1830 1873 1914 1937>; + battery,temp_table_data = <900 850 800 750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,chg_temp_table_adc = <499 538 598 717 835 1026 1124 + 1240 1478 1568 1834 2023 2189 2429 + 2631 2851 2948 3053 3239 3325>; + battery,chg_temp_table_data = <750 700 650 600 550 500 450 + 400 350 300 250 200 150 100 + 50 0 (-50) (-100) (-150) (-200)>; + + battery,input_current_limit = <1800 0 0 1800 460 900 1000 460 1000 0 820 1900 1800 0 0 400 700 1300 300 1000 1500 0 1667 1000 1667 80 1800 1667 1400 1000 1000>; + battery,fast_charging_current = <2100 0 0 2100 460 1200 1000 460 1200 0 1200 1600 2100 0 0 400 700 1300 300 1000 1500 0 2550 1000 2550 80 1800 1000 1400 0 1000>; + battery,full_check_current_1st = <275 0 0 275 275 275 275 275 275 0 275 275 275 0 0 275 275 275 275 275 275 0 275 275 275 0 275 275 275 0 275>; + battery,full_check_current_2nd = <125 0 0 125 125 125 125 125 125 0 125 125 125 0 0 125 125 125 125 125 125 0 125 125 125 0 125 125 125 0 125>; + + battery,wireless_cc_cv = <90>; + battery,inbat_voltage = <1>; + + battery,inbat_voltage_table_adc = <2888 2861 2831 2801 2770 2741 2716 2659 2630 2604 + 2575 2544 2513 2484 2459 2428 2399 2367 2340 2311>; + battery,inbat_voltage_table_data = <440 435 430 425 420 415 410 400 395 390 + 385 380 375 370 365 360 355 350 345 340>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <0>; + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <580>; + battery,temp_high_recovery_event = <530>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <580>; + battery,temp_high_recovery_normal = <530>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <580>; + battery,temp_high_recovery_lpm = <530>; + battery,temp_low_threshold_lpm = <(-30)>; + battery,temp_low_recovery_lpm = <0>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_high_temp_1st = <515>; + battery,chg_high_temp_2nd = <515>; + battery,chg_high_temp_recovery = <200>; + battery,chg_charging_limit_current = <1300>; + battery,chg_charging_limit_current_2nd = <1300>; + battery,chg_skip_check_capacity = <10>; + battery,chg_skip_check_time = <600>; + + battery,wpc_high_temp = <380>; + battery,wpc_high_temp_recovery = <370>; + battery,wpc_charging_limit_current = <450>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <93>; + battery,full_condition_vcell = <4275>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4325>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,chg_float_voltage = <4375>; + + battery,self_discharging_en; + battery,force_discharging_limit = <650>; + battery,force_discharging_recov = <550>; + battery,self_discharging_voltage_limit = <4250>; + battery,discharging_adc_max = <2600>; + battery,discharging_adc_min = <1700>; + battery,discharging_ntc_limit = <2750>; + + battery,swelling_high_temp_block = <500>; + battery,swelling_high_temp_recov = <450>; + battery,swelling_low_temp_block = <50>; + battery,swelling_low_temp_recov = <100>; + battery,swelling_chg_current = <1300>; + battery,swelling_drop_float_voltage = <4200>; + battery,swelling_high_rechg_voltage = <4150>; + battery,swelling_low_rechg_voltage = <4050>; + battery,swelling_block_time = <600>; + + io-channels = <&exynos_adc 1>, <&exynos_adc 3>, <&exynos_adc 6>, <&exynos_adc 5>, <&exynos_adc 7>; + io-channel-names = "adc-temp", "chg-adc-temp", "in-bat-adc", "discharging-check-adc", "ntc-check-adc"; + #io-channel-cells = <5>; + io-channel-ranges; + }; + + max77833-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,qrtable20 = <0x0900>; + fuelgauge,qrtable30 = <0x0780>; + fuelgauge,rcomp0 = <0x63>; + fuelgauge,rcomp_charging = <0x63>; + fuelgauge,temp_cohot = <(-1000)>; + fuelgauge,temp_cocold = <(-4325)>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x19C8>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + + }; + max77833-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; + + max77843-fuelgauge { + status = "disable"; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <100>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,using_temp_compensation; + fuelgauge,using_hw_vempty; + fuelgauge,v_empty = <0xA558>; + fuelgauge,v_empty_origin = <0x7D54>; + fuelgauge,qrtable20 = <0x1780>; + fuelgauge,qrtable30 = <0x0F84>; + fuelgauge,low_temp_limit = <100>; + fuelgauge,low_temp_recovery = <120>; + fuelgauge,temp_cohot = <0x2332>; + fuelgauge,temp_cocold = <0x2332>; + fuelgauge,rcomp0 = <0x3C>; + fuelgauge,rcomp_charging = <0x3C>; + fuelgauge,is_using_model_data; + fuelgauge,type_str = "SDI"; + fuelgauge,capacity = <0x14C2>; + fuelgauge,low_battery_comp_voltage = <3600>; + fuelgauge,low_battery_table = <(-5000) 0 0 (-1250) 0 3320 (-750) 97 3451 (-100) 96 3461 0 0 3456>; + fuelgauge,cv_data = <2565 680 2580 + 2483 688 2549 + 2405 696 2519 + 2333 704 2489 + 2263 711 2458 + 2196 718 2428 + 2137 725 2398 + 2077 732 2367 + 2016 738 2337 + 1964 745 2306 + 1894 751 2276 + 1835 757 2246 + 1783 763 2215 + 1727 769 2185 + 1674 774 2155 + 1621 780 2124 + 1571 785 2094 + 1525 790 2064 + 1480 795 2033 + 1437 800 2003 + 1391 804 1973 + 1353 809 1942 + 1311 814 1912 + 1272 818 1882 + 1235 822 1851 + 1198 826 1821 + 1161 830 1791 + 1124 834 1760 + 1092 838 1730 + 1059 841 1700 + 1027 845 1669 + 996 848 1639 + 969 852 1608 + 940 855 1578 + 909 858 1548 + 885 861 1517 + 863 864 1487 + 840 867 1457 + 817 870 1426 + 794 872 1396 + 771 875 1366 + 749 878 1335 + 725 880 1305 + 707 883 1275 + 696 885 1244 + 674 887 1214 + 658 890 1184 + 640 892 1153 + 618 894 1123 + 608 896 1093 + 604 898 1062 + 584 900 1032 + 567 903 1002 + 553 909 971 + 539 913 941 + 524 918 910 + 515 921 880 + 507 924 850 + 494 929 820 + 476 934 789 + 469 937 759 + 459 939 729 + 449 943 698 + 438 946 668 + 431 949 638 + 419 952 607 + 408 957 577 + 402 958 546 + 389 962 516 + 385 964 486 + 377 966 455 + 371 968 425 + 359 972 395 + 353 975 364 + 347 976 334 + 337 979 304 + 331 981 273 + 327 983 243 + 323 985 213 + 319 986 182 + 306 989 152 + 303 992 122 + 298 993 91 + 293 996 61 + 290 997 31 + 0 1000 0 >; + }; + + max77843-charger { + status = "disable"; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4375>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeromlte_gpio_usa_00.dtsi b/arch/arm64/boot/dts/exynos7420-zeromlte_gpio_usa_00.dtsi new file mode 100644 index 000000000000..a214af129010 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeromlte_gpio_usa_00.dtsi @@ -0,0 +1,402 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-M LTE HW REV00 (b0111) + +#include "exynos_gpio_config_macros.dtsi" + +&pinctrl_0 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial0>; + pinctrl-1 = <&sleep0>; + initial0: initial-state { + PIN_IN(gpa2-7, NONE, LV1); /* SSP_MCU_INT2 */ + PIN_OUT_SET(gpa3-6, 1, LV1); /* SSP_RST */ + }; + sleep0: sleep-state { + PIN_SLP(gpa2-7, PREV, NONE); /* SSP_MCU_INT2 */ + }; +}; + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-2, DOWN, LV1); /* NC */ + PIN_IN(gpd0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + + PIN_IN(gpd5-0, DOWN, LV1); /* NC */ + PIN_IN(gpd5-1, DOWN, LV1); /* NC */ + PIN_IN(gpd5-2, DOWN, LV1); /* NC */ + PIN_IN(gpd5-3, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* 2MIC_UART_RXD */ + PIN_SLP(gpd0-1, PREV, NONE); /* 2MIC_URAT_TXD */ + PIN_SLP(gpd0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, NONE); /* 2MIC_SDA */ + PIN_SLP(gpd2-7, INPUT, NONE); /* 2MIC_SCL */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf4-4, NONE, LV1); /* SSP_MCU_INT1 */ + PIN_OUT_SET(gpf4-5, 1, LV1); /* SSP_AP_INT */ + + PIN_IN(gpf4-7, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-1, DOWN, LV1); /* NC */ + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, UP); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, PREV, NONE); /* 2MIC_RST */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, PREV, NONE); /* SSP_MCU_INT1 */ + PIN_SLP(gpf4-5, PREV, NONE); /* SSP_AP_INT */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* 2MIC_INT */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + PIN_IN(gpr3-6, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeromlte_usa_00.dts b/arch/arm64/boot/dts/exynos7420-zeromlte_usa_00.dts new file mode 100644 index 000000000000..cd85583b753d --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeromlte_usa_00.dts @@ -0,0 +1,914 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_usa_cdma_battery_02.dtsi" +#include "exynos7420-zeromlte_gpio_usa_00.dtsi" +#include "exynos7420-zerolte_modem-mdm9x35.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO-M LTE USA rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <7>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO-M LTE USA EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <0>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + STM32F@0 { + compatible = "ssp,STM32F"; + reg = <0>; + spi-max-frequency = <5000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_rst &ssp_ap_int &ssp_mcu_int1 &ssp_mcu_int2>; + + gpio-controller; + #gpio-cells = <2>; + ssp,mcu_int1-gpio = <&gpa2 7 0x00>; + ssp,mcu_int2-gpio = <&gpf4 4 0x00>; + ssp,ap_int-gpio = <&gpf4 5 0x00>; + ssp,rst-gpio = <&gpa3 6 0x00>; + ssp,acc-position = <0>; + ssp,mag-position = <6>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-glass-type = <1>; + ssp,mag-array = /bits/ 8 <202 77 27 204 179 110 255 64 217 + 53 81 56 91 102 250 122 254 129 + 123 79 196 248 121 117 12 117 219>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + /* &gpa3 2 0xf */ + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + status = "okay"; + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p61-mosipin = <21>; + p61-misopin = <22>; + p61-cspin = <23>; + p61-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + aif_format = <0x00 0x13 0x00>; + /* I2S: 0x00, TDM: 0x10 */ + /* I2S: 0x0, Right-J: 0x1 Left-J: 0x2, DSP A: 0x3, DSP B: 0x4, */ + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + ssp_mcu_int1: ssp-mcu-int1 { + samsung,pins = "gpa2-7"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_rst: ssp-rst { + samsung,pins = "gpa3-6"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@13470000 { + es704_wakeup: es704-wakeup { + samsung,pins ="gpd0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <3>; + samsung,pin-val = <1>; + }; + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + es704_i2c: es704-i2c { + samsung,pins = "gpd2-7", "gpd2-6"; + samsung,pin-function = <0x3>; + samsung,pin-pud = <0x0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@14870000 { + es704_reset: es704-reset { + samsung,pins ="gpf1-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <0>; + samsung,pin-val = <0>; + }; + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + ssp_mcu_int2: ssp-mcu-int2 { + samsung,pins = "gpf4-4"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + ssp_ap_int: ssp-ap-int { + samsung,pins = "gpf4-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + muic { + muic,support-list = "OTG","Charging Cable","Jig USB On","Jig UART Off", + "Jig UART Off + VB","Jig UART On", + "TA","USB","CDP","Undefined Charging", + "Unofficial ID","Unofficial ID + TA","Unofficial ID + ANY TA", + "Smartdock","Smartdock + VB","Smartdock + TA","Smartdock + USB", + "Deskdock", "Deskdock + VB", + "Unofficial ID + USB","Unofficial ID + CDP", + "TA or AFC","AFC charger Prepare","AFC charger 5V","AFC charger 9V", + "Fuelgauge test","HMT","VZW Accessory","VZW Incompatible"; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P1_2MIC"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13680000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <1000000>; + earSmart@3e { + compatible = "earSmart"; + reg = <0x3e>; + clocks = <&clock 45>; + clock-names = "mclk"; + pinctrl-0 = <&es704_i2c &es704_reset &es704_wakeup>; + esxxx-reset-gpio = <&gpf1 0 0>; + esxxx-wakeup-gpio = <&gpd0 1 0>; + adnc,firmware_name = "audience-es804-fw.bin"; + }; + }; + + serial_0: uart@13630000 { + status = "okay"; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + status = "okay"; + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1050000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "disable"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + pcie0@155C0000 { + status = "okay"; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqxga: s6e3hf2_wqxga_panel { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; /* 0: mic disable, 1: mic enable */ + mic_ver = <2>; /* 0: mic v1.1, 1: v1.2, 2: v2.0 */ + type_of_ddi = <0>; /* 0: Samsung Mobile, 1: MAGNA, 2: Normal(Etc) */ + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_00.dtsi b/arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_00.dtsi new file mode 100644 index 000000000000..ce6ae0eda261 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_00.dtsi @@ -0,0 +1,380 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO LTE JPN HW REV00 (b0101) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, UP); /* FELICA_UART_RXD */ + PIN_SLP(gpd0-1, OUT1, UP); /* FELICA_UART_TXD */ + PIN_SLP(gpd0-2, INPUT, UP); /* FELICA_UART_CTS */ + PIN_SLP(gpd0-3, OUT1, UP); /* FELICA_UART_RTS */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, OUT1, UP); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg3-3, INPUT, DOWN); /* NC */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-2, DOWN, LV1); /* NC */ + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_OUT_SET(gpf5-4, 1, LV1); /* FELICA_LDO_EN */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, INPUT, NONE); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpf1-3, INPUT, NONE); /* WPC_SCL */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, UP); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, UP); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, PREV, NONE); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, PREV, NONE); /* WCHG_CTL */ + PIN_SLP(gpf5-7, PREV, NONE); /* CODEC_LDO_EN */ + + PIN_SLP(gpg1-0, PREV, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, NONE); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg2-3, INPUT, NONE); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, DOWN); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_03.dtsi b/arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_03.dtsi new file mode 100644 index 000000000000..720837bfccb9 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_03.dtsi @@ -0,0 +1,398 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO-S LTE JPN HW REV00 (b1010) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* TOUCH_SDA */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* TOUCH_SCL */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* WPC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + PIN_IN(gpf3-2, DOWN, LV1); /* NC */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* WCP_TSB */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* WCP_TSB */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial4>; + pinctrl-1 = <&sleep4>; + initial4: initial-state { + PIN_IN(gpj0-2, DOWN, LV1); /* NC */ + }; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial5>; + pinctrl-1 = <&sleep5>; + initial5: initial-state { + PIN_IN(gpj1-2, DOWN, LV1); /* NC */ + }; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, DOWN); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, DOWN); /* TSP_SCL */ + PIN_SLP(gpj1-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* OLED_ID */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, INPUT, DOWN); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-3, INPUT, NONE); /* DUAL_SIM */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, OUT0, NONE); /* AP_CP_PACKET_SEND */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_06.dtsi b/arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_06.dtsi new file mode 100644 index 000000000000..ac9ce23d772a --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroslte_gpio_jpn_06.dtsi @@ -0,0 +1,393 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +// Support ZERO SLTE JPN HW REV06 (b1010) + +#include "exynos_gpio_config_macros.dtsi" +#include "exynos7420-zerolte_jpn-secnfc-tuner-r00.dtsi" + +// gpz0, gpz1 +&pinctrl_1 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep1>; + sleep1: sleep-state { + PIN_SLP(gpz0-0, INPUT, DOWN); /* MM_I2S_CLK */ + PIN_SLP(gpz0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-2, INPUT, DOWN); /* MM_I2S_SYNC */ + PIN_SLP(gpz0-3, INPUT, DOWN); /* MM_I2S_DO */ + PIN_SLP(gpz0-4, INPUT, DOWN); /* MM_I2S_DI */ + PIN_SLP(gpz0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpz0-6, INPUT, DOWN); /* NC */ + + PIN_SLP(gpz1-0, OUT1, UP); /* BT_UART_TXD */ + PIN_SLP(gpz1-1, INPUT, UP); /* BT_UART_RXD */ + PIN_SLP(gpz1-2, INPUT, UP); /* BT_UART_CTS */ + PIN_SLP(gpz1-3, OUT1, UP); /* BT_UART_RTS */ + }; +}; + +// gpb0, gpc0 ~ gpc3, gpd0 ~ gpd8, gpg0, gpg3 +&pinctrl_2 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial2>; + pinctrl-1 = <&sleep2>; + initial2: initial-state { + PIN_IN(gpd0-0, DOWN, LV1); /* NC */ + PIN_IN(gpd0-1, DOWN, LV1); /* NC */ + + PIN_IN(gpd1-2, DOWN, LV1); /* NC */ + PIN_IN(gpd1-3, DOWN, LV1); /* NC */ + PIN_IN(gpd1-4, DOWN, LV1); /* NC */ + PIN_IN(gpd1-5, DOWN, LV1); /* NC */ + + PIN_IN(gpd2-4, DOWN, LV1); /* NC */ + PIN_IN(gpd2-6, DOWN, LV1); /* NC */ + PIN_IN(gpd2-7, DOWN, LV1); /* NC */ + + PIN_IN(gpd4-0, DOWN, LV1); /* NC */ + PIN_IN(gpd4-1, DOWN, LV1); /* NC */ + PIN_IN(gpd4-2, DOWN, LV1); /* NC */ + PIN_IN(gpd4-3, DOWN, LV1); /* NC */ + PIN_IN(gpd4-4, DOWN, LV1); /* NC */ + }; + sleep2: sleep-state { + PIN_SLP(gpb0-0, INPUT, NONE); /* MEM_SDA */ + PIN_SLP(gpb0-1, INPUT, NONE); /* MEM_SCL */ + PIN_SLP(gpb0-2, INPUT, DOWN); /* VTCAM_EEP_SDA */ + PIN_SLP(gpb0-3, INPUT, DOWN); /* VTCAM_EEP_SCL */ + PIN_SLP(gpb0-4, OUT0, NONE); /* BUCK6EN */ + + PIN_SLP(gpc0-0, INPUT, DOWN); /* COMP_PAF_INT */ + PIN_SLP(gpc0-1, INPUT, DOWN); /* TP */ + PIN_SLP(gpc0-2, INPUT, DOWN); /* CAM_FLASH_EN */ + PIN_SLP(gpc0-3, INPUT, DOWN); /* CAM_TORCH_EN */ + PIN_SLP(gpc0-4, INPUT, DOWN); /* VTCAM_RST_N */ + PIN_SLP(gpc0-5, INPUT, DOWN); /* CAM_RST_N */ + PIN_SLP(gpc0-6, INPUT, DOWN); /* VTCAM_STBY */ + PIN_SLP(gpc0-7, INPUT, DOWN); /* COMP_RST_N */ + + PIN_SLP(gpc1-0, INPUT, DOWN); /* CAM_SENSOR_DET */ + PIN_SLP(gpc1-1, INPUT, DOWN); /* TP */ + + PIN_SLP(gpc2-0, INPUT, DOWN); /* CAM_SDA */ + PIN_SLP(gpc2-1, INPUT, DOWN); /* CAM_SCL */ + PIN_SLP(gpc2-2, INPUT, DOWN); /* VTCAM_SDA */ + PIN_SLP(gpc2-3, INPUT, DOWN); /* VTCAM_SCL */ + PIN_SLP(gpc2-4, INPUT, DOWN); /* OIS_AF_SDA */ + PIN_SLP(gpc2-5, INPUT, DOWN); /* OIS_AF_SCL */ + + PIN_SLP(gpc3-0, INPUT, DOWN); /* FROM_SPI_SCLK */ + PIN_SLP(gpc3-1, INPUT, DOWN); /* FROM_SPI_SSN */ + PIN_SLP(gpc3-2, INPUT, DOWN); /* FROM_SPI_MISO */ + PIN_SLP(gpc3-3, INPUT, DOWN); /* FROM_SPI_MOSI */ + PIN_SLP(gpc3-4, INPUT, DOWN); /* COMP_SPI_SCLK */ + PIN_SLP(gpc3-5, INPUT, DOWN); /* COMP_SPI_SSN */ + PIN_SLP(gpc3-6, INPUT, DOWN); /* COMP_SPI_MISO */ + PIN_SLP(gpc3-7, INPUT, DOWN); /* COMP_SPI_MOSI */ + + PIN_SLP(gpd0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd0-2, INPUT, NONE); /* SUB_PMIC_SDA */ + PIN_SLP(gpd0-3, INPUT, NONE); /* SUB_PMIC_SCL */ + + PIN_SLP(gpd1-0, INPUT, DOWN); /* AP_RXD */ + PIN_SLP(gpd1-1, INPUT, DOWN); /* AP_TXD */ + PIN_SLP(gpd1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd1-5, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd2-0, INPUT, NONE); /* SPK_AMP_SDA */ + PIN_SLP(gpd2-1, INPUT, NONE); /* SPK_AMP_SCL */ + PIN_SLP(gpd2-2, INPUT, NONE); /* IF_PMIC_SDA */ + PIN_SLP(gpd2-3, INPUT, NONE); /* IF_PMIC_SCL */ + PIN_SLP(gpd2-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-5, OUT0, NONE); /* VIBTONE_PWM */ + PIN_SLP(gpd2-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpd2-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpd4-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpd5-0, INPUT, DOWN); /* CP_SPI_CLK */ + PIN_SLP(gpd5-1, INPUT, DOWN); /* CP_SPI_CSN */ + PIN_SLP(gpd5-2, INPUT, DOWN); /* CP_SPI_MISO */ + PIN_SLP(gpd5-3, INPUT, DOWN); /* CP_SPI_MOSI */ + + PIN_SLP(gpd6-0, INPUT, DOWN); /* CODEC_SPI_MOSI */ + PIN_SLP(gpd6-1, INPUT, DOWN); /* CODEC_SPI_MISO */ + PIN_SLP(gpd6-2, OUT1, UP); /* SHUB_SPI_SCK */ + PIN_SLP(gpd6-3, OUT1, UP); /* SHUB_SPI_CSN */ + PIN_SLP(gpd6-4, INPUT, DOWN); /* SHUB_SPI_MISO */ + PIN_SLP(gpd6-5, OUT1, UP); /* SHUB_SPI_MOSI */ + + PIN_SLP(gpd7-0, INPUT, DOWN); /* CAM_MCLK */ + PIN_SLP(gpd7-1, INPUT, DOWN); /* COMP_MCLK */ + PIN_SLP(gpd7-2, INPUT, DOWN); /* VTCAM_MCLK */ + + PIN_SLP(gpd8-0, INPUT, DOWN); /* CODEC_SPI_SCK */ + PIN_SLP(gpd8-1, INPUT, DOWN); /* CODEC_SPI_SSN */ + + PIN_SLP(gpg0-0, INPUT, DOWN); /* DISPLAY_TE */ + PIN_SLP(gpg0-1, INPUT, DOWN); /* DISPLAY_TE */ + + PIN_SLP(gpg3-0, INPUT, NONE); /* AP_PMIC_SDA */ + PIN_SLP(gpg3-1, INPUT, NONE); /* AP_PMIC_SCL */ + PIN_SLP(gpg3-2, INPUT, NONE); /* WPC_SDA */ + PIN_SLP(gpg3-3, INPUT, NONE); /* WPC_SCL */ + }; +}; + +// gpf0 ~ gpf5, gpg1, gpg2, gph1, gpv6 +&pinctrl_3 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial3>; + pinctrl-1 = <&sleep3>; + initial3: initial-state { + PIN_IN(gpf0-0, NONE, LV1); /* HW_REV(0) */ + PIN_IN(gpf0-1, NONE, LV1); /* HW_REV(1) */ + PIN_IN(gpf0-2, NONE, LV1); /* HW_REV(2) */ + PIN_IN(gpf0-3, NONE, LV1); /* HW_REV(3) */ + PIN_IN(gpf0-5, DOWN, LV1); /* NC */ + + PIN_IN(gpf1-0, DOWN, LV1); /* NC */ + PIN_IN(gpf1-2, DOWN, LV1); /* NC */ + PIN_IN(gpf1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf2-0, DOWN, LV1); /* NC */ + PIN_IN(gpf2-1, DOWN, LV1); /* NC */ + PIN_IN(gpf2-2, DOWN, LV1); /* NC */ + PIN_IN(gpf2-3, DOWN, LV1); /* NC */ + + PIN_IN(gpf3-1, DOWN, LV1); /* FPS_ID */ + + PIN_IN(gpf5-3, DOWN, LV1); /* NC */ + PIN_IN(gpf5-5, DOWN, LV1); /* NC */ + PIN_IN(gpf5-6, DOWN, LV1); /* NC */ + PIN_IN(gpf5-7, DOWN, LV1); /* NC */ + + PIN_IN(gpg1-2, DOWN, LV1); /* NC */ + PIN_IN(gpg1-3, DOWN, LV1); /* NC */ + + PIN_IN(gph1-0, DOWN, LV1); /* NC */ + PIN_IN(gph1-1, DOWN, LV1); /* NC */ + PIN_IN(gph1-2, DOWN, LV1); /* NC */ + PIN_IN(gph1-3, DOWN, LV1); /* NC */ + + PIN_IN(gpv6-0, DOWN, LV1); /* NC */ + PIN_IN(gpv6-1, DOWN, LV1); /* NC */ + PIN_IN(gpv6-2, DOWN, LV1); /* NC */ + }; + sleep3: sleep-state { + PIN_SLP(gpf0-0, INPUT, NONE); /* HW_REV(0) */ + PIN_SLP(gpf0-1, INPUT, NONE); /* HW_REV(1) */ + PIN_SLP(gpf0-2, INPUT, NONE); /* HW_REV(2) */ + PIN_SLP(gpf0-3, INPUT, NONE); /* HW_REV(3) */ + PIN_SLP(gpf0-4, PREV, NONE); /* AP_CP_STATUS */ + PIN_SLP(gpf0-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf0-6, PREV, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpf0-7, PREV, DOWN); /* XCCIBYPASS */ + + PIN_SLP(gpf1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-1, PREV, NONE); /* CP_RST_N */ + PIN_SLP(gpf1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf1-4, INPUT, DOWN); /* VTCAM_ID */ + PIN_SLP(gpf1-5, PREV, NONE); /* NFC_EN */ + PIN_SLP(gpf1-6, PREV, NONE); /* BTP_LDO_EN1 */ + PIN_SLP(gpf1-7, PREV, NONE); /* BTP_LDO_EN2 */ + + PIN_SLP(gpf2-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpf2-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpf3-0, OUT1, NONE); /* PMIC_WRST_IN */ + PIN_SLP(gpf3-1, INPUT, DOWN); /* FPS_ID */ + PIN_SLP(gpf3-2, OUT0, NONE); /* MST_PWR_EN */ + PIN_SLP(gpf3-3, OUT0, NONE); /* PDA_ACTIVE */ + PIN_SLP(gpf3-4, PREV, NONE); /* BTP_RST_N */ + + PIN_SLP(gpf4-0, PREV, NONE); /* CODEC_RST_N */ + PIN_SLP(gpf4-1, PREV, NONE); /* BT_EN */ + PIN_SLP(gpf4-2, PREV, NONE); /* AP_CP_WAKE */ + PIN_SLP(gpf4-3, OUT0, NONE); /* DISPLAY_1.6V_EN */ + PIN_SLP(gpf4-4, INPUT, DOWN); /* SSP_MCU_RESP */ + PIN_SLP(gpf4-5, OUT0, DOWN); /* SSP_MCU_REQ */ + PIN_SLP(gpf4-6, PREV, NONE); /* WLAN_EN */ + PIN_SLP(gpf4-7, PREV, NONE); /* GPS_HUB_EN */ + + PIN_SLP(gpf5-0, PREV, NONE); /* CP_PMIC_PWR_EN */ + PIN_SLP(gpf5-1, PREV, NONE); /* AP_CP_DUMP_NOTI_n */ + PIN_SLP(gpf5-2, PREV, NONE); /* FACTORY_DISCHARGING */ + PIN_SLP(gpf5-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-4, OUT0, DOWN); /* NFC_FIRM */ + PIN_SLP(gpf5-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpf5-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpg1-0, INPUT, NONE); /* SMPL_WARN_AP */ + PIN_SLP(gpg1-1, PREV, NONE); /* PMIC_BUCK6_DVS */ + PIN_SLP(gpg1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpg1-4, INPUT, DOWN); /* TSP_ID */ + + PIN_SLP(gpg2-0, PREV, NONE); /* PCIE_RST_L */ + PIN_SLP(gpg2-1, INPUT, DOWN); /* PAD_DBGSRCSEL */ + PIN_SLP(gpg2-2, PREV, UP); /* PCIE_LINK_RESET */ + PIN_SLP(gpg2-3, PREV, DOWN); /* XCPUAXI3SELACE */ + PIN_SLP(gpg2-4, PREV, NONE); /* UFS_REFCLK */ + + PIN_SLP(gph1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gph1-4, OUT0, NONE); /* XBOOTLDO0 */ + PIN_SLP(gph1-5, PREV, NONE); /* UFS_RST_N */ + + PIN_SLP(gpv6-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpv6-2, INPUT, DOWN); /* NC */ + }; +}; + +// gpj0 +&pinctrl_4 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep4>; + sleep4: sleep-state { + PIN_SLP(gpj0-0, INPUT, NONE); /* HRM_SDA */ + PIN_SLP(gpj0-1, INPUT, NONE); /* HRM_SCL */ + PIN_SLP(gpj0-2, PREV, NONE); /* MST_D- */ + }; +}; + +// gpj1 +&pinctrl_5 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep5>; + sleep5: sleep-state { + PIN_SLP(gpj1-0, INPUT, NONE); /* TSP_SDA */ + PIN_SLP(gpj1-1, INPUT, NONE); /* TSP_SCL */ + PIN_SLP(gpj1-2, PREV, NONE); /* MST_D+ */ + }; +}; + +// gpg4 +&pinctrl_6 { + pinctrl-names = "sleep"; + pinctrl-0 = <&sleep6>; + sleep6: sleep-state { + PIN_SLP(gpg4-0, INPUT, DOWN); /* ESE_SPI_SCLK */ + PIN_SLP(gpg4-1, INPUT, DOWN); /* ESE_SPI_SSN */ + PIN_SLP(gpg4-2, INPUT, DOWN); /* ESE_SPI_MISO */ + PIN_SLP(gpg4-3, INPUT, DOWN); /* ESE_SPI_MOSI */ + }; +}; + +// gpv7 +&pinctrl_7 { + pinctrl-names = "sleep"; + pinctrl-0= <&sleep7>; + sleep7: sleep-state { + PIN_SLP(gpv7-0, OUT0, NONE); /* BTP_SPI_CLK */ + PIN_SLP(gpv7-1, OUT0, NONE); /* BTP_SPI_CS_N */ + PIN_SLP(gpv7-2, INPUT, DOWN); /* BTP_SPI_MISO */ + PIN_SLP(gpv7-3, OUT0, NONE); /* BTP_SPI_MOSI */ + PIN_SLP(gpv7-4, PREV, NONE); /* BTP_OCP_EN */ + }; +}; + +// gpr4 +&pinctrl_8 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial8>; + pinctrl-1 = <&sleep8>; + initial8: initial-state { + PIN_IN(gpr4-0, DOWN, LV1); /* NC */ + PIN_IN(gpr4-1, DOWN, LV1); /* NC */ + PIN_IN(gpr4-2, DOWN, LV1); /* NC */ + PIN_IN(gpr4-3, DOWN, LV1); /* NC */ + PIN_IN(gpr4-4, DOWN, LV1); /* NC */ + PIN_IN(gpr4-5, DOWN, LV1); /* NC */ + PIN_IN(gpr4-6, DOWN, LV1); /* NC */ + }; + sleep8: sleep-state { + PIN_SLP(gpr4-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr4-6, INPUT, DOWN); /* NC */ + }; +}; + +// gpr0 ~ gpr3 +&pinctrl_9 { + pinctrl-names = "default","sleep"; + pinctrl-0 = <&initial9>; + pinctrl-1 = <&sleep9>; + initial9: initial-state { + PIN_IN(gpr0-0, DOWN, LV1); /* NC */ + PIN_IN(gpr0-1, DOWN, LV1); /* NC */ + PIN_IN(gpr0-2, DOWN, LV1); /* NC */ + PIN_IN(gpr0-3, DOWN, LV1); /* NC */ + + PIN_IN(gpr1-0, DOWN, LV1); /* NC */ + PIN_IN(gpr1-1, DOWN, LV1); /* NC */ + PIN_IN(gpr1-2, DOWN, LV1); /* NC */ + PIN_IN(gpr1-3, DOWN, LV1); /* NC */ + PIN_IN(gpr1-4, DOWN, LV1); /* NC */ + PIN_IN(gpr1-5, DOWN, LV1); /* NC */ + PIN_IN(gpr1-6, DOWN, LV1); /* NC */ + PIN_IN(gpr1-7, DOWN, LV1); /* NC */ + + PIN_IN(gpr2-1, DOWN, LV1); /* NC */ + PIN_IN(gpr2-3, DOWN, LV1); /* NC */ + PIN_IN(gpr2-4, DOWN, LV1); /* NC */ + + PIN_IN(gpr3-2, NONE, LV1); /* TSP_ID2 */ + PIN_IN(gpr3-3, DOWN, LV1); /* NC */ + }; + sleep9: sleep-state { + PIN_SLP(gpr0-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr0-3, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr1-0, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-2, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-4, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-5, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-6, INPUT, DOWN); /* NC */ + PIN_SLP(gpr1-7, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr2-0, INPUT, NONE); /* PCIE_CLKREQ_L */ + PIN_SLP(gpr2-1, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-2, INPUT, NONE); /* SUB_PMIC_IRQ_N */ + PIN_SLP(gpr2-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr2-4, INPUT, DOWN); /* NC */ + + PIN_SLP(gpr3-0, PREV, NONE); /* M_DISPLAY_RST */ + PIN_SLP(gpr3-1, INPUT, DOWN); /* DISPLAY_DET */ + PIN_SLP(gpr3-2, INPUT, NONE); /* TSP_ID2 */ + PIN_SLP(gpr3-3, INPUT, DOWN); /* NC */ + PIN_SLP(gpr3-4, PREV, NONE); /* BT_WAKE */ + PIN_SLP(gpr3-5, INPUT, DOWN); /* IFC_SENSE_INT_AP */ + PIN_SLP(gpr3-6, OUT0, NONE); /* AP_CP_PACKET_SEND */ + PIN_SLP(gpr3-7, INPUT, DOWN); /* FG_ERR */ + }; +}; + diff --git a/arch/arm64/boot/dts/exynos7420-zeroslte_jpn_00.dts b/arch/arm64/boot/dts/exynos7420-zeroslte_jpn_00.dts new file mode 100644 index 000000000000..96032eeb270a --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroslte_jpn_00.dts @@ -0,0 +1,786 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery.dtsi" +#include "exynos7420-zerolte_gpio_jpn_00.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO LTE JPN rev00 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <0>; + model_info-hw_rev_end = <5>; + compatible = "samsung,ZERO LTE JPN EVT1 mPOP,r00", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_ldoena &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,ldoena = <&gpf5 7 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <5>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10196 176 (-21) 516 10378 20 (-774) 1027 9454>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + codec_ldoena: codec-ldoena { + samsung,pins ="gpf5-7"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <1>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1050000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + hsi2c@14E60000 { + status = "disabled"; + /delete-node/ s2mpb01_pmic@59; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <125 128 131 134 137 140 145 150 155 160 + 165 169 173 177 181 185 192 199 206 213 + 220 239 258 267 276 281 287 290 293 303 + 314 324 334 343 352 364 377 397 416 442 + 469 484 499 514 528 543 560 577 593 610 + 626 648 670 691 713 734 749 763 777 791 + 805 834 863 891 919 947 964 981 998 1014 + 1031 1056 1081 1106 1131 1157 1182 1207 1232 1258 + 1284 1312 1340 1368 1396 1423 1444 1464 1484 1504 + 1524 1542 1560 1578 1596 1615 1630 1646 1661 1678 + 1693 1705 1718 1730 1743 1757 1764 1772 1779 1787 + 1794>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroslte_jpn_03.dts b/arch/arm64/boot/dts/exynos7420-zeroslte_jpn_03.dts new file mode 100644 index 000000000000..b5206cd3f98d --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroslte_jpn_03.dts @@ -0,0 +1,841 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zeroflte_jpn_battery_04.dtsi" +#include "exynos7420-zeroslte_gpio_jpn_03.dtsi" +#include "exynos7420-zerolte_modem-shannon_ds.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zeroflte_motor.dtsi" +#include "exynos7420-zeroflte_svcled.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO-S LTE JPN rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <6>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO-S LTE JPN EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <0>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <10213 (-360) 154 (-206) 8673 (-59) (-66) (-59) 10479>; /* Only for YAS532 */ + ssp-hw-rev = <3>; + ssp-glass-type = <0>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "vtouch_3.3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1050000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + pinctrl@13470000 { + /* touchkey i2c*/ + cfg_i2c: cfg-i2c { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <3>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + cfg_gpio: cfg_gpio { + samsung,pins = "gpd1-3", "gpd1-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@10580000 { + /* touchkey interrupt*/ + cfg_irq: cfg-irq { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + cfg_input: cfg-input { + samsung,pins = "gpa0-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + sub_det: sub-det { + samsung,pins = "gpa3-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@14E70000 { + status = "okay"; + pinctrl-names = "default","on_i2c","off_i2c"; + pinctrl-0 = <&hs_i2c3_bus>; + pinctrl-1 = <&cfg_i2c>; + pinctrl-2 = <&cfg_gpio>; + touchkey@20 { + pinctrl-names = "on_irq","off_irq","sub_det"; + pinctrl-0 = <&cfg_irq>; + pinctrl-1 = <&cfg_input>; + pinctrl-2 = <&sub_det>; + compatible = "cypress,cypress_touchkey"; + reg = <0x20>; + interrupts = <0 0 0>; + interrupt-parent = <&gpa0>; + cypress,sda-gpio = <&gpd1 2 0>; + cypress,scl-gpio = <&gpd1 3 0>; + cypress,irq-gpio = <&gpa0 0 1>; + cypress,sub-det = <&gpa3 0 0>; + cypress,ap-io-power = "true"; + cypress,ic-stabilizing-time = <150>; + cypress,boot-on-ldo = "true"; + cypress,fw_path = "cypress/cypress_zerof.fw"; + }; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,firmware_name = "tsp_stm/stm_z1.fw"; + stm,project_name = "ZEROF", "G920"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + decon_0: decon_fb { + gpio_pcd = <&gpa1 2 0>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3ha2_wqhd>; + }; + + s6e3ha2_wqhd: s6e3ha2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; + + simslot_count { + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420-zeroslte_jpn_06.dts b/arch/arm64/boot/dts/exynos7420-zeroslte_jpn_06.dts new file mode 100644 index 000000000000..e0b76e4d0e53 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420-zeroslte_jpn_06.dts @@ -0,0 +1,832 @@ +/* + * SAMSUNG UNIVERSAL7420 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/dts-v1/; +#include "exynos7420-zero_common.dtsi" +#include "exynos7420-zerolte_battery_06.dtsi" +#include "exynos7420-zeroslte_gpio_jpn_06.dtsi" +#include "exynos7420-zerolte_modem-shannon.dtsi" +#include "exynos7420-zerolte_fingerprint-sensor_00.dtsi" +#include "exynos7420-zerolte_mst.dtsi" + +/ { + model = "Samsung ZERO SLTE JPN rev06 board based on Exynos7420(EVT1), mPOP"; + model_info-chip = <7420>; + model_info-platform = "android"; + model_info-subtype = "samsung"; + model_info-hw_rev = <10>; + model_info-hw_rev_end = <255>; + compatible = "samsung,ZERO SLTE JPN EVT1 mPOP,r06", "samsung,exynos7420"; + + spi_0: spi@14d20000 { + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + + num-cs = <1>; + status = "okay"; + + audio_codec: wm1840@0 { + compatible = "wlf,wm1840"; + reg = <0x0>; + spi-max-frequency = <20000000>; + interrupts = <5 0 0>; + interrupt-parent = <&gpa2>; + + gpio-controller; + #gpio-cells = <2>; + + pinctrl-names ="default"; + pinctrl-0 = <&codec_reset &codec_irq>; + + wlf,reset = <&gpf4 0 0>; + wlf,init-mic-delay = <30>; + wlf,use-jd-gpio; + wlf,micd-clamp-mode = <0x8>; + wlf,micd-detect-debounce = <300>; + wlf,micd-pol-gpio = <0>; + wlf,micd-bias-start-time = <0x1>; + wlf,micd-rate = <0x7>; + wlf,micd-dbtime = <0x1>; + wlf,micd-timeout = <1000>; + wlf,micd-force-micbias; + wlf,hpdet-moisture-imp = <2000>; + wlf,hpdet-moisture-debounce = <40>; + wlf,hpdet-channel = <1>; + wlf,hpdet-ext-res = <33>; + wlf,hpdet-short-circuit-imp = <3>; + wlf,micd-ranges = < + 116 226 + 173 582 + 321 115 + 752 114 + 1257 217 + >; + + wlf,micd-configs = < + 0x0 2 0 + >; + + wlf,micbias1 = <1800 0 1 0 0>; + wlf,micbias2 = <2800 0 1 0 0>; + wlf,micbias3 = <1800 0 1 0 0>; + wlf,micbias4 = <1800 0 1 0 0>; + + wlf,gpio-defaults = < + 0xffffffff 0xffffffff /* GPIO1 */ + 0xffffffff 0xffffffff /* GPIO2 */ + 0xffffffff 0xffffffff /* GPIO3 */ + 0xffffffff 0xffffffff /* GPIO4 */ + 0xffffffff 0xffffffff /* GPIO5 */ + 0xffffffff 0xffffffff /* GPIO6 */ + 0xffffffff 0xffffffff /* GPIO7 */ + 0xffffffff 0xffffffff /* GPIO8 */ + 0xffffffff 0xffffffff /* MIF1SCLK / GPIO9 */ + 0xffffffff 0xffffffff /* MIF1SDA / GPIO10 */ + 0xffffffff 0xffffffff /* MIF2SCLK / GPIO11 */ + 0xffffffff 0xffffffff /* MIF2SDA / GPIO12 */ + 0xffffffff 0xffffffff /* MIF3SCLK / GPIO13 */ + 0xffffffff 0xffffffff /* MIF3SDA / GPIO14 */ + 0x00002000 0x00006000 /* AIF1TXDAT / GPIO15 */ + 0x00002000 0x00006000 /* AIF1BCLK / GPIO16 */ + 0x00002000 0x00006000 /* AIF1RXDAT / GPIO17 */ + 0x00002000 0x00006000 /* AIF1LRCLK / GPIO18 */ + 0x00002000 0x00006000 /* AIF2TXDAT / GPIO19 */ + 0x00002000 0x00006000 /* AIF2BCLK / GPIO20 */ + 0x00002000 0x00006000 /* AIF2RXDAT / GPIO21 */ + 0x00002000 0x00006000 /* AIF2LRCLK / GPIO22 */ + 0x00002000 0x00006000 /* AIF3TXDAT / GPIO23 */ + 0x00002000 0x00006000 /* AIF3BCLK / GPIO24 */ + 0x00002000 0x00006000 /* AIF3RXDAT / GPIO25 */ + 0x00002000 0x00006000 /* AIF3LRCLK / GPIO26 */ + 0x00002000 0x00006000 /* AIF4TXDAT / GPIO27 */ + 0x00002000 0x00006000 /* AIF4BCLK / GPIO28 */ + 0x00002000 0x00006000 /* AIF4RXDAT / GPIO29 */ + 0x00002000 0x00006000 /* AIF4LRCLK / GPIO30 */ + 0x00002000 0x0000e000 /* DMICCLK4 / GPIO31 */ + 0x00002000 0x0000e000 /* DMICDAT4 / GPIO32 */ + 0xffffffff 0xffffffff /* DMICCLK5 / GPIO33 */ + 0xffffffff 0xffffffff /* DMICDAT5 / GPIO34 */ + 0xffffffff 0xffffffff /* DMICCLK6 / GPIO35 */ + 0xffffffff 0xffffffff /* DMICDAT6 / GPIO36 */ + 0xffffffff 0xffffffff /* SPKCLK1 / GPIO37 */ + 0xffffffff 0xffffffff /* SPKCLK2 / GPIO38 */ + 0xffffffff 0xffffffff /* SPKDAT1 / GPIO39 */ + 0xffffffff 0xffffffff /* SPKDAT2 / GPIO40 */ + >; + + wlf,gpsw = <0x3>; + wlf,micd-software-compare; + wlf,antenna-supported; + wlf,antenna-manual-db-plugout = <1>; + wlf,antenna-hp-imp-range-lo = <5>; + wlf,antenna-hp-imp-range-hi = <5>; + wlf,micd-open-circuit-declare = <1>; + wlf,jd-wake-time = <5000>; + + wlf,max-channels-clocked = <2 0 0 0>; + /* 0:MICVDD 1:MICBIAS1 2:MICBIAS2 3:MICBIAS3 */ + wlf,dmic-ref = <1 2 1 0 0 0>; + /* 1st cell:IN1L 2rd cell:IN1R 3nd cell:IN2L 4th cell:IN2R... 12th cell:IN6R */ + wlf,inmode = <2 2 0 0 2 2 2 2 0 0 0 0>; + /* 1st cell:OUT1 2nd cell:OUT2 3rd cell:OUT3... 6th cell:OUT6 */ + wlf,out-mono = <0 1 1 0 0 0>; + + wlf,rev-specific-fw; + + DCVDD-supply = <&ldo26_reg>; + AVDD-supply = <&ldo16_reg>; + LDOVDD-supply = <&ldo16_reg>; + DBVDD1-supply = <&ldo16_reg>; + + CPVDD-supply = <&ldo16_reg>; + DBVDD2-supply = <&ldo16_reg>; + DBVDD3-supply = <&ldo16_reg>; + DBVDD4-supply = <&ldo16_reg>; + SPKVDDL-supply = <&ldo16_reg>; + SPKVDDR-supply = <&ldo16_reg>; + + adsps { + #address-cells = <1>; + #size-cells = <0>; + + adsp@0FFE00 { + reg = <0x0FFE00>; + firmware { + TRACE { + wlf,wmfw-file = "trace"; + wlf,bin-file = "None"; + wlf,compr-caps = <1 8 0x4 1 8000 16000 24000>; + }; + }; + }; + adsp@17FE00 { + reg = <0x17FE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "None"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "None"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "None"; + }; + TX_FB_MEETING { + wlf,wmfw-file = "tx-fb-meeting"; + wlf,bin-file = "tx-fb-meeting"; + }; + }; + }; + adsp@1FFE00 { + reg = <0x1FFE00>; + firmware { + TX_NB { + wlf,wmfw-file = "tx-nb"; + wlf,bin-file = "tx-nb"; + }; + TX_WB { + wlf,wmfw-file = "tx-wb"; + wlf,bin-file = "tx-wb"; + }; + TX_SWB_INTERVIEW { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-interview"; + }; + TX_SWB_CONVERSATION { + wlf,wmfw-file = "tx-swb"; + wlf,bin-file = "tx-swb-conversation"; + }; + TX_WB_MEETING { + wlf,wmfw-file = "tx-wb-meeting"; + wlf,bin-file = "tx-wb-meeting"; + }; + }; + }; + adsp@27FE00 { + reg = <0x27FE00>; + firmware { + RX_NB { + wlf,wmfw-file = "rx-anc-nb"; + wlf,bin-file = "rx-anc-nb"; + }; + RX_WB { + wlf,wmfw-file = "rx-anc-wb"; + wlf,bin-file = "rx-anc-wb"; + }; + }; + }; + adsp@37FE00 { + reg = <0x37FE00>; + firmware { + VOICECONTROL { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "ez2-control"; + wlf,compr-caps = <1 1 0x4 1 16000>; + }; + LPSD { + wlf,wmfw-file = "ez2-control"; + wlf,bin-file = "lpsd-control"; + }; + }; + }; + adsp@2FFE00 { + reg = <0x2FFE00>; + firmware { + DSM { + wlf,wmfw-file = "dsm"; + wlf,bin-file = "None"; + }; + }; + }; + }; + controller-data { + cs-gpio = <&gpd8 1 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + spi_1: spi@14d30000 { + #address-cells = <1>; + #size-cells = <0>; + + pinctrl-names = "default"; + pinctrl-0 = <&spi1_mosi_sck_ssn &spi1_miso>; + + num-cs = <1>; + status = "okay"; + + BCM4773@0 { + compatible = "ssp,BCM4773"; + reg = <0>; + spi-max-frequency = <26000000>; + spi-cpol; + spi-cpha; + pinctrl-names = "default"; + pinctrl-0 = <&ssp_host_req &ssp_mcu_req &ssp_mcu_resp>; + + gpio-controller; + #gpio-cells = <2>; + ssp-host-req = <&gpa3 6 0x01>; + ssp-mcu-req = <&gpf4 5 0x01>; + ssp-mcu-resp = <&gpf4 4 0x00>; + ssp-acc-position = <0>; + ssp-mag-position = <6>; + ssp-sns-combination = <0>; + ssp,prox-hi_thresh = <2000>; + ssp,prox-low_thresh = <1400>; + ssp-ap-rev = <1>; + ssp-mag-array = <9930 866 (-228) 263 9197 121 (-135) 387 10378>; + ssp-hw-rev = <3>; + ssp-glass-type = <1>; + + controller-data { + cs-gpio = <&gpd6 3 0>; + samsung,spi-feedback-delay = <0>; + }; + }; + }; + + gps { + compatible = "samsung,exynos54xx-bcm4753"; + + pinctrl-names = "default"; + pinctrl-0 = <&ssp_gps_pwr_en &ssp_host_wake>; + + gpios = <&gpf4 7 0x1 + &gpa3 2 0xf + >; + status = "okay"; + }; + + spi_3: spi@14d50000 { + status = "okay"; + /delete-property/ dma-mode; + /delete-property/ dmas; + /delete-property/ dma-names; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + + ese_spi@0 { + compatible = "ese_p3"; + reg = <0>; + spi-max-frequency = <10000000>; + + gpio-controller; + #gpio-cells = <2>; + + p3-mosipin = <21>; + p3-misopin = <22>; + p3-cspin = <183>; + p3-clkpin = <24>; + p3-cs-gpio = <&gpg4 1 0>; + p3-vdd-1p8= "VDD_1.8V_ESE"; + + controller-data { + samsung,spi-chip-select-mode = <1>; + }; + }; + }; + + audio_pdata { + compatible = "samsung,audio-pdata"; + + seamless_voicewakeup; + status = "okay"; + }; + + pinctrl@10580000 { + codec_irq: codec-irq { + samsung,pins = "gpa2-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + }; + max98505_ctrl: max98505-ctl { + samsung,pins ="gpa2-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-con-pdn =<2>; + samsung,pin-pud-pdn = <0>; + }; + }; + + pinctrl@13470000 { + max98505_i2c: max98505-i2c { + samsung,pins = "gpd2-0", "gpd2-1"; + samsung,pin-pud = <0>; + status = "okay"; + }; + }; + + pinctrl@14870000 { + codec_reset: codec-reset { + samsung,pins ="gpf4-0"; + samsung,pin-function = <1>; + samsung,pin-pud = <1>; + samsung,pin-con-pdn =<3>; + samsung,pin-pud-pdn = <1>; + samsung,pin-val = <0>; + }; + }; + + pinctrl@15690000 { + sub_pmic_irq: sub-pmic-irq { + samsung,pins ="gpr2-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + hsi2c@13640000 { + status = "okay"; + max98505@31 { + compatible = "maxim,max98505"; + reg = <0x31>; + pinctrl-names = "default"; + pinctrl-0 = <&max98505_i2c &max98505_ctrl>; + gpios = <&gpd2 1 0 + &gpd2 0 0 + >; + i2c-gpio,delay-us = <2>; + maxim,platform_type = <0>; + maxim,spk_vol = <0x14>; + maxim,sysclk = <12288000>; + }; + }; + + hsi2c@13650000{ + max77843@66 { + status = "okay"; + }; + }; + + hsi2c@13660000 { + s2mps15_pmic@66 { + regulators { + buck1_reg: BUCK1 { + regulator-name = "vdd_mif"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "vdd_atlas"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_apollo"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_int"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck5_reg: BUCK5 { + regulator-name = "vdd_disp_cam0"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck6_reg: BUCK6 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck8_reg: BUCK8 { + regulator-name = "vdd_lldo"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + buck9_reg: BUCK9 { + regulator-name = "vdd_mldo"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2100000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1620000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + regulator-boot-on; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo15_reg: LDO15 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + ldo16_reg: LDO16 { + regulator-name = "VCC_1.8V_CODEC_PMIC"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo17_reg: LDO17 { + regulator-name = "VCC_MOTOR_3.0"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo18_reg: LDO18 { + regulator-name = "HRM_VDD_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1850000>; + }; + + ldo19_reg: LDO19 { + regulator-name = "MST_LEVEL_3.0V"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + ldo20_reg: LDO20 { + regulator-name = "VDD20_1P8_AP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo21_reg: LDO21 { + regulator-name = "key_led"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo22_reg: LDO22 { + regulator-name = "VDD22_1P2_AP"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + ldo23_reg: LDO23 { + regulator-name = "VDD_1.8V_ESE"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + ldo24_reg: LDO24 { + regulator-name = "V_HRM_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3350000>; + }; + + ldo25_reg: LDO25 { + regulator-name = "PROX_LED_3.3V"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + ldo26_reg: LDO26 { + regulator-name = "VDD_1.2V_CODEC"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; + }; + }; + + hsi2c@13670000 { + max77838@60 { + status = "disabled"; + }; + }; + + hsi2c@14E00000 { + sec-nfc@27 { + sec-nfc,i2c_1p8 = "VDD20_1P8_AP"; + }; + }; + + hsi2c@14E60000 { + status = "okay"; + /delete-node/ s2mpb01_pmic@59; + + s2mpb02@59 { + compatible = "samsung,s2mpb02"; + reg = <0x59>; + + s2mpb02,irq-gpio = <&gpr2 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&sub_pmic_irq>; + + regulators { + _buck1_reg: s2mpb02-buck1 { + regulator-name = "VDD_1P6_DDR"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <1600000>; + }; + + _buck2_reg: s2mpb02-buck2 { + regulator-name = "VDDD_CORE_0.8V_COMP"; + regulator-min-microvolt = <650000>; + regulator-max-microvolt = <850000>; + }; + + _ldo1_reg: s2mpb02-ldo1 { + regulator-name = "VDDD_NORET_0.9V_COMP"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + }; + + _ldo2_reg: s2mpb02-ldo2 { + regulator-name = "VDDD_CORE_1.0V_COMP"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo3_reg: s2mpb02-ldo3 { + regulator-name = "VDDD_1.2V_CAM"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1050000>; + }; + + _ldo4_reg: s2mpb02-ldo4 { + regulator-name = "VDDD_RET_1.0V_COMP"; + regulator-min-microvolt = <700000>; + regulator-max-microvolt = <1000000>; + }; + + _ldo5_reg: s2mpb02-ldo5 { + regulator-name = "VDDD_1.2V_VT"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + _ldo6_reg: s2mpb02-ldo6 { + regulator-name = "VDDIO_1.8V_VT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo7_reg: s2mpb02-ldo7 { + regulator-name = "VDDIO_1.8V_CAM"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo8_reg: s2mpb02-ldo8 { + regulator-name = "VDDIO_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo9_reg: s2mpb02-ldo9 { + regulator-name = "VDDA_1.8V_COMP"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo10_reg: s2mpb02-ldo10 { + regulator-name = "VCC_DISPLAY_1.8V"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + _ldo11_reg: s2mpb02-ldo11 { + regulator-name = "VDDA_2.9V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo12_reg: s2mpb02-ldo12 { + regulator-name = "VDDAF_2.8V_CAM"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo13_reg: s2mpb02-ldo13 { + regulator-name = "VDDA_2.9V_VT"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + _ldo14_reg: s2mpb02-ldo14 { + regulator-name = "OIS_VM_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo15_reg: s2mpb02-ldo15 { + regulator-name = "OIS_VDD_2.8V"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + _ldo16_reg: s2mpb02-ldo16 { + regulator-name = "VCC_3.0V_LCD"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + }; + + _ldo17_reg: s2mpb02-ldo17 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + }; + + torch { + status = "okay"; + leds1 { + ledname = "leds-sec1"; + /* S2MPB02_FLASH_LED_1 */ + id = <0>; + /* S2MPB02_FLASH_CURRENT */ + brightness = <0xF>; + /* S2MPB02_FLASH_TIMEOUT */ + timeout = <0x3>; + }; + + leds2 { + ledname = "torch-sec1"; + /* S2MPB02_TORCH_LED_1 */ + id = <1>; + /* S2MPB02_TORCH_CURRENT */ + brightness = <0x9>; + /* S2MPB02_TORCH_TIMEOUT */ + timeout = <0xF>; + }; + }; + }; + }; + + sec_thermistor@0 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + sec_thermistor@1 { + status = "okay"; + + adc_array = <202 212 223 234 244 255 265 276 287 297 + 307 317 327 337 348 359 369 380 390 400 + 410 425 440 455 470 486 501 517 532 547 + 562 575 588 600 613 625 645 665 686 707 + 728 749 770 790 811 832 855 878 902 925 + 948 964 980 996 1012 1028 1044 1060 1076 1092 + 1108 1134 1160 1186 1212 1237 1261 1286 1310 1335 + 1359 1378 1396 1414 1433 1452 1471 1489 1507 1525 + 1543 1560 1576 1593 1610 1626 1642 1658 1674 1690 + 1706 1717 1729 1742 1755 1768 1782 1796 1810 1824 + 1838 1847 1855 1864 1873 1882 1888 1894 1900 1906 + 1912>; + }; + + hsi2c@14E10000 { + touchscreen@20 { + stm,num_touchkey = <2>; + stm,regulator_tk_led = "key_led"; + }; + }; + + dwmmc0@15740000 { + status = "disabled"; + }; + + dwmmc2@15560000 { + vdd_vmmc-supply = <&ldo25_reg>; + vqmmc-supply = <&ldo2_reg>; + }; + + dsim_0: dsim@0x13900000 { + gpios = <&gpr3 0 0x1>; + regulator_30V = "VCC_3.0V_LCD"; + regulator_18V = "VCC_DISPLAY_1.8V"; + regulator_16V = "VDD_1P6_DDR"; + lcd_info = <&s6e3hf2_wqhd>; + }; + + s6e3hf2_wqhd: s6e3hf2_wqhd_panel { + mode = <2>; + resolution = <1440 2560>; + size = <63 112>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <15 1 1>; + timing,dsi-hs-clk = <1026>; + timing,dsi-escape-clk = <16>; + mic = <1>; + mic_ver = <2>; + type_of_ddi = <0>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7420_evt0.dtsi b/arch/arm64/boot/dts/exynos7420_evt0.dtsi new file mode 100644 index 000000000000..ea570a341cc4 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7420_evt0.dtsi @@ -0,0 +1,2788 @@ +/* + * SAMSUNG EXYNOS7420 SoC device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * SAMSUNG EXYNOS7420 SoC device nodes are listed in this file. + * EXYNOS7420 based board files can include this file and provide + * values for board specfic bindings. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +/include/ "exynos7420-pinctrl.dtsi" +/ { + compatible = "samsung,armv8", "samsung,exynos7420"; + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <1>; + + aliases { + pinctrl0 = &pinctrl_0; + pinctrl1 = &pinctrl_1; + pinctrl2 = &pinctrl_2; + pinctrl3 = &pinctrl_3; + pinctrl4 = &pinctrl_4; + pinctrl5 = &pinctrl_5; + pinctrl6 = &pinctrl_6; + pinctrl7 = &pinctrl_7; + pinctrl8 = &pinctrl_8; + pinctrl9 = &pinctrl_9; + mshc0 = &dwmmc_0; + mshc1 = &dwmmc_1; + mshc2 = &dwmmc_2; + mdev0 = &mdev_0; + vpp0 = &vg_0; + vpp1 = &vg_1; + vpp2 = &vgr_0; + vpp3 = &vgr_1; + decon0 = &decon_0; + decon1 = &decon_1; + dsim0 = &dsim_0; + mfc0 = &mfc_0; + hevc = &hevc; + fimg2d0 = &fimg2d_0; + scaler0 = &scaler_0; + scaler1 = &scaler_1; + jpeg0 = &jpeg_0; + }; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + idle-states { + entry-method = "arm,psci"; + + CPU_SLEEP_0: C1 { + compatible = "arm,idle-state"; + desc = "ARM clock gating(WFI)"; + entry-method-param = <0x0000000>; + exit-latency-us = <10>; + min-residency-us = <500>; + }; + + CPU_SLEEP_1: C2 { + compatible = "arm,idle-state"; + desc = "ARM power down"; + entry-method-param = <0x0000000>; + exit-latency-us = <150>; + min-residency-us = <2100>; + }; + + CPU_SLEEP_2: CPD { + compatible = "arm,idle-state"; + desc = "Cluster power down"; + entry-method-param = <0x1000000>; + exit-latency-us = <300>; + min-residency-us = <3400>; + }; + + CPU_SLEEP_3: LPM { + compatible = "arm,idle-state"; + desc = "System power down"; + entry-method-param = <0x1000000>; + exit-latency-us = <300>; + min-residency-us = <5000>; + }; + }; + + cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x100>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + cpu@101 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x101>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + cpu@102 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x102>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + cpu@103 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x103>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + }; + + coresight { + compatible = "exynos,coresight"; + reg = <0x16000000 0xc00000>; + #address-cells = <1>; + #size-cells = <0>; + css_pc@0 { + device_type = "cs"; + offset = <0x810000>; + }; + css_pc@1 { + device_type = "cs"; + offset = <0x910000>; + }; + css_pc@2 { + device_type = "cs"; + offset = <0xa10000>; + }; + css_pc@3 { + device_type = "cs"; + offset = <0xb10000>; + }; + css_pc@4 { + device_type = "cs"; + offset = <0x410000>; + }; + css_pc@5 { + device_type = "cs"; + offset = <0x510000>; + }; + css_pc@6 { + device_type = "cs"; + offset = <0x610000>; + }; + css_pc@7 { + device_type = "cs"; + offset = <0x710000>; + }; + }; + + psci { + compatible = "arm,psci"; + method = "smc"; + cpu_suspend = <0xC4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xC4000003>; + }; + + cpuidle { + compatible = "samsung,cpuidle"; + lpm-reg = <0x105C4084>, <0x105C40E4>, <0x105C4104>, <0x105C4124>, + <0x105C4144>, <0x105C4184>, <0x105C41A4>, <0x105C41C4>, + <0x105C41E4>; + lpm-val = <0xF>, <0xF>, <0xF>, <0xF>, <0xF>, <0xF>, <0xF>, <0xF>, <0xF>; + dstop-reg = <0x105C4004>; + dstop-val = <0xF>; + }; + + sec_pwm: pwm@136c0000 { + compatible = "samsung,s3c6400-pwm"; + reg = <0x136c0000 0x1000>; + #pwm-cells = <3>; + clocks = <&clock 141>, + <&clock_pwm 1>, <&clock_pwm 2>, + <&clock_pwm 5>, <&clock_pwm 6>, + <&clock_pwm 7>, <&clock_pwm 8>, + <&clock_pwm 10>, <&clock_pwm 11>, + <&clock_pwm 12>, <&clock_pwm 13>; + clock-names = "gate_timers", + "pwm-scaler0", "pwm-scaler1", + "pwm-tdiv0", "pwm-tdiv1", + "pwm-tdiv2", "pwm-tdiv3", + "pwm-tin0", "pwm-tin1", + "pwm-tin2", "pwm-tin3"; + status = "ok"; + }; + + clock_pwm: pwm-clock-controller@136c0000 { + compatible = "samsung,exynos-pwm-clock"; + reg = <0x136c0000 0x50>; + #clock-cells = <1>; + }; + + rtc@10590000 { + compatible = "samsung,s3c6410-rtc"; + reg = <0x10590000 0x100>; + interrupts = <0 355 0>, <0 356 0>; + clocks = <&clock 185>; + clock-names = "gate_rtc"; + }; + + exynos_adc: adc@13620000 { + compatible = "samsung,exynos-adc-v2"; + reg = <0x13620000 0x100>; + interrupts = <0 448 0>; + #io-channel-cells = <1>; + io-channel-ranges; + clocks = <&clock 142>; + clock-names = "gate_adcif"; + }; + + gic: interrupt-controller@11001000 { + compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; + #interrupt-cells = <3>; + #address-cells = <0>; + interrupt-controller; + reg = <0x11001000 0x1000>, + <0x11002000 0x1000>, + <0x11004000 0x2000>, + <0x11006000 0x2000>; + interrupts = <1 9 0xf04>; + }; + + clock: clock-controller@0x10570000 { + compatible = "samsung,exynos7420-clock"; + reg = <0x10570000 0x1000>; + #clock-cells = <1>; + }; + + mct@101C0000 { + compatible = "samsung,exynos4210-mct"; + reg = <0x101C0000 0x800>; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-parent = <&mct_map>; + interrupts = <0>, <1>, <2>, <3>, + <4>, <5>, <6>, <7>, + <8>, <9>, <10>, <11>; + clocks = <&clock 1>, <&clock 109>; + clock-names = "fin_pll", "mct"; + /* use-clockevent-only; */ + + mct_map: mct-map { + #interrupt-cells = <1>; + #address-cells = <0>; + #size-cells = <0>; + interrupt-map = <0 &gic 0 112 0>, + <1 &gic 0 113 0>, + <2 &gic 0 114 0>, + <3 &gic 0 115 0>, + <4 &gic 0 116 0>, + <5 &gic 0 117 0>, + <6 &gic 0 118 0>, + <7 &gic 0 119 0>, + <8 &gic 0 120 0>, + <9 &gic 0 121 0>, + <10 &gic 0 122 0>, + <11 &gic 0 123 0>; + }; + }; + + serial@13630000 { + compatible = "samsung,exynos5430-uart"; + samsung,separate-uart-clk; + reg = <0x13630000 0x100>; + interrupts = <0 440 0>; + clocks = <&clock 103>, <&clock 104>, <&clock 100>; + clock-names = "gate_pclk0", "gate_uart0", "sclk_uart0"; + }; + + serial@14C20000 { + compatible = "samsung,exynos5430-uart"; + samsung,separate-uart-clk; + reg = <0x14C20000 0x100>; + interrupts = <0 456 0>; + clocks = <&clock 105>, <&clock 106>, <&clock 101>; + clock-names = "gate_pclk1", "gate_uart1", "sclk_uart1"; + }; + + serial@14C30000 { + compatible = "samsung,exynos5430-uart"; + samsung,separate-uart-clk; + reg = <0x14C30000 0x100>; + interrupts = <0 457 0>; + clocks = <&clock 107>, <&clock 108>, <&clock 102>; + clock-names = "gate_pclk2", "gate_uart2", "sclk_uart2"; + }; + + serial@14C40000 { + compatible = "samsung,exynos5430-uart"; + samsung,separate-uart-clk; + reg = <0x14C40000 0x100>; + interrupts = <0 458 0>; + clocks = <&clock 111>, <&clock 112>, <&clock 110>; + clock-names = "gate_pclk3", "gate_uart3", "sclk_uart3"; + }; + + watchdog@10020000 { + compatible = "samsung,s3c2410-wdt"; + reg = <0x10020000 0x100>; + interrupts = <0 101 0>; + clocks = <&clock 140>, <&clock 1400>; + clock-names = "rate_watchdog", "gate_watchdog"; + timeout-sec = <30>; + pmu_wdt_reset_type = <1>; + }; + + spi_0: spi@14d20000 { + compatible = "samsung,exynos543x-spi"; + reg = <0x14d20000 0x100>; + interrupts = <0 464 0>; + dma-mode; + dmas = <&pdma0 6 + &pdma0 7>; + dma-names = "tx", "rx"; + swap-mode; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 132>, <&clock 117>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names = "default"; + pinctrl-0 = <&spi0_bus>; + /* status = "disabled"; */ + }; + + spi_1: spi@14d30000 { + compatible = "samsung,exynos543x-spi"; + reg = <0x14d30000 0x100>; + interrupts = <0 465 0>; + dma-mode; + dmas = <&pdma0 8 + &pdma0 9>; + dma-names = "tx", "rx"; + swap-mode; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 133>, <&clock 113>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names = "default"; + pinctrl-0 = <&spi1_bus>; + /* status = "disabled"; */ + }; + + spi_2: spi@14d40000 { + compatible = "samsung,exynos543x-spi"; + reg = <0x14d40000 0x100>; + interrupts = <0 466 0>; + dma-mode; + dmas = <&pdma0 10 + &pdma0 11>; + dma-names = "tx", "rx"; + swap-mode; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 134>, <&clock 114>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names = "default"; + pinctrl-0 = <&spi2_bus>; + status = "disabled"; + }; + + spi_3: spi@14d50000 { + compatible = "samsung,exynos543x-spi"; + reg = <0x14d50000 0x100>; + interrupts = <0 467 0>; + dma-mode; + dmas = <&pdma0 12 + &pdma0 13>; + dma-names = "tx", "rx"; + swap-mode; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 135>, <&clock 115>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names = "default"; + pinctrl-0 = <&spi3_bus>; + status = "disabled"; + }; + + spi_4: spi@14d00000 { + compatible = "samsung,exynos543x-spi"; + reg = <0x14d00000 0x100>; + interrupts = <0 468 0>; + swap-mode; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 136>, <&clock 116>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names = "default"; + pinctrl-0 = <&spi4_bus>; + status = "disabled"; + }; + + hsi2c_0: hsi2c@13640000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x13640000 0x1000>; + interrupts = <0 441 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c0_bus>; + clocks = <&clock 120>, <&clock 120>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_1: hsi2c@13650000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x13650000 0x1000>; + interrupts = <0 442 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c1_bus>; + clocks = <&clock 121>, <&clock 121>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_2: hsi2c@14E60000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x14E60000 0x1000>; + interrupts = <0 459 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c2_bus>; + clocks = <&clock 122>, <&clock 122>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_3: hsi2c@14E70000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x14E70000 0x1000>; + interrupts = <0 460 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c3_bus>; + clocks = <&clock 123>, <&clock 123>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_4: hsi2c@13660000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x13660000 0x1000>; + interrupts = <0 443 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c4_bus>; + clocks = <&clock 124>, <&clock 124>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_5: hsi2c@13670000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x13670000 0x1000>; + interrupts = <0 444 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c5_bus>; + clocks = <&clock 125>, <&clock 125>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_6: hsi2c@14E00000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x14E00000 0x1000>; + interrupts = <0 461 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c6_bus>; + clocks = <&clock 126>, <&clock 126>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_7: hsi2c@14E10000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x14E10000 0x1000>; + interrupts = <0 462 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c7_bus>; + clocks = <&clock 127>, <&clock 127>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_8: hsi2c@14E20000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x14E20000 0x1000>; + interrupts = <0 463 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c8_bus>; + clocks = <&clock 128>, <&clock 128>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_9: hsi2c@13680000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x13680000 0x1000>; + interrupts = <0 445 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c9_bus>; + clocks = <&clock 129>, <&clock 129>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_10: hsi2c@13690000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x13690000 0x1000>; + interrupts = <0 446 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c10_bus>; + clocks = <&clock 130>, <&clock 130>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_11: hsi2c@136A0000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x136A0000 0x1000>; + interrupts = <0 447 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c11_bus>; + clocks = <&clock 131>, <&clock 131>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + pinctrl_0: pinctrl@10580000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x10580000 0x1000>; + interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, + <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, + <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, + <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; + wakeup-interrupt-controller { + compatible = "samsung,exynos4210-wakeup-eint"; + interrupt-parent = <&gic>; + interrupts = <0 16 0>; + samsung,eint-flt-conf; + }; + }; + + pinctrl_1: pinctrl@114B0000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x114B0000 0x1000>; + interrupts = <0 92 0>; + }; + + pinctrl_2: pinctrl@13470000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x13470000 0x1000>; + interrupts = <0 383 0>; + }; + + pinctrl_3: pinctrl@14870000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x14870000 0x1000>; + interrupts = <0 384 0>; + }; + + pinctrl_4: pinctrl@14CD0000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x14CD0000 0x1000>; + interrupts = <0 473 0>; + }; + + pinctrl_5: pinctrl@14CE0000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x14CE0000 0x1000>; + interrupts = <0 474 0>; + }; + + pinctrl_6: pinctrl@14C90000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x14C90000 0x1000>; + interrupts = <0 475 0>; + }; + + pinctrl_7: pinctrl@14CA0000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x14CA0000 0x1000>; + interrupts = <0 476 0>; + }; + + pinctrl_8: pinctrl@10E60000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x10E60000 0x1000>; + interrupts = <0 221 0>; + }; + + pinctrl_9: pinctrl@15690000 { + compatible = "samsung,exynos7420-pinctrl"; + reg = <0x15690000 0x1000>; + interrupts = <0 203 0>; + }; + + dwmmc_0: dwmmc0@15740000 { + compatible = "samsung,exynos7420-dw-mshc"; + reg = <0x15740000 0x2000>; + interrupts = <0 201 0>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 180>, <&clock 182>, <&clock 181>; + clock-names = "biu", "dout_mmc_a", "gate_ciu"; + status = "disabled"; + }; + + dwmmc_1: dwmmc1@15750000 { + compatible = "samsung,exynos7420-dw-mshc"; + reg = <0x15750000 0x2000>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 186>,<&clock 188>, <&clock 187>; + clock-names = "biu", "dout_mmc_a", "gate_ciu"; + status = "disabled"; + }; + + dwmmc_2: dwmmc2@15560000 { + compatible = "samsung,exynos7420-dw-mshc"; + reg = <0x15560000 0x2000>; + interrupts = <0 216 0>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 189>, <&clock 191>, <&clock 190>; + clock-names = "biu", "dout_mmc_a", "gate_ciu"; + status = "disabled"; + }; + + iommu-domain_fimc-is { + compatible = "samsung,exynos-iommu-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + domain-clients = <&fimc_is>, + <&fimc_is_sensor0>, + <&fimc_is_sensor1>; + + sysmmu_cam0: sysmmu@0x140E0000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x140E0000 0x1000>; + interrupts = <0 129 0>; + samsung,power-domain = <&pd_cam0>; + clocks = <&clock CLK_ACLK_CAM0_SYSMMU>, + <&clock CLK_PCLK_CAM0_SYSMMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&fimc_is AR(0) AW(0) AW(1) AW(2) AW(3) AW(4)>; + }; + pb@1 { + master_axi_id_list = <&fimc_is AR(0) AW(0) AW(1) AW(2) NAID NAID>; + }; + pb@2 { + master_axi_id_list = <&fimc_is_sensor0 AW(0) AW(1) AW(2)>, + <&fimc_is_sensor1 AW(0) AW(1) AW(2)>; + }; + }; + }; + + sysmmu_fimc_scaler: sysmmu@0x141B0000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x141B0000 0x1000>; + interrupts = <0 156 0>; + samsung,power-domain = <&pd_isp0>; + clocks = <&clock CLK_ACLK_FIMC_SC_SYSMMU>, + <&clock CLK_PCLK_FIMC_SC_SYSMMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&fimc_is AW(0) AW(1) AW(2) NAID NAID NAID>; + }; + }; + }; + + sysmmu_fimc_vra: sysmmu@0x141C0000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x141C0000 0x1000>; + interrupts = <0 150 0>; + samsung,power-domain = <&pd_isp0>; + clocks = <&clock CLK_ACLK_VRA_SYSMMU>, + <&clock CLK_PCLK_VRA_SYSMMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&fimc_is AR(0) AR(1) AW(0) AW(1) NAID NAID>; + }; + }; + }; + + sysmmu_fimc_isp1: sysmmu@0x141E0000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x141E0000 0x1000>; + samsung,power-domain = <&pd_isp0>; + interrupts = <0 148 0>; + pb-info { + pb@0 { + master_axi_id_list = <&fimc_is AR(0) AW(0) AW(1) NAID NAID NAID>; + }; + }; + }; + + sysmmu_fimc_isp0: sysmmu@0x14270000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x14270000 0x1000>; + samsung,power-domain = <&pd_isp0>; + interrupts = <0 301 0>; + clocks = <&clock CLK_ACLK_ISP0_SYSMMU>, + <&clock CLK_PCLK_ISP0_SYSMMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&fimc_is AR(0) AW(0) AW(1) AW(2) NAID NAID>; + }; + }; + }; + + sysmmu_fimc_tpu: sysmmu@0x14280000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x14280000 0x1000>; + samsung,power-domain = <&pd_isp0>; + interrupts = <0 303 0>; + clocks = <&clock CLK_ACLK_TPU_SYSMMU>, + <&clock CLK_PCLK_TPU_SYSMMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&fimc_is AR(0) AR(1) AR(2) NAID NAID NAID>; + }; + pb@1 { + master_axi_id_list = <&fimc_is AW(0) AW(1) AW(2) NAID NAID NAID>; + }; + }; + }; + + sysmmu_ispcpu: sysmmu@0x141D0000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x141D0000 0x1000>; + samsung,power-domain = <&pd_isp0>; + interrupts = <0 152 0>; + clocks = <&clock CLK_ACLK_ISPCPU_SYSMMU>, + <&clock CLK_PCLK_ISPCPU_SYSMMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&fimc_is NAID NAID NAID NAID NAID NAID>; + }; + }; + }; + }; + + iommu-domain_disp0 { + compatible = "samsung,exynos-iommu-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + domain-clients = <&decon_0>, <&decon_1>, + <&vg_0>, <&vgr_0>, <&vg_1>, <&vgr_1>; + + sysmmu_disp_ro: sysmmu@0x13A00000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x13A00000 0x1000>; + interrupts = <0 176 0>; + qos = <15>; + clocks = <&clock CLK_ACLK_DISP_RO_SYSMMU>, + <&clock CLK_PCLK_DISP_RO_SYSMMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&decon_0 AR(0) AR(1) NAID NAID>, + <&decon_1 AR(0) AR(1) NAID NAID>; + }; + }; + }; + + sysmmu_disp_rw: sysmmu@0x13A10000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x13A10000 0x1000>; + interrupts = <0 179 0>; + qos = <15>; + clocks = <&clock CLK_ACLK_DISP_RW_SYSMMU>, + <&clock CLK_PCLK_DISP_RW_SYSMMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&decon_0 AR(0) AR(1) AW(0) AW(1)>, + <&decon_1 AR(0) AR(1) AW(0) AW(1)>; + }; + }; + }; + + sysmmu_vpp_0: sysmmu@0x13E20000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x13E20000 0x1000>; + interrupts = <0 256 0>; + qos = <15>; + pb-info { + pb@0 { + master_axi_id_list = <&vg_0 AR(0) AR(1) AR(2) AR(3) AR(4) AR(5)>, + <&vgr_0 AR(0) AR(1) AR(2) AR(3) AR(4) AR(5)>; + }; + }; + }; + + sysmmu_vpp_1: sysmmu@0x13E30000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x13E30000 0x1000>; + interrupts = <0 259 0>; + qos = <15>; + pb-info { + pb@0 { + master_axi_id_list = <&vg_1 AR(0) AR(1) AR(2) AR(3) AR(4) AR(5)>, + <&vgr_1 AR(0) AR(1) AR(2) AR(3) AR(4) AR(5)>; + }; + }; + }; + }; + + iommu-domain_mfc { + compatible = "samsung,exynos-iommu-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + domain-clients = <&mfc_0>, <&hevc>; + + sysmmu_mfc0_0: sysmmu@0x15200000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x15200000 0x1000>; + interrupts = <0 312 0>; + pb-info { + pb@0 { + master_axi_id_list = <&mfc_0 &hevc>; + }; + }; + }; + + sysmmu_mfc0_1: sysmmu@0x15210000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x15210000 0x1000>; + interrupts = <0 315 0>; + pb-info { + pb@0 { + master_axi_id_list = <&mfc_0 &hevc>; + }; + }; + }; + }; + + iommu-domain_mscl { + compatible = "samsung,exynos-iommu-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + domain-clients = <&scaler_0>, <&scaler_1>, <&jpeg_0>; + + scaler_0: scaler@0x150000000 { + compatible = "samsung,exynos5-scaler"; + #pb-id-cells = <0>; + reg = <0x15000000 0x1300>; + interrupts = <0 426 0>; + samsung,power-domain = <&spd_mscl0>; + clocks = <&clock CLK_ACLK_M2MSCALER0>; + clock-names = "gate"; + }; + + scaler_1: scaler@0x150100000 { + compatible = "samsung,exynos5-scaler"; + #pb-id-cells = <0>; + reg = <0x15010000 0x1300>; + interrupts = <0 427 0>; + samsung,power-domain = <&spd_mscl1>; + clocks = <&clock CLK_ACLK_M2MSCALER1>; + clock-names = "gate"; + }; + + jpeg_0: jpeg0@15020000 { + compatible = "samsung,exynos-jpeg"; + #pb-id-cells = <0>; + reg = <0x15020000 0x10000>; + interrupts = <0 434 0>; + ip_ver = <2>; + clocks = <&clock CLK_ACLK_JPEG>; + clock-names = "gate"; + samsung,power-domain = <&spd_jpeg>; + }; + + sysmmu_mscl0: sysmmu@0x15040000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x15040000 0x1000>; + interrupts = <0 428 0>; + pb-info { + pb@0 { + master_axi_id_list = <&scaler_0>; + dir = "r"; + }; + pb@1 { + master_axi_id_list = <&scaler_0>; + dir = "w"; + }; + pb@2 { + master_axi_id_list = <&jpeg_0>; + }; + }; + }; + + sysmmu_mscl1: sysmmu@0x15140000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x15140000 0x1000>; + interrupts = <0 431 0>; + pb-info { + pb@0 { + master_axi_id_list = <&scaler_1>; + dir = "r"; + }; + pb@1 { + master_axi_id_list = <&scaler_1>; + dir = "w"; + }; + }; + }; + }; + + amba { + #address-cells = <1>; + #size-cells = <1>; + compatible = "arm,amba-bus"; + interrupt-parent = <&gic>; + ranges; + + pdma1: pdma1@10EB0000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x10EB0000 0x1000>; + interrupts = <0 226 0>; + clocks = <&clock 184>; + clock-names = "apb_pclk"; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <32>; + }; + + pdma0: pdma0@10E10000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x10E10000 0x1000>; + interrupts = <0 225 0>; + clocks = <&clock 183>; + clock-names = "apb_pclk"; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <32>; + }; + + adma: adma@11420000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x11420000 0x1000>; + interrupts = <0 97 0>; + clocks = <&clock 400>; + clock-names = "apb_pclk"; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <16>; + #dma-mcode-addr = <0x03046000>; + }; + }; + + mdev_0: mdev_output { + compatible = "samsung,exynos5-mdev"; + }; + + sysreg_disp: sysreg_disp@0x10050000 { + compatible = "samsung,exynos5-sysreg_disp"; + reg = <0x10050000 0x2000>; + }; + + otp_ctrl: otp_ctrl@0x101E0010 { + compatible = "samsung,exynos5-otp_ctrl"; + reg = <0x101E0010 0x4>; + }; + + dsim_0: dsim@0x13900000 { + compatible = "samsung,exynos5-mipi-dsi"; + reg = <0x13900000 0x1000>; + samsung,power-domain = <&spd_mipi_dsi0>; + interrupts = <0 196 0>; + + clocks = <&clock 221>, <&clock 208>, <&clock 209>, + <&clock 234>, + <&clock 233>; + + clock-names = "pclk_dsim0", "mipi0_rx", "mipi0_bit", + /* rgb data from decon-int to dsim */ + "rgb_vclk0", + /* pclk_ahb2apb_disp0p -> pclk_cp_disp */ + "pclk_disp"; + + pinctrl-names = "turnon_tes", "turnoff_tes"; + pinctrl-0 = <&disp_teson>; + pinctrl-1 = <&disp_tesoff>; + + /* number of using data lane */ + data_lane_cnt = <4>; + }; + + vg_0: vpp@0x13E02000{ + compatible = "samsung,exynos7-vpp"; + #pb-id-cells = <6>; + reg = <0x13E02000 0x1000>; + interrupts = <0 264 0>; + clock-names = "gate", "aclk_lh_vpp0", "aclk_vpp0", + "d_pclk_vpp", "pclk_vpp", "pclk_cp_vpp0"; + clocks = <&clock 500>, <&clock 504>, <&clock 507>, + <&clock 508>, <&clock 509>, <&clock 510>; + samsung,power-domain = <&spd_vg0>; + }; + + vg_1: vpp@0x13E03000{ + compatible = "samsung,exynos7-vpp"; + #pb-id-cells = <6>; + reg = <0x13E03000 0x1000>; + interrupts = <0 265 0>; + clock-names = "gate", "aclk_lh_vpp1", "aclk_vpp1", + "d_pclk_vpp", "pclk_vpp", "pclk_cp_vpp1"; + clocks = <&clock 501>, <&clock 505>, <&clock 506>, + <&clock 508>, <&clock 509>, <&clock 511>; + samsung,power-domain = <&spd_vg1>; + }; + + vgr_0: vpp@0x13E04000{ + compatible = "samsung,exynos7-vpp"; + #pb-id-cells = <6>; + reg = <0x13E04000 0x1000>; + interrupts = <0 266 0>; + clock-names = "gate", "aclk_lh_vpp0", "aclk_vpp0", + "d_pclk_vpp", "pclk_vpp", "pclk_cp_vpp0"; + clocks = <&clock 502>, <&clock 504>, <&clock 507>, + <&clock 508>, <&clock 509>, <&clock 510>; + samsung,power-domain = <&spd_vgr0>; + }; + + vgr_1: vpp@0x13E05000{ + compatible = "samsung,exynos7-vpp"; + #pb-id-cells = <6>; + reg = <0x13E05000 0x1000>; + interrupts = <0 267 0>; + clock-names = "gate", "aclk_lh_vpp1", "aclk_vpp1", + "d_pclk_vpp", "pclk_vpp", "pclk_cp_vpp1"; + clocks = <&clock 503>, <&clock 505>, <&clock 506>, + <&clock 508>, <&clock 509>, <&clock 511>; + samsung,power-domain = <&spd_vgr1>; + }; + + decon_0: decon_fb { + compatible = "samsung,exynos5-decon_driver"; + #pb-id-cells = <4>; + + reg = <0x13930000 0x3000>, + <0x1393D000 0x400>; + + samsung,power-domain = <&spd_decon0>; + + /* interrupt num */ + interrupts = <0 190 0>, <0 188 0>, <0 189 0>; + + /* clock define for decon */ + clocks =<&clock 11>, + <&clock 200>, <&clock 220>, <&clock 201>, + <&clock 202>, <&clock 203>, <&clock 204>, + <&clock 205>, <&clock 206>, <&clock 207>, + <&clock 219>, + <&clock 230>, + <&clock 231>, + <&clock 232>, + <&clock 233>; + + clock-names = /* display dedicated PLL for core and pixel clock */ + "disp_pll", + /* pclk: bus clock, aclk: DMA operation clock and SFR access */ + "d_pclk_disp", "pclk_decon0", "aclk_decon0", + /* eclk: decon core clock */ + "m_decon0_eclk", "d_decon0_eclk", "decon0_eclk", + /* vclk: pixel clock */ + "m_decon0_vclk", "d_decon0_vclk", "decon0_vclk", + /* sclk_dsd: for OTF between vpp and decon-int */ + "sclk_dsd", + /* DISP0 channel: IDMA_G1, IDMA_G2 */ + "aclk_lh_disp0", + /* DISP1 channel : IDMA_G0, IDMA_G3, ODMA_WB0, ODMA_WB1 */ + "aclk_lh_disp1", + /* aclk_lh_async_si_top_disp -> aclk_xiu_disp_rw -> aclk_cp_disp */ + "aclk_disp", + /* pclk_ahb2apb_disp0p -> pclk_cp_disp */ + "pclk_disp"; + + /* GPIO & pin control */ + gpios = <&gpf3 3 0xf>; + + ip_ver = <2>; + max_win = <7>; + n_sink_pad = <7>; + n_src_pad = <1>; + default_win = <0>; + psr_mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + trig_mode = <0>; /* 0: hw trigger, 1: sw trigger */ + dsi_mode = <0>; /* 0: single dsi, 1: dual dsi */ + + #address-cells = <1>; + #size-cells = <1>; + ranges; + + cam-stat { + reg = <0x105C4044 0x4>, <0x105C4064 0x4>; + }; + }; + + decon_1: decon_ext { + compatible = "samsung,exynos5-decon_driver"; + #pb-id-cells = <4>; + + reg = <0x13950000 0x10000>; + + samsung,power-domain = <&spd_decon1>; + + /* interrupt num */ + interrupts = <0 195 0>, <0 193 0>, <0 194 0>, <0 192 0>; + + clocks = <&clock 210>, <&clock 211>, <&clock 212>, + <&clock 213>, <&clock 214>, <&clock 215>, + <&clock 216>, <&clock 219>, <&clock 231>, + <&clock 232>, <&clock 233>; + clock-names = "aclk_decon1", "pclk_decon1", "um_decon1_eclk", + "m_decon1_eclk", "d_decon1_eclk", "decon1_eclk", + "decon1_vclk", "sclk_dsd", "aclk_lh_disp1", + "aclk_disp", "pclk_disp"; + + ip_ver = <7>; + max_win = <6>; + n_sink_pad = <6>; + n_src_pad = <1>; + default_win = <0>; + psr_mode = <2>; /* 0: video mode, 1: DP command mode, 2: command mode */ + trig_mode = <0>; /* 0: hw trigger, 1: sw trigger */ + }; + + /* hdmi driver */ + hdmi@13970000 { + compatible = "samsung,exynos5-hdmi_driver"; + reg = <0x13970000 0x80000>, /* hdmi */ + <0x13AF0000 0x8000>; /* hdmi phy */ + samsung,power-domain = <&spd_hdmi>; + + interrupts = <0 198 0>; + + pinctrl-names = "hdmi_hdmi_hpd", "hdmi_ext_hpd"; + pinctrl-0 = <&hdmi_hdmi_hpd>; + pinctrl-1 = <&hdmi_ext_hpd>; + + clocks = <&clock 217>, <&clock 218>, <&clock 223>, <&clock 224>; + clock-names = "hdmi_pixel", "hdmi_tmds", "pclk_hdmi", "pclk_hdmiphy"; + + ip_ver = <7>; + + #address-cells = <1>; + #size-cells = <1>; + ranges; + + hdmiphy-sys { + reg = <0x105C0700 0x4>; + }; + }; + + /* cec driver */ + cec@101B0000 { + compatible = "samsung,exynos5-cec_driver"; + reg = <0x101B0000 0x1000>; + interrupts = <0 19 0>; + + gpios = <&gpa3 1 0xf>; + pinctrl-names = "hdmi_cec"; + pinctrl-0 = <&hdmi_cec>; + + clock-names = "gate_hdmi_cec"; + + clocks = <&clock 2483>; + + #address-cells = <1>; + #size-cells = <1>; + ranges; + + hdmiphy-sys { + reg = <0x105C0700 0x4>; + }; + }; + + + mfc_0: mfc0@152E0000 { + compatible = "samsung,mfc-v6"; + #pb-id-cells = <0>; + reg = <0x152E0000 0x10000>; + interrupts = <0 320 0>; + clock-names = "aclk_mfc", "pclk_mfc", "dout_aclk_mfc_532", "aclk_lh_s_mfc_0", + "aclk_lh_s_mfc_1", "aclk_xiu_mfc_0", "aclk_xiu_mfc_1", + "aclk_xiu_n_async_m_mfc_0", "aclk_xiu_n_async_m_mfc_1", + "aclk_cp_mfc_0", "aclk_cp_mfc_1", "aclk_xiu_n_async_s_mfc_0", + "aclk_xiu_n_async_s_mfc_1", "pclk_xiu_n_async_mfc_0", + "pclk_xiu_n_async_mfc_1", "pclk_cp_mfc_0", "pclk_cp_mfc_1", + "aclk_noc_bus1_nrt", "pclk_gpio_bus1", "aclk_lh_mfc0", + "aclk_lh_mfc1"; + clocks = <&clock 1000>, <&clock 1001>, <&clock 1004>, <&clock 1008>, <&clock 1009>, + <&clock 1010>, <&clock 1011>, <&clock 1012>, <&clock 1013>, <&clock 1014>, + <&clock 1015>, <&clock 1016>, <&clock 1017>, <&clock 1018>, <&clock 1019>, + <&clock 1020>, <&clock 1021>, <&clock 1024>, <&clock 1025>, <&clock 1026>, + <&clock 1027>; + samsung,power-domain = <&pd_mfc>; + status = "ok"; + ip_ver = <10>; + clock_rate = <400000000>; + min_rate = <100000>; + num_qos_steps = <5>; + mfc_qos_table { + mfc_qos_variant_0 { + thrd_mb = <0>; + freq_mfc = <100000>; + freq_int = <100000>; + freq_mif = <167000>; + freq_cpu = <0>; + freq_kfc = <0>; + }; + mfc_qos_variant_1 { + thrd_mb = <108000>; + freq_mfc = <160000>; + freq_int = <133000>; + freq_mif = <222000>; + freq_cpu = <0>; + freq_kfc = <0>; + }; + mfc_qos_variant_2 { + thrd_mb = <244800>; + freq_mfc = <200000>; + freq_int = <200000>; + freq_mif = <413000>; + freq_cpu = <0>; + freq_kfc = <400000>; + }; + mfc_qos_variant_3 { + thrd_mb = <367200>; + freq_mfc = <200000>; + freq_int = <200000>; + freq_mif = <413000>; + freq_cpu = <0>; + freq_kfc = <400000>; + }; + mfc_qos_variant_4 { + thrd_mb = <489600>; + freq_mfc = <400000>; + freq_int = <400000>; + freq_mif = <825000>; + freq_cpu = <0>; + freq_kfc = <400000>; + }; + }; + }; + hevc: hevc@14FE0000 { + compatible = "samsung,hevc"; + #pb-id-cells = <0>; + reg = <0x14FE0000 0x10000>; + interrupts = <0 477 0>; + clock-names = "aclk_hevc", "pclk_hevc", "dout_aclk_hevc_532", + "aclk_lh_async_s_hevc_0", "aclk_lh_async_s_hevc_1", + "aclk_lh_s_mfc_0", "aclk_lh_s_mfc_1", + "aclk_xiu_mfc_0", "aclk_xiu_mfc_1", + "aclk_xiu_n_async_m_mfc_0", "aclk_xiu_n_async_m_mfc_1", + "aclk_cp_mfc_0", "aclk_cp_mfc_1", + "aclk_noc_bus1_nrt", "pclk_gpio_bus1", "aclk_lh_mfc0", + "aclk_lh_mfc1"; + clocks = <&clock 1002>, <&clock 1003>, <&clock 1005>, <&clock 1022>, + <&clock 1023>, <&clock 1008>, <&clock 1009>, <&clock 1010>, + <&clock 1011>, <&clock 1012>, <&clock 1013>, <&clock 1014>, + <&clock 1015>, <&clock 1024>, <&clock 1025>, <&clock 1026>, + <&clock 1027>; + status = "ok"; + samsung,power-domain = <&pd_hevc>; + ip_ver = <1>; + clock_rate = <400000000>; + min_rate = <100000>; + num_qos_steps = <4>; + hevc_qos_table { + hevc_qos_variant_0 { + thrd_mb = <0>; + freq_hevc = <100000>; + freq_int = <100000>; + freq_mif = <167000>; + freq_cpu = <0>; + freq_kfc = <0>; + }; + hevc_qos_variant_1 { + thrd_mb = <108000>; + freq_hevc = <134000>; + freq_int = <133000>; + freq_mif = <222000>; + freq_cpu = <0>; + freq_kfc = <0>; + }; + hevc_qos_variant_2 { + thrd_mb = <244800>; + freq_hevc = <200000>; + freq_int = <200000>; + freq_mif = <413000>; + freq_cpu = <0>; + freq_kfc = <400000>; + }; + hevc_qos_variant_3 { + thrd_mb = <489600>; + freq_hevc = <400000>; + freq_int = <400000>; + freq_mif = <825000>; + freq_cpu = <0>; + freq_kfc = <400000>; + }; + }; + }; + + mali { + compatible = "arm,mali"; + reg = <0x14AC0000 0x5000>; + interrupts = <0 241 0>, <0 242 0>, <0 240 0>; + clocks = <&clock 1>, <&clock 10>, <&clock 50>, <&clock 160>, <&clock 161>, <&clock 162>; + clock-names = "fin_pll", "fout_g3d_pll", "mout_bus_pll_g3d", "aclk_g3d", "dout_aclk_g3d", "mout_g3d"; + samsung,power-domain = <&pd_g3d>; + }; + + fimc_is_sensor0: fimc_is_sensor@14020000 { + compatible = "samsung,exynos5-fimc-is-sensor"; + #pb-id-cells = <3>; + reg = <0x14020000 0x10000>, <0x14000000 0x10000>; + interrupts = <0 133 0>; + pinctrl-names = "ch0", "af0"; + pinctrl-0 = <&fimc_is_ch0_i2c &fimc_is_ch0_mclk>; + pinctrl-1 = <&fimc_is_ch0_i2c &fimc_is_ch0_mclk &fimc_is_ch2_i2c>; + samsung,power-domain = <&pd_cam0>; + clock-names = "sclk_isp_sensor0", /* 16 */ + "sclk_isp_sensor1", + "sclk_isp_sensor2", + + "dout_sclk_isp_sensor0", /* 20 */ + "dout_sclk_isp_sensor1", + "dout_sclk_isp_sensor2", + + "mout_sclk_isp_sensor0", /* 23 */ + "mout_sclk_isp_sensor1", + "mout_sclk_isp_sensor2"; + clocks = <&clock 16>, + <&clock 17>, + <&clock 18>, + + <&clock 20>, + <&clock 21>, + <&clock 22>, + + <&clock 23>, + <&clock 24>, + <&clock 25>; + }; + + fimc_is_sensor1: fimc_is_sensor@14030000 { + compatible = "samsung,exynos5-fimc-is-sensor"; + #pb-id-cells = <3>; + reg = <0x14030000 0x40000>, <0x14010000 0x10000>; + interrupts = <0 134 0>; + pinctrl-names = "ch1", "ch2"; + pinctrl-0 = <&fimc_is_ch1_i2c &fimc_is_ch2_mclk>; + pinctrl-1 = <&fimc_is_ch2_i2c &fimc_is_ch2_mclk>; + samsung,power-domain = <&pd_cam0>; + clock-names = "sclk_isp_sensor0", /* 16 */ + "sclk_isp_sensor1", + "sclk_isp_sensor2", + + "dout_sclk_isp_sensor0", /* 20 */ + "dout_sclk_isp_sensor1", + "dout_sclk_isp_sensor2", + + "mout_sclk_isp_sensor0", /* 23 */ + "mout_sclk_isp_sensor1", + "mout_sclk_isp_sensor2"; + + clocks = <&clock 16>, + <&clock 17>, + <&clock 18>, + + <&clock 20>, + <&clock 21>, + <&clock 22>, + + <&clock 23>, + <&clock 24>, + <&clock 25>; + }; + + fimc_is: fimc_is@14200000 { + compatible = "samsung,exynos5-fimc-is"; + #pb-id-cells = <6>; + reg = <0x14370000 0x10000>; + interrupts = <0 171 0>, /* ARMISP_GIC */ + <0 172 0>; /* ISP_GIC */ + pinctrl-names = "default"; + pinctrl-0 = <&fimc_is_uart &fimc_is_flash>; + clocks = <&clock 1>, + + <&clock 12>, + + <&clock 26>, + <&clock 27>, + <&clock 28>, + <&clock 29>, + <&clock 30>, + <&clock 31>, + <&clock 32>, + + <&clock 35>, + <&clock 36>, + <&clock 37>, + <&clock 38>, + <&clock 39>, + <&clock 40>, + <&clock 41>, + + <&clock 2000>, + <&clock 2001>, + <&clock 2002>, + + <&clock 2005>, + <&clock 2006>, + + <&clock 2010>, + <&clock 2011>, + <&clock 2012>, + <&clock 2013>, + <&clock 2014>, + <&clock 2015>, + <&clock 2016>, + <&clock 2017>, + <&clock 2018>, + + <&clock 2020>, + <&clock 2021>, + <&clock 2022>, + <&clock 2023>, + <&clock 2024>, + <&clock 2025>, + + <&clock 2030>, + <&clock 2031>, + <&clock 2032>, + + <&clock 2035>, + <&clock 2036>, + <&clock 2037>, + + <&clock 2040>, + <&clock 2041>, + + <&clock 2045>, + <&clock 2046>, + <&clock 2047>, + <&clock 2048>, + <&clock 2049>, + <&clock 2050>, + <&clock 2051>, + <&clock 2052>, + <&clock 2053>, + + <&clock 2055>, + <&clock 2056>, + <&clock 2057>, + <&clock 2058>, + <&clock 2059>, + <&clock 2060>, + + <&clock 2065>, + <&clock 2066>, + <&clock 2067>, + + <&clock 3005>, + + <&clock 3010>, + <&clock 3011>, + + <&clock 3015>, + <&clock 3016>, + + <&clock 3020>, + <&clock 3021>, + + <&clock 3025>, + <&clock 3026>, + + <&clock 3030>, + <&clock 3031>, + + <&clock 3035>, + <&clock 3036>, + + <&clock 3040>, + + <&clock 3045>, + <&clock 3046>, + <&clock 3047>, + <&clock 3048>, + + <&clock 3050>, + <&clock 3051>, + + <&clock 3055>, + <&clock 3056>, + <&clock 3057>, + + <&clock 3060>, + <&clock 3061>, + + <&clock 3065>, + <&clock 3066>, + + <&clock 3070>, + <&clock 3071>, + <&clock 3072>, + <&clock 3073>, + <&clock 3074>, + <&clock 3075>, + <&clock 3076>, + <&clock 3077>, + <&clock 3078>, + <&clock 3079>, + <&clock 3080>, + <&clock 3081>, + <&clock 3082>, + <&clock 3083>, + <&clock 3084>, + + <&clock 3086>, + <&clock 3087>, + <&clock 3088>, + <&clock 3089>, + + <&clock 3090>, + <&clock 3091>, + + <&clock 3095>, + <&clock 3096>, + <&clock 3097>, + <&clock 3098>, + <&clock 3099>, + <&clock 3100>, + <&clock 3101>, + + <&clock 3105>, + <&clock 3106>, + <&clock 3107>, + <&clock 3108>, + <&clock 3109>, + <&clock 3110>, + <&clock 3111>, + + <&clock 3115>, + <&clock 3116>, + <&clock 3117>, + <&clock 3118>, + <&clock 3119>, + + <&clock 3120>, + <&clock 3121>, + + <&clock 3125>, + <&clock 3126>, + <&clock 3127>, + + <&clock 3130>, + <&clock 3131>, + <&clock 3132>, + <&clock 3133>, + <&clock 3134>, + <&clock 3135>, + <&clock 3136>, + <&clock 3137>, + <&clock 3138>, + <&clock 3139>, + <&clock 3140>, + <&clock 3141>, + <&clock 3142>, + <&clock 3143>, + + <&clock 3150>, + <&clock 3151>, + <&clock 3152>, + <&clock 3153>, + <&clock 3154>, + <&clock 3155>, + <&clock 3156>, + + <&clock 3165>, + <&clock 3166>, + <&clock 3167>, + <&clock 3168>, + <&clock 3169>, + <&clock 3170>, + <&clock 3171>, + <&clock 3172>, + <&clock 3173>, + <&clock 3174>, + <&clock 3175>, + <&clock 3176>, + <&clock 3177>, + <&clock 3178>, + <&clock 3179>, + <&clock 3180>, + <&clock 3181>, + <&clock 3182>, + <&clock 3183>, + <&clock 3184>, + <&clock 3185>, + + <&clock 3190>, + <&clock 3191>, + <&clock 3192>, + <&clock 3193>, + <&clock 3194>, + + <&clock 3200>, + <&clock 3201>, + + <&clock 3205>, + <&clock 3206>, + <&clock 3207>, + <&clock 3208>, + <&clock 3209>, + <&clock 3210>, + <&clock 3211>, + <&clock 3212>, + <&clock 3213>, + <&clock 3214>, + <&clock 3215>, + + <&clock 3220>, + <&clock 3221>, + <&clock 3222>, + <&clock 3223>, + + <&clock 3225>, + <&clock 3226>, + + <&clock 3230>, + <&clock 3231>, + <&clock 3232>, + + <&clock 3235>, + <&clock 3236>, + + <&clock 3240>, + <&clock 3241>, + + <&clock 3245>, + <&clock 3246>, + <&clock 3247>, + <&clock 3248>, + <&clock 3249>, + + <&clock 3255>, + <&clock 3256>, + <&clock 3257>, + + <&clock 3260>, + <&clock 3261>, + <&clock 3262>, + <&clock 3263>, + + <&clock 3265>, + <&clock 3266>, + <&clock 3267>, + + <&clock 3270>, + <&clock 3271>, + <&clock 3272>, + + <&clock 3275>, + <&clock 3276>, + <&clock 3277>, + <&clock 3278>, + <&clock 3279>, + <&clock 3280>, + <&clock 3281>, + <&clock 3282>, + <&clock 3283>, + <&clock 3284>, + <&clock 3285>, + <&clock 3286>, + <&clock 3287>, + <&clock 3288>, + + <&clock 3290>, + <&clock 3291>, + <&clock 3292>, + <&clock 3293>, + <&clock 3294>, + <&clock 3295>, + <&clock 3296>, + <&clock 3297>, + <&clock 3298>, + <&clock 3299>, + + <&clock 3300>, + <&clock 3301>, + <&clock 3302>, + <&clock 3303>, + <&clock 3304>, + + <&clock 3305>, + <&clock 3306>, + <&clock 3307>, + <&clock 3308>, + <&clock 3309>, + <&clock 3310>, + <&clock 3311>, + + <&clock 3315>, + <&clock 3316>, + <&clock 3317>, + <&clock 3318>, + + <&clock 3320>, + <&clock 3321>, + <&clock 3322>, + <&clock 3323>, + <&clock 3324>, + + <&clock 3325>, + <&clock 3326>, + <&clock 3327>, + + <&clock 3330>, + <&clock 3331>, + + <&clock 3335>, + <&clock 3336>, + <&clock 3337>, + <&clock 3338>, + <&clock 3339>, + <&clock 3340>, + <&clock 3341>, + <&clock 3342>, + <&clock 3343>, + + <&clock 3345>, + <&clock 3346>, + <&clock 3347>, + <&clock 3348>, + <&clock 3349>, + <&clock 3350>, + + <&clock 3355>, + <&clock 3356>, + <&clock 3357>, + + <&clock 3360>, + <&clock 3361>, + <&clock 3362>, + <&clock 3363>, + <&clock 3364>, + <&clock 3365>, + + <&clock 3370>, + <&clock 3371>, + <&clock 3372>, + <&clock 3373>; + + clock-names = "oscclk", /* 1 */ + + "mout_isp_pll", /* 12 */ + + "mout_isp_pll_ctrl", /* 26 */ + "mout_cam_pll_ctrl", + "mout_aud_pll", + "mout_top0_mfc_pll", + "mout_top0_cci_pll", + "mout_top0_bus1_pll", + "mout_top0_bus0_pll", + + "bus0_pll", /* 35 */ + "bus1_pll", + "isp_pll", + "cam_pll", + "cci_pll", + "mfc_pll", + "aud_pll", + + "dout_aclk_isp0_isp0_590", /* 2000 */ + "dout_aclk_isp0_tpu_590", + "dout_aclk_isp0_trex_532", + + "dout_aclk_isp1_isp1_468", /* 2005 */ + "dout_aclk_isp1_ahb_117", + + "dout_aclk_cam0_csis0_690", /* 2010 */ + "dout_aclk_cam0_bnsa_690", + "dout_aclk_cam0_bnsb_690", + "dout_aclk_cam0_bnsd_690", + "dout_aclk_cam0_csis1_174", + "dout_aclk_cam0_3aa0_690", + "dout_aclk_cam0_3aa1_468", + "dout_aclk_cam0_trex_532", + "dout_aclk_cam0_nocp_133", + + "dout_aclk_cam1_sclvra_491", /* 2020 */ + "dout_aclk_cam1_arm_668", + "dout_aclk_cam1_busperi_334", + "dout_aclk_cam1_bnscsis_133", + "dout_aclk_cam1_nocp_133", + "dout_aclk_cam1_trex_532", + + "dout_sclk_isp_spi0", /* 2030 */ + "dout_sclk_isp_spi1", + "dout_sclk_isp_uart", + + "mout_aclk_isp0_isp0_590", /* 2035 */ + "mout_aclk_isp0_tpu_590", + "mout_aclk_isp0_trex_532", + + "mout_aclk_isp1_isp1_468", /* 2040 */ + "mout_aclk_isp0_ahb_117", + + "mout_aclk_cam0_csis0_690", /* 2045 */ + "mout_aclk_cam0_bnsa_690", + "mout_aclk_cam0_bnsb_690", + "mout_aclk_cam0_bnsd_690", + "mout_aclk_cam0_csis1_174", + "mout_aclk_cam0_3aa0_690", + "mout_aclk_cam0_3aa1_468", + "mout_aclk_cam0_trex_532", + "mout_aclk_cam0_nocp_133", + + "mout_aclk_cam1_sclvra_491", /* 2055 */ + "mout_aclk_cam1_arm_668", + "mout_aclk_cam1_busperi_334", + "mout_aclk_cam1_bnscsis_133", + "mout_aclk_cam1_nocp_133", + "mout_aclk_cam1_trex_532", + + "mout_sclk_isp_spi0", /* 2065 */ + "mout_sclk_isp_spi1", + "mout_sclk_isp_uart", + + "gate_aclk_csis0_i_wrap", /* 3005 */ + + "gate_aclk_fimc_bns_a", /* 3010 */ + "gate_aclk_trex_a_5x1_bns_a", + + "gate_pclk_fimc_bns_a", /* 3015 */ + "gate_cclk_asyncapb_socp_fimc_bns_a", + + "gate_aclk_fimc_bns_b", /* 3020 */ + "gate_aclk_trex_a_5x1_bns_b", + + "gate_pclk_fimc_bns_b", /* 3025 */ + "gate_cclk_asyncapb_socp_fimc_bns_b", + + "gate_aclk_fimc_bns_d", /* 3030 */ + "gate_aclk_trex_a_5x1_bns_d", + + "gate_pclk_fimc_bns_d", /* 3035 */ + "gate_cclk_asyncapb_socp_fimc_bns_d", + + "gate_aclk_csis1_i_wrap", /* 3040 */ + + "gate_aclk_fimc_3aa0", /* 3045 */ + "gate_aclk_trex_a_5x1_aa0", + "gate_aclk_pxl_asbs_fimc_bns_c", + "gate_aclk_pxl_asbs_3aa0_in", + + "gate_pclk_fimc_3aa0", /* 3050 */ + "gate_cclk_asyncapb_socp_3aa0", + + "gate_aclk_fimc_3aa1", /* 3055 */ + "gate_aclk_trex_a_5x1_aa1", + "gate_aclk_pxl_asbs_3aa1_in", + + "gate_pclk_fimc_3aa1", /* 3060 */ + "gate_cclk_asyncapb_socp_3aa1", + + "gate_aclk_trex_a_5x1", /* 3065 */ + "gate_aclk_axi_lh_async_si_top_cam0", + + "gate_pclk_csis0", /* 3070 */ + "gate_pclk_csis1", + "gate_aclk_axi2apb_bridge_is0p", + "gate_pclk_asyncapb_socp_3aa0", + "gate_pclk_asyncapb_socp_3aa1", + "gate_pclk_asyncapb_socp_fimc_bns_a", + "gate_pclk_asyncapb_socp_fimc_bns_b", + "gate_pclk_asyncapb_socp_fimc_bns_d", + "gate_pclk_freeruncnt", + "gate_aclk_xiu_is0x", + "gate_aclk_axi2ahb_is0p", + "gate_hclk_ahbsyncdn_cam0", + "gate_aclk_xiu_async_mi_cam0", + "gate_pclk_xiu_async_mi_cam0", + "gate_aclk_xiu_async_mi_is0x", + + "gate_pclk_xiu_async_mi_is0x", /* 3085 */ + "gate_pclk_pmu_cam0", + "gate_hclk_ahb2apb_bridge_is0p", + "gate_pclk_trex_a_5x1", + + "gate_aclk_pxl_asbs_fimc_bns_c_int", /* 3090 */ + "gate_aclk_pxl_asbm_fimc_bns_c_int", + + "gate_aclk_200_cam0_noc_p_cam0", /* 3095 */ + "gate_aclk_xiu_async_si_is0x", + "gate_user_phyclk_rxbyteclkhs0_s2a", + "gate_user_phyclk_rxbyteclkhs0_s4", + "gate_user_phyclk_rxbyteclkhs1_s4", + "gate_user_phyclk_rxbyteclkhs2_s4", + "gate_user_phyclk_rxbyteclkhs3_s4", + + "gate_aclk_fimc_scaler", /* 3105 */ + "gate_aclk_fimc_vra", + "gate_aclk_pxl_asbs_from_blkc", + "gate_clk_fimc_scaler", + "gate_clk_fimc_vra", + "gate_clk_scaler_trex_b", + "gate_clk_vra_trex_b", + + "gate_pclk_fimc_scaler", /* 3115 */ + "gate_pclk_fimc_vra", + "gate_cclk_asyncapb_socp_fimc_scaler", + "gate_cclk_asyncapb_socp_fimc_vra_s0", + "gate_cclk_asyncapb_socp_fimc_vra_s1", + + "gate_aclk_xiu_n_async_si_cortex", /* 3120 */ + "gate_clk_mcu_isp_400_isp_arm_sys", + + "gate_atclks_asatbslv_cam1_cssys", /* 3125 */ + "gate_pclkdbg_asapbmst_cssys_cam1", + "gate_clk_csatbdownsizer_cam1", + + "gate_aclk_axi2apb_bridge_is3p", /* 3130 */ + "gate_aclk_axispcx, gate_aclk_axisphx", + "gate_aclk_gic_isp_arm_sys", + "gate_aclk_r_axispcx", + "gate_aclk_r_axisphx", + "gate_aclk_xiu_ispx_1x4", + "gate_aclk_xiu_n_async_mi_cortex", + "gate_aclk_xiu_n_async_si_cam1", + "gate_aclk_xiu_n_async_si_to_blkc", + "gate_aclk_xiu_n_async_si_to_blkd", + "gate_clk_isp_cpu_trex_b", + "gate_hclk_ahbsyncdn_isp_peri", + "gate_hclk_ahbsyncdn_isp2h", + "gate_hclkm_asyncahb_cam1", + + "gate_pclk_asyncapb_socp_fimc_bns_c", /* 3150 */ + "gate_pclk_asyncapb_socp_fimc_scaler", + "gate_pclk_asyncapb_socp_fimc_vra_s0", + "gate_pclk_asyncapb_socp_fimc_vra_s1", + "gate_pclk_csis2", + "gate_pclk_fimc_is_b_glue", + "gate_pclk_xiu_n_async_mi_cortex", + + "gate_hclk_ahb_sfrisp2h", /* 3165 */ + "gate_hclk_ahb2apb_bridge_is3p", + "gate_hclk_ahb2apb_bridge_is5p", + "gate_hclk_asyncahbslave_to_blkc", + "gate_hclk_asyncahbslave_to_blkd", + "gate_pclk_i2c0_isp", + "gate_pclk_i2c1_isp", + "gate_pclk_i2c2_isp", + "gate_pclk_mcuctl_isp", + "gate_pclk_mpwm_isp", + "gate_pclk_mtcadc_isp", + "gate_pclk_pwm_isp", + "gate_pclk_spi0_isp", + "gate_pclk_spi1_isp", + "gate_pclk_trex_b", + "gate_pclk_uart_isp", + "gate_pclk_wdt_isp", + "gate_pclk_xiu_n_async_mi_from_blkd", + "gate_pclk_pmu_cam1", + "gate_sclk_isp_pwm", + "gate_sclk_isp_mpwm", + + "gate_pclk_fimc_bns_c", /* 3190 */ + "gate_aclk_fimc_bns_c", + "gate_cclk_asyncapb_socp_fimc_bns_c", + "gate_clk_bns_c_trex_b", + "gate_aclk_wrap_csis2", + + "gate_clk_133_cam1_noc_p_cam1", /* 3200 */ + "gate_hclks_asyncahb_cam1", + + "gate_clk_axlh_async_si_top_cam1", /* 3205 */ + "gate_aclk_xiu_n_async_mi_from_blkd", + "gate_clk_b_trex_b", + "gate_user_sclk_isp_spi0", + "gate_user_sclk_isp_spi1", + "gate_user_sclk_isp_uart", + "gate_sclk_isp_mtcadc", + "gate_sclk_i2c0_isp", + "gate_sclk_i2c1_isp", + "gate_sclk_i2c2_isp", + "gate_user_phyclk_rxbyteclkhs0_s2b", + + "gate_clk_isp0_trex_c", /* 3220 */ + "gate_aclk_isp_v4", + "gate_clk_isp_v4", + "gate_clk_pxl_asb_s_in", + + "gate_cclk_asyncapb_isp", /* 3225 */ + "gate_pclk_isp_v4", + + "gate_clk_tpu_trex_c", /* 3230 */ + "gate_aclk_tpu_v1", + "gate_clk_tpu_v1", + + "gate_cclk_asyncapb_tpu", /* 3235 */ + "gate_pclk_tpu_v1", + + "gate_clk_axi_lh_async_si_top_isp0", /* 3240 */ + "gate_clk_c_trex_c", + + "gate_pclk_asyncapb_isp", /* 3245 */ + "gate_pclk_asyncapb_tpu", + "gate_aclk_axi2apb_bridge", + "gate_aclk_xiu_async_m ", + "gate_pclk_pmu_isp0", + + "gate_hclk_ahb2apb_bridge", /* 3255 */ + "gate_pclk_trex_c", + "gate_hclkm_ahb_async_m", + + "gate_aclk_fimc_isp1", /* 3260 */ + "gate_clk_fimc_isp1", + "gate_aclk_pxl_asbs", + "gate_aclk_xiu_n_async_si", + + "gate_pclk_fimc_isp1", /* 3265 */ + "gate_aclk_xiu_n_async_mi", + "gate_aclk_axi2apb_bridge_is2p", + + "gate_hclk_ahb2apb_bridge_is2p", /* 3270 */ + "gate_hclkm_asyncahbmaster", + "gate_pclk_pmu_isp1", + + "mout_user_mux_aclk_cam0_csis0_690", /* 3275 */ + "mout_user_mux_aclk_cam0_bnsa_690", + "mout_user_mux_aclk_cam0_bnsb_690", + "mout_user_mux_aclk_cam0_bnsd_690", + "mout_user_mux_aclk_cam0_csis1_174", + "mout_user_mux_aclk_cam0_3aa0_690", + "mout_user_mux_aclk_cam0_3aa1_468", + "mout_user_mux_aclk_cam0_trex_532", + "mout_user_mux_aclk_cam0_nocp_133", + "mout_user_mux_phyclk_rxbyteclkhs0_s2a", + "mout_user_mux_phyclk_rxbyteclkhs0_s4", + "mout_user_mux_phyclk_rxbyteclkhs1_s4", + "mout_user_mux_phyclk_rxbyteclkhs2_s4", + "mout_user_mux_phyclk_rxbyteclkhs3_s4", + + "mout_user_mux_aclk_cam1_sclvra_491", /* 3290 */ + "mout_user_mux_aclk_cam1_arm_668", + "mout_user_mux_aclk_cam1_busperi_334", + "mout_user_mux_aclk_cam1_bnscsis_133", + "mout_user_mux_aclk_cam1_nocp_133", + "mout_user_mux_aclk_cam1_trex_532", + "mout_user_mux_sclk_isp_spi0", + "mout_user_mux_sclk_isp_spi1", + "mout_user_mux_sclk_isp_uart", + "mout_user_mux_phyclk_hs0_csis2_rx_byte", + + "mout_user_mux_aclk_isp0_isp0_590", /* 3300 */ + "mout_user_mux_aclk_isp0_tpu_590", + "mout_user_mux_aclk_isp0_trex_532", + "mout_user_mux_aclk_isp1_isp1_468", + "mout_user_mux_aclk_isp1_ahb_117", + + "dout_clkdiv_pclk_cam0_bnsa_345", /* 3305 */ + "dout_clkdiv_pclk_cam0_bnsb_345", + "dout_clkdiv_pclk_cam0_bnsd_345", + "dout_clkdiv_pclk_cam0_3aa0_345", + "dout_clkdiv_pclk_cam0_3aa1_234", + "dout_clkdiv_pclk_cam0_trex_266", + "dout_clkdiv_pclk_cam0_trex_133", + + "dout_clkdiv_pclk_cam1_sclvra_246", /* 3315 */ + "dout_clkdiv_pclk_cam1_arm_167", + "dout_clkdiv_pclk_cam1_busperi_167", + "dout_clkdiv_pclk_cam1_busperi_84", + + "dout_clkdiv_pclk_isp0_isp0_295", /* 3320 */ + "dout_clkdiv_pclk_isp0_tpu_295", + "dout_clkdiv_pclk_isp0_trex_266", + "dout_clkdiv_pclk_isp0_trex_133", + "dout_clkdiv_pclk_isp1_isp1_234", + + "aclk_isp0_isp0_590", /* 3325 */ + "aclk_isp0_tpu_590", + "aclk_isp0_trex_532", + + "aclk_isp1_isp1_468", /* 3330 */ + "aclk_isp1_ahb_117", + + "aclk_cam0_csis0_690", /* 3335 */ + "aclk_cam0_bnsa_690", + "aclk_cam0_bnsb_690", + "aclk_cam0_bnsd_690", + "aclk_cam0_csis1_174", + "aclk_cam0_3aa0_690", + "aclk_cam0_3aa1_468", + "aclk_cam0_trex_532", + "aclk_cam0_nocp_133", + + "aclk_cam1_sclvra_491", /* 3345 */ + "aclk_cam1_arm_668", + "aclk_cam1_busperi_334", + "aclk_cam1_bnscsis_133", + "aclk_cam1_nocp_133", + "aclk_cam1_trex_532", + + "sclk_isp_spi0", /* 3355 */ + "sclk_isp_spi1", + "sclk_isp_uart", + + "phyclk_rxbyteclkhs0_s2a", /* 3360 */ + "phyclk_rxbyteclkhs0_s4", + "phyclk_rxbyteclkhs1_s4", + "phyclk_rxbyteclkhs2_s4", + "phyclk_rxbyteclkhs3_s4", + "phyclk_hs0_csis2_rx_byte", + + "gate_aclk_lh_cam0", /* 3370 */ + "gate_aclk_lh_cam1", + "gate_aclk_lh_isp", + "gate_aclk_noc_bus0_nrt"; + + samsung,power-domain = <&pd_isp0>; + status = "ok"; + /* This seq of declaration is very important.*/ + /* It should be matched to enum FIMC_IS_CLK_GATE_IP */ + clk_gate_enums =<0>, /* 3a1 */ + <1>, /* isp */ + <2>, /* drc */ + <3>, /* scc */ + <5>, /* dis */ + <6>, /* 3dnr */ + <7>, /* scp */ + <8>, /* fd */ + <9>; /* 3a0 */ + clk_gate_strs = "gate_3aa1", + "gate_isp", + "gate_drc", + "gate_scalerc", + "gate_dis", + "gate_3dnr", + "gate_scalerp", + "gate_fd", + "gate_3aa0"; + clk_gate_ctrl { + /* 3a0 */ + group0 { + mask_clk_on_org = <9>; + mask_clk_off_self_org = <9>; + }; + /* 3a1 */ + group1 { + /* not defined */ + }; + /* isp */ + group2 { + mask_clk_on_org = <1>, + <2>, + <3>, + <5>, + <6>, + <7>, + <8>; + mask_clk_off_self_org = <1>, + <2>, + <3>, + <5>, + <6>, + <7>, + <8>; + }; + }; + }; + + pd_aud: pd-aud@105c4000 { + compatible = "samsung,exynos-pd"; + reg = <0x105c4000 0x20>; + }; + + pd_cam0: pd-cam0@105c4040 { + compatible = "samsung,exynos-pd"; + reg = <0x105c4040 0x20>; + parent = <&pd_cam1>; + bts-status = "enabled"; + }; + + pd_cam1: pd-cam1@105c4060 { + compatible = "samsung,exynos-pd"; + reg = <0x105c4060 0x20>; + bts-status = "enabled"; + }; + + pd_disp: pd-disp@105c4080 { + compatible = "samsung,exynos-pd"; + reg = <0x105c4080 0x20>; + + spd_decon0: spd-decon0@105c4080 { + compatible = "samsung,exynos-spd"; + bts-status = "enabled"; + }; + + spd_decon1: spd-decon1@105c4080 { + compatible = "samsung,exynos-spd"; + bts-status = "enabled"; + }; + + spd_hdmi: spd-hdmi@105c4080 { + compatible = "samsung,exynos-spd"; + }; + + spd_mipi_dsi0: spd-mipi-dsi0@105c4080 { + compatible = "samsung,exynos-spd"; + }; + }; + + pd_g2d: pd-g2d@105c40e0 { + compatible = "samsung,exynos-pd"; + reg = <0x105c40e0 0x20>; + }; + + pd_g3d: pd-g3d@105c4100 { + compatible = "samsung,exynos-pd"; + reg = <0x105c4100 0x20>; + pd-option = <0x182>; + status = "disabled"; + }; + + pd_hevc: pd-hevc@105c4120 { + compatible = "samsung,exynos-pd"; + reg = <0x105c4120 0x20>; + parent = <&pd_mfc>; + }; + + pd_isp0: pd-isp0@105c4140 { + compatible = "samsung,exynos-pd"; + reg = <0x105c4140 0x20>; + parent = <&pd_isp1 &pd_cam0 &pd_cam1>; + }; + + pd_isp1: pd-isp1@105c4180 { + compatible = "samsung,exynos-pd"; + reg = <0x105c4180 0x20>; + parent = <&pd_cam1>; + }; + + pd_mfc: pd-mfc@105c41a0 { + compatible = "samsung,exynos-pd"; + reg = <0x105c41a0 0x20>; + bts-status = "enabled"; + }; + + pd_mscl: pd-mscl@105c41c0 { + compatible = "samsung,exynos-pd"; + reg = <0x105c41c0 0x20>; + + spd_mscl0: spd_mscl0@150c41c0 { + compatible = "samsung,exynos-spd"; + }; + + spd_mscl1: spd_mscl1@150c41c0 { + compatible = "samsung,exynos-spd"; + }; + + spd_jpeg: spd_jpeg@150c41c0 { + compatible = "samsung,exynos-spd"; + }; + }; + + pd_vpp: pd-vpp@105c41e0 { + compatible = "samsung,exynos-pd"; + reg = <0x105c41e0 0x20>; + bts-status = "enabled"; + + spd_vg0: spd-vg0@105c41e0 { + compatible = "samsung,exynos-spd"; + }; + + spd_vg1: spd-vg1@105c41e0 { + compatible = "samsung,exynos-spd"; + }; + + spd_vgr0: spd-vgr0@105c41e0 { + compatible = "samsung,exynos-spd"; + }; + + spd_vgr1: spd-vgr1@105c41e0 { + compatible = "samsung,exynos-spd"; + }; + }; + + usb@15400000 { + compatible = "samsung,exynos5-dwusb3"; + clocks = <&clock 5010>, <&clock 5011>; + clock-names = "aclk", "sclk"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + status = "disabled"; + + dwc3 { + compatible = "synopsys,dwc3"; + reg = <0x15400000 0x10000>; + interrupts = <0 223 0>; + usb-phy = <&dwc3_usb2_phy &dwc3_usb3_phy>; + }; + }; + + dwc3_usb2_phy: usbphy { + compatible = "samsung,exynos5-usb2phy-dummy"; + }; + + dwc3_usb3_phy: usbphy@15500000 { + compatible = "samsung,exynos7420-usb3phy"; + reg = <0x15500000 0x100>; + clocks = <&clock 1>, <&clock 5012>, <&clock 5013>; + clock-names = "ext_xtal", "phyclock", "pipe_pclk"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + usbphy-sys { + reg = <0x105C0704 0x4>; + }; + }; + + ehci: usb@15510000 { + compatible = "samsung,exynos5-ehci"; + reg = <0x15510000 0x100>; + interrupts = <0 222 0>; + clocks = <&clock 5014>; + clock-names = "usbhost"; + usb-phy = <&usb2_phy>; + status = "ok"; + }; + + ohci: usb@15520000 { + compatible = "samsung,exynos5-ohci"; + reg = <0x15520000 0x100>; + interrupts = <0 222 0>; + clocks = <&clock 5014>; + clock-names = "usbhost"; + usb-phy = <&usb2_phy>; + status = "ok"; + }; + + usb2_phy: usb2phy@15530000 { + compatible = "samsung,exynos7420-usb2phy"; + reg = <0x15530000 0x100>; + clocks = <&clock 1>, <&clock 5015>, <&clock 5016>; + clock-names = "ext_xtal", "freeclk", "phyclk"; + samsung,hsicphy_en_mask = <0x2>; + samsung,hsicphy_reg_offset = <0x4>; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + usbphy-sys { + reg = <0x105C0700 0xC>; + }; + }; + + tmu@10060000 { + compatible = "samsung,exynos7420-tmu"; + reg = <0x10060000 0x200>, + <0x10064000 0x200>, + <0x10068000 0x200>, + <0x1006C000 0x200>; + interrupts = <0 108 0>, + <0 124 0>, + <0 109 0>, + <0 107 0>; + + /* For DTM platform data */ + threshold_falling = <2>; + gain = <9 8 9 9>; + reference_voltage = <19 16 19 19>; + noise_cancel_mode = <4>; + cal_type = <1>; /* 1: ONE_POINT_TRIMMING, 2: TWO_POINT_TRIMMING */ + efuse_value = <75>; + trigger_level_count = <8>; + throttle_count = <6>; + throttle_active_count = <1>; + throttle_passive_count = <5>; + hotplug_out_threshold = <100>; + hotplug_in_threshold = <95>; + + trigger_level_table { + trigger_level_0 { + temp = <80>; + enable = <1>; + }; + trigger_level_1 { + temp = <85>; + enable = <1>; + }; + trigger_level_2 { + temp = <90>; + enable = <1>; + }; + trigger_level_3 { + temp = <95>; + enable = <1>; + }; + trigger_level_4 { + temp = <100>; + enable = <1>; + }; + trigger_level_5 { + temp = <110>; + enable = <1>; + }; + trigger_level_6 { + /* Dummy trigger_level. + 7420's DTM Policy uses only 6 throttling level. */ + temp = <110>; + enable = <0>; + }; + trigger_level_7 { + /* H/W Tripping temp. + H/W trip is only supported on THRESHOLD_TEMP_RISE7 */ + temp = <115>; + enable = <1>; + }; + }; + + throttle_table { + throttle_tab_0 { + temp = <80>; + freq_max_big = <900000>; + freq_max_little = <1400000>; + }; + throttle_tab_1 { + temp = <85>; + freq_max_big = <900000>; + freq_max_little = <1400000>; + }; + throttle_tab_2 { + temp = <90>; + freq_max_big = <900000>; + freq_max_little = <1400000>; + }; + throttle_tab_3 { + temp = <95>; + freq_max_big = <900000>; + freq_max_little = <1400000>; + }; + throttle_tab_4 { + temp = <100>; + freq_max_big = <900000>; + freq_max_little = <1200000>; + }; + throttle_tab_5 { + temp = <110>; + freq_max_big = <900000>; + freq_max_little = <800000>; + }; + }; + }; + + iommu-domain_g2d { + compatible = "samsung,exynos-iommu-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + domain-clients = <&fimg2d_0>; + + sysmmu_g2d: sysmmu@0x12450000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x12450000 0x1000>; + interrupts = <0 233 0>; + clocks = <&clock CLK_ACLK_G2D_SYSMMU>, + <&clock CLK_PCLK_G2D_SYSMMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&fimg2d_0>; + }; + }; + }; + + fimg2d_0: fimg2d@12400000 { + compatible = "samsung,s5p-fimg2d"; + #pb-id-cells = <0>; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x12400000 0x1000>; + interrupts = <0 235 0>; + clocks = <&clock CLK_ACLK_G2D>, <&clock CLK_PCLK_G2D>; + clock-names="gate", "gate2"; + ip_ver = <9>; /* IP_VER_G2D_7I */ + samsung,power-domain = <&pd_g2d>; + g2d_qos_table { + g2d_qos_variant_0 { + freq_int = <400000>; + freq_mif = <825000>; + freq_cpu = <1500000>; + freq_kfc = <1500000>; + }; + g2d_qos_variant_1 { + freq_int = <400000>; + freq_mif = <825000>; + freq_cpu = <0>; + freq_kfc = <800000>; + }; + g2d_qos_variant_2 { + freq_int = <317000>; + freq_mif = <533000>; + freq_cpu = <0>; + freq_kfc = <800000>; + }; + g2d_qos_variant_3 { + freq_int = <267000>; + freq_mif = <413000>; + freq_cpu = <0>; + freq_kfc = <800000>; + }; + g2d_qos_variant_4 { + freq_int = <267000>; + freq_mif = <413000>; + freq_cpu = <0>; + freq_kfc = <500000>; + }; + }; + }; + }; + + mipi-lli@10F24000 { + compatible = "samsung,exynos-mipi-lli"; + reg = <0x10F24000 0x4000>, + <0x10F34000 0x4000>, + <0x10050000 0x2000>, + <0x105C0724 0x4>; + interrupts = <0 208 0>, <0 185 0>; + clocks = + /* To gate/ungate LLI clocks */ + <&clock 3500>, <&clock 3501>, + <&clock 3502>, <&clock 3503>, + <&clock 3504>, + <&clock 3510>, <&clock 3511>, + <&clock 3512>, <&clock 3513>, + <&clock 3514>, <&clock 3515>, + <&clock 3516>, <&clock 3517>, + <&clock 3518>, + <&clock 3600>, <&clock 3601>, + <&clock 3602>, <&clock 3603>; + + clock-names = + "aclk_xiu_llisfrx", + "aclk_axius_lli_be", "aclk_axius_lli_ll", + "axius_llisfrx_llill", "axius_llisfrx_llibe", + + "aclk_lli_ll_init", "aclk_lli_ll_target", + "aclk_lli_be_init", "aclk_lli_be_target", + "aclk_lli_svc_loc", "aclk_lli_svc_rem", + "user_phyclk_lli_tx0_symbol", + "user_phyclk_lli_rx0_symbol", + + /* Modem common */ + "aclk_xiu_modemx", "aclk_combo_phy_modem_pclk", + "sclk_phy_fsys0", "sclk_combo_phy_modem_26m"; + + #address-cells = <1>; + #size-cells = <1>; + ranges; + + mphy { + compatible = "samsung,exynos-mipi-lli-mphy"; + reg = <0x10F20000 0x4000>, + <0x10ED0000 0x200>; + has_pms; + }; + }; + + iommu-domain_lpass { + compatible = "samsung,exynos-iommu-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + domain-clients = <&lpass>; + + sysmmu_aud: sysmmu@0x114E0000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x114E0000 0x1000>; + interrupts = <0 88 0>; + pb-info { + pb@0 { + master_axi_id_list = <&lpass>; + }; + }; + }; + }; + + lpass: lpass@11400000 { + compatible = "samsung,exynos7420-lpass"; + #pb-id-cells = <0>; + reg = <0x11400000 0x100>, + <0x03000000 0x48000>, + <0x11500000 0x100>; + clocks = <&clock 400>, /* aclk_dmac */ + <&clock 401>, /* aclk_sramc */ + <&clock 406>, /* aclk_intr */ + <&clock 413>, /* pclk_timer */ + <&clock 1>, /* fin_pll */ + <&clock 41>, /* aud_pll */ + <&clock 471>, /* dout_sclk_aud_pll */ + <&clock 472>, /* mout_aud_pll_user_top */ + <&clock 440>, /* mout_aud_pll_user */ + <&clock 453>, /* dout_aud_cdclk */ + <&clock 442>, /* mout_sclk_i2s */ + <&clock 457>, /* dout_sclk_i2s */ + <&clock 473>, /* mout_aud_pll_top0 */ + <&clock 477>, /* mout_sclk_i2s1 */ + <&clock 482>; /* dout_sclk_i2s1 */ + clock-names = "dmac", "sramc", "intr", "timer", + "fin_pll", "fout_aud_pll", + "dout_sclk_aud_pll", "mout_aud_pll_user_top", + "mout_aud_pll_user", + "dout_aud_cdclk", "mout_sclk_i2s", "dout_sclk_i2s", + "mout_aud_pll_top0", "mout_sclk_i2s1", "dout_sclk_i2s1"; + samsung,power-domain = <&pd_aud>; + status = "ok"; + }; + + i2s0: i2s@11440000 { + compatible = "samsung,i2s-v5"; + reg = <0x11440000 0x100>; + dmas = <&adma 0 &adma 2>; + dma-names = "tx", "rx"; + interrupts = <0 70 0>; + clocks = <&clock 414>, /* pclk_i2s */ + <&clock 451>, /* dout_aclk_aud */ + <&clock 457>; /* dout_sclk_i2s */ + clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; + samsung,supports-6ch; + samsung,supports-rstclr; + samsung,supports-secdai; + samsung,supports-tdm; + samsung,supports-low-rfs; + samsung,lpass-subip; + /* samsung,tx-iommu; + samsung,tx-buf = <0x40000000>; + samsung,tx-size = <0x80000>; + samsung,rx-iommu; + samsung,rx-buf = <0x41000000>; + samsung,rx-size = <0x80000>;*/ + pinctrl-names = "default", "idle"; + pinctrl-0 = <&i2s0_bus>; + pinctrl-1 = <&i2s0_bus_idle>; + status = "disabled"; + i2s-sec { + dmas = <&adma 1>; + dma-names = "tx-sec"; + clocks = <&clock 414>, /* pclk_i2s */ + <&clock 451>, /* dout_aclk_aud */ + <&clock 457>; /* dout_sclk_i2s */ + clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; + samsung,tx-buf = <0x0303E000>; + samsung,tx-size = <0x8000>; + }; + }; + + i2s1: i2s@14D60000 { + compatible = "samsung,i2s-v5"; + reg = <0x14D60000 0x100>; + dmas = <&pdma0 31 &pdma0 30>; + dma-names = "tx", "rx"; + interrupts = <0 435 0>; + clocks = <&clock 462>, /* pclk_i2s1 */ + <&clock 462>, /* pclk_i2s1 */ + <&clock 482>; /* dout_sclk_i2s1 */ + clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; + samsung,supports-6ch; + samsung,supports-rstclr; + samsung,supports-tdm; + samsung,supports-low-rfs; + samsung,lpass-subip; + status = "disabled"; + }; + + pcm0: pcm@11450000 { + compatible = "samsung,pcm"; + reg = <0x11450000 0x100>; + dmas = <&adma 3 &adma 4>; + dma-names = "tx", "rx"; + interrupts = <0 71 0>; + clocks = <&clock 415>, /* pclk_pcm */ + <&clock 456>; /* dout_sclk_pcm */ + clock-names = "pcm", "sclk_pcm"; + samsung,lpass-subip; + status = "disabled"; + }; + + pcm1: pcm@14D80000 { + compatible = "samsung,pcm"; + reg = <0x14D80000 0x100>; + dmas = <&pdma0 28 &pdma0 27>; + dma-names = "tx", "rx"; + interrupts = <0 436 0>; + clocks = <&clock 461>, /* pclk_pcm1 */ + <&clock 481>; /* dout_sclk_pcm1 */ + clock-names = "pcm", "sclk_pcm"; + samsung,lpass-subip; + status = "disabled"; + }; + + spdif@14DB0000 { + compatible = "samsung,spdif"; + reg = <0x14DB0000 0x100>; + dmas = <&pdma0 29>; + dma-names = "tx"; + interrupts = <0 437 0>; + clocks = <&clock 460>, /* pclk_spdif */ + <&clock 480>; /* dout_sclk_spdif */ + clock-names = "spdif", "sclk_spdif"; + samsung,lpass-subip; + pinctrl-names = "default", "idle"; + pinctrl-0 = <&spdif_bus>; + pinctrl-1 = <&pcm1_bus>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7580-carmen2_battery.dtsi b/arch/arm64/boot/dts/exynos7580-carmen2_battery.dtsi new file mode 100644 index 000000000000..c00ab680fe4b --- /dev/null +++ b/arch/arm64/boot/dts/exynos7580-carmen2_battery.dtsi @@ -0,0 +1,178 @@ +/* + * SAMSUNG UNIVERSAL7580 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + battery { + status = "okay"; + compatible = "samsung,sec-battery"; + battery,vendor = "SDI SDI"; + battery,charger_name = "sec-charger"; + battery,fuelgauge_name = "sec-fuelgauge"; + battery,technology = <2>; /* POWER_SUPPLY_TECHNOLOGY_LION */ + /* .temp_cohot = -1000; */ + /* .temp_cocold = -4325; */ + + battery,chip_vendor = "LSI"; + battery,temp_adc_type = <1>; /* SEC_BATTERY_ADC_TYPE_AP */ + + battery,polling_time = <10 30 30 30 3600>; + battery,chg_temp_check = <1>; + + battery,temp_table_adc = <294 304 314 325 335 345 357 369 382 391 + 406 420 434 449 463 477 494 511 527 544 + 561 580 599 619 638 657 679 700 722 743 + 765 791 816 842 867 893 922 951 979 1008 + 1037 1070 1103 1136 1168 1201 1236 1272 1308 1344 + 1382 1408 1452 1495 1539 1583 1628 1670 1713 1757 + 1803 1843 1885 1937 1984 2031 2080 2120 2171 2218 + 2262 2309 2352 2404 2452 2497 2542 2593 2631 2680 + 2717 2765 2810 2856 2902 2948 2990 3031 3073 3114 + 3132 3156 3188 3219 3251 3282 3314 3343 3373 3402 + 3461 3485 3509 3534 3558 3582 3602 3622 3642 3662 3682>; + battery,temp_table_data = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100) (-110) (-120) (-130) (-140) (-150) (-160) (-170) (-180) (-190) (-200)>; + + battery,chg_temp_table_adc = <215 224 234 243 253 262 271 281 290 300 + 309 322 335 348 361 374 389 404 418 433 + 448 465 482 499 516 533 553 573 594 614 + 634 658 682 705 729 753 780 807 833 860 + 887 918 948 979 1009 1040 1076 1112 1147 1183 + 1219 1257 1295 1332 1370 1408 1448 1489 1529 1570 + 1610 1653 1696 1739 1782 1825 1869 1913 1957 2001 + 2045 2090 2134 2179 2223 2268 2310 2352 2395 2437 + 2479 2520 2561 2601 2642 2683 2720 2757 2793 2830 + 2867 2903 2939 2975 3011 3047 3077 3106 3136 3165 + 3195 3221 3247 3274 3300 3326 3348 3370 3392 3414 3436>; + battery,chg_temp_table_data = <900 890 880 870 860 850 840 830 820 810 + 800 790 780 770 760 750 740 730 720 710 + 700 690 680 670 660 650 640 630 620 610 + 600 590 580 570 560 550 540 530 520 510 + 500 490 480 470 460 450 440 430 420 410 + 400 390 380 370 360 350 340 330 320 310 + 300 290 280 270 260 250 240 230 220 210 + 200 190 180 170 160 150 140 130 120 110 + 100 90 80 70 60 50 40 30 20 10 + 0 (-10) (-20) (-30) (-40) (-50) (-60) (-70) (-80) (-90) + (-100) (-110) (-120) (-130) (-140) (-150) (-160) (-170) (-180) (-190) (-200)>; + + battery,input_current_limit = <1800 0 0 1000 460 900 1000 460 1000 0 820 1900 0 0 0 400 700 1300 300 1000 1500 0 1667 1000 80 1800>; + battery,fast_charging_current = <2100 0 0 1000 460 1200 1000 460 1200 0 1000 1600 0 0 0 400 700 1300 300 1000 1500 0 3150 1000 80 1800>; + battery,full_check_current_1st = <350 0 0 350 350 350 350 350 350 0 350 350 0 0 0 350 350 350 350 350 350 0 350 350 0 350>; + battery,full_check_current_2nd = <3000 0 0 3000 3000 3000 3000 3000 3000 0 3000 3000 0 0 0 3000 3000 3000 3000 3000 3000 0 3000 3000 3000 3000>; + + battery,adc_check_count = <5>; + + battery,cable_check_type = <4>; /* SEC_BATTERY_CABLE_CHECK_PSY */ + battery,cable_source_type = <1>; /* SEC_BATTERY_CABLE_SOURCE_EXTERNAL */ + battery,event_waiting_time = <600>; + battery,polling_type = <1>; /* SEC_BATTERY_MONITOR_ALARM */ + battery,monitor_initial_count = <0>; + + battery,battery_check_type = <5>; /* SEC_BATTERY_CHECK_CHARGER */ + battery,check_count = <0>; + battery,check_adc_max = <1440>; + battery,check_adc_min = <0>; + + battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */ + + battery,thermal_source = <2>; /* SEC_BATTERY_THERMAL_SOURCE_ADC */ + + battery,temp_check_type = <2>; /* _BATTERY_TEMP_CHECK_TEMP */ + battery,temp_check_count = <1>; + battery,temp_highlimit_threshold_event = <800>; + battery,temp_highlimit_recovery_event = <750>; + battery,temp_high_threshold_event = <700>; + battery,temp_high_recovery_event = <460>; + battery,temp_low_threshold_event = <(-30)>; + battery,temp_low_recovery_event = <0>; + battery,temp_highlimit_threshold_normal = <800>; + battery,temp_highlimit_recovery_normal = <750>; + battery,temp_high_threshold_normal = <600>; + battery,temp_high_recovery_normal = <460>; + battery,temp_low_threshold_normal = <(-50)>; + battery,temp_low_recovery_normal = <0>; + battery,temp_highlimit_threshold_lpm = <800>; + battery,temp_highlimit_recovery_lpm = <750>; + battery,temp_high_threshold_lpm = <600>; + battery,temp_high_recovery_lpm = <460>; + battery,temp_low_threshold_lpm = <(-50)>; + battery,temp_low_recovery_lpm = <0>; + battery,chg_high_temp = <1000>; + battery,chg_high_temp_recovery = <200>; + battery,full_check_type = <7>; /* SEC_BATTERY_FULLCHARGED_CHGPSY */ + battery,full_check_type_2nd = <3>; /* SEC_BATTERY_FULLCHARGED_TIME */ + battery,full_check_count = <1>; + battery,chg_gpio_full_check = <0>; + battery,chg_polarity_full_check = <1>; + + battery,chg_charging_limit_current = <2400>; + + /* SEC_BATTERY_FULL_CONDITION_SOC | + SEC_BATTERY_FULL_CONDITION_NOTIMEFULL | + SEC_BATTERY_FULL_CONDITION_VCELL */ + battery,full_condition_type = <13>; + battery,full_condition_soc = <97>; + battery,full_condition_vcell = <4350>; + + battery,recharge_check_count = <2>; + battery,recharge_condition_type = <4>; /* SEC_BATTERY_RECHARGE_CONDITION_VCELL */ + battery,recharge_condition_soc = <98>; + battery,recharge_condition_vcell = <4350>; + + battery,charging_total_time = <21600>; + battery,recharging_total_time = <5400>; + battery,charging_reset_time = <0>; + + battery,fake_capacity; + + io-channels = <&exynos_adc 1>, <&exynos_adc 2>; + io-channel-names = "adc-temp", "chg-adc-temp"; + #io-channel-cells = <2>; + io-channel-ranges; + }; + + i2c@13830000 { + status = "okay"; + s2mu003-fuelgauge@35 { + compatible = "samsung,s2mu003-fuelgauge"; + reg = <0x35>; + fuelgauge,fuel_alert_soc = <1>; + fuelgauge,capacity_max = <1000>; + fuelgauge,capacity_max_margin = <30>; + fuelgauge,capacity_min = <0>; + fuelgauge,capacity_calculation_type = <28>; + fuelgauge,repeated_fuelalert; + fuelgauge,type_str = "SDI"; + }; + + }; + + s2mu003-charger { + status = "disable"; + compatible = "samsung,s2mu003-charger"; + battery,is_750kHz_switching = <1>; + battery,is_fixed_switching = <1>; + battery,chg_gpio_en = <0>; + battery,chg_polarity_en = <0>; + battery,chg_gpio_status = <0>; + battery,chg_polarity_status = <0>; + battery,chg_float_voltage = <4400>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7580-modem-sh310ap.dtsi b/arch/arm64/boot/dts/exynos7580-modem-sh310ap.dtsi new file mode 100644 index 000000000000..4f94ef9ad99e --- /dev/null +++ b/arch/arm64/boot/dts/exynos7580-modem-sh310ap.dtsi @@ -0,0 +1,207 @@ +/* + * SAMSUNG SMDK7580 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/* modem_interface_driver: UMTS modem, 2G/3G/4G, Samsung Electronics SH310AP */ + +/ { + + mif_pdata { + status = "okay"; + + interrupts = <0 18 0>, <0 479 0>; + + mif,int_ap2cp_msg = <0>; + mif,int_ap2cp_wakeup = <1>; + mif,int_ap2cp_status = <2>; + mif,int_ap2cp_active = <3>; + + mif,irq_cp2ap_msg = <0>; + mif,irq_cp2ap_wakeup = <1>; + mif,irq_cp2ap_status = <2>; + mif,irq_cp2ap_perf_req = <3>; + mif,irq_cp2ap_active = <4>; + + mbx_ap2cp_msg = <0>; + mbx_cp2ap_msg = <1>; + mbx_ap2cp_wakeup = <2>; + mbx_cp2ap_wakeup = <3>; + mbx_ap2cp_status = <4>; + mbx_cp2ap_status = <5>; + mbx_ap2cp_active = <6>; + mbx_cp2ap_dvfsreq = <7>; + mbx_cp2ap_active = <9>; + mbx_ap2cp_lock_value = <31>; + mbx_ap2cp_sys_rev = <33>; + mbx_ap2cp_pmic_rev = <35>; + mbx_ap2cp_pkg_id = <37>; + + shmem,base = <0x90000000>; + shmem,ipc_offset = <0x8000000>; + shmem,ipc_size = <0x800000>; + shmem,dump_offset = <0x1000>; + + pinctrl-names = "default"; + pinctrl-0 = <&gpio_cp_reset>; + }; + + mif_pdata { + compatible = "sec_modem,modem_pdata"; + + mif,name = "sh310ap"; + mif,modem_net = <0>; + mif,modem_type = <9>; /* sh310ap */ + mif,modem_attr = <0x01>; /* LEGACY_COMMAND */ + mif,link_types = <0x80>; /* LINKDEV_SHMEM */ + mif,link_name = "SHMEM"; + mif,link_attrs = <0x39>; /* MEM_DUMP | MEM_BOOT | MEM_IPC */ + mif,use_handover = <0>; + mif,ipc_version = <50>; + + mif,num_iodevs = <11>; + iodevs { + io_device_0 { + iod,name = "umts_ipc0"; + iod,id = <245>; + iod,format = <0>; + iod,io_type = <0>; + iod,links = <0x80>; + iod,attrs = <0x82>; + iod,app = "RIL"; + iod,ul_num_buffers = <16>; + iod,ul_buffer_size = <4096>; + iod,dl_num_buffers = <16>; + iod,dl_buffer_size = <4096>; + }; + io_device_1 { + iod,name = "umts_rfs0"; + iod,id = <41>; + iod,format = <1>; + iod,io_type = <0>; + iod,links = <0x80>; + iod,attrs = <0x82>; + iod,app = "RFS"; + iod,ul_num_buffers = <32>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <32>; + iod,dl_buffer_size = <2048>; + }; + io_device_2 { + iod,name = "umts_router"; + iod,id = <21>; + iod,format = <1>; + iod,io_type = <0>; + iod,links = <0x80>; + iod,attrs = <0x82>; + iod,app = "Data Router"; + iod,ul_num_buffers = <16>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <16>; + iod,dl_buffer_size = <2048>; + }; + io_device_3 { + iod,name = "umts_dm0"; + iod,id = <81>; + iod,format = <1>; + iod,io_type = <0>; + iod,links = <0x80>; + iod,attrs = <0x82>; + iod,app = "DIAG"; + iod,ul_num_buffers = <4>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <128>; + iod,dl_buffer_size = <2048>; + }; + io_device_4 { + iod,name = "umts_loopback"; + iod,id = <82>; + iod,format = <1>; + iod,io_type = <0>; + iod,links = <0x80>; + iod,attrs = <0x82>; + iod,app = "LOOPBACK"; + iod,ul_num_buffers = <32>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <256>; + iod,dl_buffer_size = <2048>; + }; + io_device_5 { + iod,name = "rmnet0"; + iod,id = <1>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x80>; + iod,attrs = <0x82>; + iod,app = "NET"; + iod,ul_num_buffers = <32>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <256>; + iod,dl_buffer_size = <2048>; + }; + io_device_6 { + iod,name = "rmnet1"; + iod,id = <2>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x80>; + iod,attrs = <0x82>; + iod,app = "NET"; + iod,ul_num_buffers = <32>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <256>; + iod,dl_buffer_size = <2048>; + }; + io_device_7 { + iod,name = "rmnet2"; + iod,id = <3>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x80>; + iod,attrs = <0x82>; + iod,app = "NET"; + iod,ul_num_buffers = <32>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <256>; + iod,dl_buffer_size = <2048>; + }; + io_device_8 { + iod,name = "rmnet3"; + iod,id = <4>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x80>; + iod,attrs = <0x82>; + iod,app = "NET"; + iod,ul_num_buffers = <32>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <256>; + iod,dl_buffer_size = <2048>; + }; + io_device_9 { + iod,name = "multipdp"; + iod,id = <0>; + iod,format = <3>; + iod,io_type = <2>; + iod,links = <0x80>; + iod,attrs = <0x02>; + iod,app = "RIL"; + }; + io_device_10 { + iod,name = "umts_boot0"; + iod,id = <241>; + iod,format = <4>; + iod,io_type = <0>; + iod,links = <0x80>; + iod,attrs = <0x02>; + iod,app = "CBD"; + }; + }; /* end of iodevs */ + }; /* end of mif_pdata */ +}; diff --git a/arch/arm64/boot/dts/exynos7580-noc.dtsi b/arch/arm64/boot/dts/exynos7580-noc.dtsi new file mode 100644 index 000000000000..4f85a602d582 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7580-noc.dtsi @@ -0,0 +1,138 @@ +/* + * SAMSUNG EXYNOS7580 SoC device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * SAMSUNG EXYNOS7580 SoC device nodes are listed in this file. + * EXYNOS7420 based board files can include this file and provide + * values for board specfic bindings. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/ { + NOC_BE_GROUP1@10510100 { + /* NRT - Group1 */ + compatible = "samsung,exynos-noc"; + reg = <0x0 0x10510100 0x0 0x100>; + interrupts = <0 380 0>; + #address-cells = <1>; + #size-cells = <0>; + + /* Group-bit description */ + seq-bits = <0 8>; + sub-bits = <9 10>; + target-bits = <11 12>; + init-bits = <13 15>; + + /* Group detail bit rescription */ + faulten-bits = <0 0>; + errvld-bits = <0 0>; + errcld-bits = <0 0>; + errlog0-lock-bits = <0 0>; + errlog0-opc-bits = <1 4>; + errlog0-errcode-bits = <8 10>; + errlog0-len1-bits = <16 23>; + errlog0-format-bits = <31 31>; + errlog1-bits = <0 15>; + errlog2-bits = <0 0>; + errlog3-bits = <0 31>; + errlog4-bits = <0 3>; + errlog5-bits = <0 10>; + + /* init, target, subrage detail description */ + init-num = <8>; + target-num = <4>; + sub-num = <4>; + sub-array = <15>; + init-desc = "AUD", + "FSYS", + "G3D", + "IMEM", + "ISP_NRT", + "MFC", + "MSCL", + "SRV_MIF_D_NRT"; + target-desc = "BUS_D_0", + "BUS_D_2", + "DREX_NRT", + "SRV_MIF_D_NRT"; + sub-index = <8 16 20 21 22 23 24 32 40 48 56 72 88 104 124>; + sub-addr = <0x0 0x0 0x3000000 0x4000000 0x8000000 0x10000000 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x10510000>; + timeout { + #address-cells = <1>; + #size-cells = <1>; + timeout_cpu_s@0x10910100 { + nickname = "cpu-sfr-apb-timeout-path"; + reg = <0x10910100 0x100>; + enabled = <1>; + enable-bit = <0>; + }; + timeout_cpu_n@0x10910200 { + nickname = "cpu-noc-timeout-path"; + reg = <0x10910200 0x100>; + enabled = <1>; + enable-bit = <0>; + }; + timeout_apl_s@0x10810100 { + nickname = "apl-sfr-apb-timeout-path"; + reg = <0x10810100 0x100>; + enabled = <1>; + enable-bit = <0>; + }; + timeout_apl_n@0x10810200 { + nickname = "apl-noc-timeout-path"; + reg = <0x10810200 0x100>; + enabled = <1>; + enable-bit = <0>; + }; + }; + }; + + NOC_HRT_GROUP2@10500400 { + /* RT */ + compatible = "samsung,exynos-noc"; + reg = <0x0 0x10500400 0x0 0x100>; + interrupts = <0 381 0>; + #address-cells = <1>; + #size-cells = <0>; + + /* Group-bit description */ + seq-bits = <0 8>; + sub-bits = <0 0>; + target-bits = <9 9>; + init-bits = <10 21>; + + /* Group detail bit rescription */ + faulten-bits = <0 0>; + errvld-bits = <0 0>; + errcld-bits = <0 0>; + errlog0-lock-bits = <0 0>; + errlog0-opc-bits = <1 4>; + errlog0-errcode-bits = <8 10>; + errlog0-len1-bits = <16 23>; + errlog0-format-bits = <31 31>; + errlog1-bits = <0 20>; + errlog2-bits = <0 0>; + errlog3-bits = <0 31>; + errlog4-bits = <0 3>; + errlog5-bits = <0 10>; + + /* init, target, subrage detail description */ + init-num = <4>; + target-num = <2>; + sub-num = <2>; + sub-array = <3>; + init-desc = "DISP", + "ISP_RT", + "SRV_MIF_D_1"; + target-desc = "MEM_D_1", + "SRV_MIF_D_1"; + sub-index = <0 8 18>; + sub-addr = <0x0 0x0 0x10500000>; + }; + +}; diff --git a/arch/arm64/boot/dts/exynos7580-pinctrl.dtsi b/arch/arm64/boot/dts/exynos7580-pinctrl.dtsi new file mode 100644 index 000000000000..f3728c002bdf --- /dev/null +++ b/arch/arm64/boot/dts/exynos7580-pinctrl.dtsi @@ -0,0 +1,595 @@ +/* + * Samsung's Exynos7580 SoC pin-mux and pin-config device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * Samsung's Exynos7580 SoC pin-mux and pin-config options are listed as device + * tree nodes are listed in this file. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/ { + pinctrl@139B0000 { + gpa0: gpa0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <3>; + interrupt-parent = <&gic>; + interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, + <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>; + }; + + gpa1: gpa1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <3>; + interrupt-parent = <&gic>; + interrupts = <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, + <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; + }; + + gpa2: gpa2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpa3: gpa3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpa1_pull_up: gpa1-pull-up { + samsung,pins = "gpa1-5"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + gpa2_pull_up: gpa2-pull-up { + samsung,pins = "gpa2-5", "gpa2-4", "gpa2-2", "gpa2-1", "gpa2-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + gpa2_pull_up_univ: gpa2-pull-up-univ { + samsung,pins = "gpa2-7", "gpa2-5", "gpa2-1", "gpa2-0"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@110B0000 { + gpz0: gpz0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpz1: gpz1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpz2: gpz2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpz3: gpz3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + i2s_pmic_bus: i2s-pmic-bus { + samsung,pins = "gpz2-0", "gpz2-1", "gpz2-2", "gpz2-3", + "gpz2-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + + i2s_codec_clk: i2s-codec-clk { + samsung,pins = "gpz3-2"; + samsung,pin-function = <4>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@138E0000 { + gpc0: gpc0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + spi2_bus: spi2-bus { + samsung,pins = "gpc0-0", "gpc0-2", "gpc0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi2_cs_func: spi2-cs-func { + samsung,pins = "gpc0-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi2_cs: spi2-cs { + samsung,pins = "gpc0-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@13750000 { + gpr0: gpr0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpr1: gpr1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpr2: gpr2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpr3: gpr3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpr4: gpr4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + sd0_clk: sd0-clk { + samsung,pins = "gpr0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <2>; + }; + + sd0_cmd: sd0-cmd { + samsung,pins = "gpr0-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <2>; + }; + + sd0_rdqs: sd0-rdqs { + samsung,pins = "gpr0-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <2>; + }; + + sd0_qrdy: sd0-qrdy { + samsung,pins = "gpr0-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <1>; + samsung,pin-drv = <2>; + }; + + sd0_bus1: sd0-bus-width1 { + samsung,pins = "gpr1-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <2>; + }; + + sd0_bus4: sd0-bus-width4 { + samsung,pins = "gpr1-1", "gpr1-2", "gpr1-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <2>; + }; + + sd0_bus8: sd0-bus-width8 { + samsung,pins = "gpr1-4", "gpr1-5", "gpr1-6", "gpr1-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <2>; + }; + + sd1_clk: sd1-clk { + samsung,pins = "gpr2-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <4>; + }; + + sd1_cmd: sd1-cmd { + samsung,pins = "gpr2-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd1_bus1: sd1-bus-width1 { + samsung,pins = "gpr3-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd1_bus4: sd1-bus-width4 { + samsung,pins = "gpr3-1", "gpr3-2", "gpr3-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd1_bus8: sd1-bus-width8 { + samsung,pins = "gpr3-4", "gpr3-5", "gpr3-6", "gpr3-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <4>; + }; + + sd2_clk: sd2-clk { + samsung,pins = "gpr4-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <2>; + }; + + sd2_cmd: sd2-cmd { + samsung,pins = "gpr4-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <2>; + }; + + sd2_cd: sd2-cd { + samsung,pins = "gpr4-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <2>; + }; + + sd2_bus1: sd2-bus-width1 { + samsung,pins = "gpr4-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <2>; + }; + + sd2_bus4: sd2-bus-width4 { + samsung,pins = "gpr4-4", "gpr4-5", "gpr4-6"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <2>; + }; + + spi1_bus: spi1-bus { + samsung,pins = "gpb2-4", "gpb2-6", "gpb2-7"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi1_cs_func: spi1-cs-func { + samsung,pins = "gpb2-5"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi1_cs: spi1-cs { + samsung,pins = "gpb2-5"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi0_bus: spi0-bus { + samsung,pins = "gpb2-0", "gpb2-2", "gpb2-3"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi0_cs_func: spi0-cs-func { + samsung,pins = "gpb2-1"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + spi0_cs: spi0-cs { + samsung,pins = "gpb2-1"; + samsung,pin-function = <1>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@104E0000 { + gpm0: gpm0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + hs_i2c3_bus: hs-i2c3-bus { + samsung,pins = "gpm0-1", "gpm0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <2>; + }; + }; + + pinctrl@138C0000 { + gpc3: gpc3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + i2c_nfc_bus: i2c-nfc-bus { + samsung,pins = "gpc3-1", "gpc3-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@139C0000 { + gpb0: gpb0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpb1: gpb1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpb2: gpb2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc1: gpc1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc2: gpc2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpc5: gpc5 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd0: gpd0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd1: gpd1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd2: gpd2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpd3: gpd3 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpe0: gpe0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpe1: gpe1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf0: gpf0 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf1: gpf1 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + gpf2: gpf2 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + hs_i2c0_bus: hs-i2c0-bus { + samsung,pins = "gpc2-1", "gpc2-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + + hs_i2c1_bus: hs-i2c1-bus { + samsung,pins = "gpc2-3", "gpc2-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + hs_i2c2_bus: hs-i2c2-bus { + samsung,pins = "gpc2-5", "gpc2-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + i2c6_bus: i2c6-bus { + samsung,pins = "gpc5-1", "gpc5-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + i2c7_bus: i2c7-bus { + samsung,pins = "gpc5-3", "gpc5-2"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + + uart0_bus: uart0-bus { + samsung,pins = "gpb0-7", "gpb0-6", "gpb0-5", "gpb0-4"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + + uart1_bus: uart1-bus { + samsung,pins = "gpb0-3", "gpb0-2", "gpb0-1", "gpb0-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + + uart2_bus: uart2-bus { + samsung,pins = "gpb1-1", "gpb1-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <0>; + }; + + disp_teson: disp_teson { + samsung,pins = "gpe1-4"; + samsung,pin-function = <2>; + }; + + disp_tesoff: disp_tesoff { + samsung,pins = "gpe1-4"; + samsung,pin-function = <0>; + }; + }; + + pinctrl@138D0000 { + gpc4: gpc4 { + gpio-controller; + #gpio-cells = <2>; + + interrupt-controller; + #interrupt-cells = <2>; + }; + + i2c_touch_bus: i2c-touch-bus { + samsung,pins = "gpc4-1", "gpc4-0"; + samsung,pin-function = <2>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7580-smdk7580.dts b/arch/arm64/boot/dts/exynos7580-smdk7580.dts new file mode 100644 index 000000000000..f854bd51dfb7 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7580-smdk7580.dts @@ -0,0 +1,561 @@ +/* + * SAMSUNG SMDK7580 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/dts-v1/; +#include "exynos7580.dtsi" +#include "exynos7580-modem-sh310ap.dtsi" + +/ { + model = "Samsung SMDK7580 board based on EXYNOS7580"; + compatible = "samsung,exynos7580-smdk7580", "samsung,exynos7580"; + + chosen { + bootargs = "console=ttySAC1,115200n8 ess_setup=0x26000000"; + linux,initrd-start = <0x22000000>; + linux,initrd-end = <0x220FFFFF>; + }; + + fixed-rate-clocks { + oscclk { + compatible = "samsung,exynos7580-oscclk"; + clock-frequency = <26000000>; + }; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + mfc_nfw { + compatible = "exynos5433-ion,mfc_nfw"; + size = <0 0x100000>; + alignment = <0 0x1000>; + id = <12>; + }; + }; + + memory@20000000 { + device_type = "memory"; + reg = <0x0 0x20000000 0x0 0x80000000>; + }; + + dwmmc0@13540000 { + status = "okay"; + num-slots = <1>; + broken-cd; + bypass-smu; + fixed_volt; + clock-gate; + enable-cclk-on-suspend; + only_once_tune; + use-fine-tuning; + ignore-phase = <(1 << 7)>; + bypass-for-allpass; + supports-highspeed; + supports-hs200-mode; + /* supports-ddr200-mode; */ + enable-cache-control; + use-enable-shift; + qos_int_level = <200000>; + fifo-depth = <0x40>; + card-detect-delay = <200>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 2 1>; + samsung,dw-mshc-ddr-timing = <3 0 3 2>; + samsung,dw-mshc-hs200-timing = <3 0 3 1>; + samsung,dw-mshc-ddr200-timing = <1 0 2 2>; + samsung,dw-mshc-ddr200-delay-line = <118>; + clk_pin = "gpr0-0"; + clk_addr = "13750000.pinctrl"; + clk_val = <0x3>; + clk_str_num = <6>; + tp_mon_depth = <2>; + /* Byte/s, MIF clk, CPU clk, KFC clk*/ + tp_mon_table = <8000000 825000 800000 0 + 0 0 0 0>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_rdqs &sd0_bus1 &sd0_bus4 &sd0_bus8>; + slot@0 { + reg = <0>; + bus-width = <8>; + }; + }; + + dwmmc2@13560000 { + status = "okay"; + num-slots = <1>; + supports-highspeed; + enable-cclk-on-suspend; + cd-type = <1>; + bypass-smu; + use-fine-tuning; + clock-gate; + fifo-depth = <0x40>; + card-detect-delay = <200>; + qos_int_level = <468000>; + bypass-for-allpass; + fix-fmp-size-mismatch; + not-allow-single-dma; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 3 2>; + samsung,dw-mshc-ddr-timing = <3 0 2 1>; + clk_pin = "gpr4-0"; + clk_addr = "10E60000.pinctrl"; + clk_val = <0x2>; + clk_str_num = <6>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; + slot@0 { + reg = <0>; + bus-width = <4>; + disable-wp; + }; + }; + + ion { + compatible = "samsung,exynos5430-ion"; + }; + + i2c@13830000 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <400000>; + status = "okay"; + + s2801x: s2801x@7a { + compatible = "samsung,s2801x"; + reg = <0x7a>; + clocks = <&clock 154>, /* sclk_audmixer */ + <&clock 155>, /* sclk_audmixer_bclk0*/ + <&clock 156>, /* sclk_audmixer_bclk1 */ + <&clock 157>, /* sclk_audmixer_bclk2 */ + <&clock 152>, /* bclk_mi2s */ + <&clock 149>; /* dout_audmixer*/ + + clock-names = "audmixer_sysclk", "audmixer_bclk0", + "audmixer_bclk1", "audmixer_bclk2", + "mi2s_bclk", "audmixer_dout"; + sysreg-reset = <0x110F2000>; + sysreg-i2c = <0x110F3000>; + }; + }; + + i2s0: i2s@11040000 { + status = "okay"; + }; + + audio_cp_dummy: cp_dummy { + compatible = "samsung,cp_dummy"; + status = "okay"; + }; + + audio_bt_dummy: bt_dummy { + compatible = "samsung,bt_dummy"; + status = "okay"; + }; + + audio_codec_dummy: dummy-codec { + compatible = "samsung,dummy-codec"; + status = "okay"; + }; + + sound { + compatible = "samsung,smdk7580-cod3022x"; + samsung,audio-cpu = <&i2s0 /* primary */ + &i2s0 /* secondary */ + &audio_cp_dummy + &audio_bt_dummy>; + samsung,audio-codec = <&audio_codec_cod3022x + &audio_codec_cod3022x + &audio_codec_cod3022x + &audio_codec_dummy>; + samsung,auxdev = <&s2801x>; + status = "okay"; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&gpa1_pull_up>, <&gpa2_pull_up>; + + button@1 { + label = "gpio-keys: KEY_POWER"; + interrupt-parent = <&gpa1>; + linux,code = <116>; + gpios = <&gpa1 5 0xf>; + gpio-key,wakeup = <1>; + }; + button@2 { + label = "gpio-keys: KEY_VOLUMEDOWN"; + interrupt-parent = <&gpa2>; + linux,code = <114>; + gpios = <&gpa2 1 0xf>; + }; + button@3 { + label = "gpio-keys: KEY_VOLUMEUP"; + interrupt-parent = <&gpa2>; + linux,code = <115>; + gpios = <&gpa2 0 0xf>; + }; + button@4 { + label = "gpio-keys: KEY_HOME"; + interrupt-parent = <&gpa2>; + linux,code = <172>; + gpios = <&gpa2 5 0xf>; + gpio-key,wakeup = <1>; + }; + button@5 { + label = "gpio-keys: KEY_BACK"; + interrupt-parent = <&gpa2>; + linux,code = <158>; + gpios = <&gpa2 4 0xf>; + }; + button@6 { + label = "gpio-keys: KEY_MENU"; + interrupt-parent = <&gpa2>; + linux,code = <139>; + gpios = <&gpa2 2 0xf>; + }; + }; + + pinctrl@139B0000 { + attn_irq: attn-irq { + samsung,pins = "gpa0-3"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + attn_input: attn-input { + samsung,pins = "gpa0-3"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + muic_irq: muic-irq { + samsung,pins = "gpa1-0"; + samsung,pin-function = <0>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + }; + + i2c@13860000 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <400000>; + status = "okay"; + + touchscreen@20 { + compatible = "synaptics,rmi4"; + reg = <0x20>; + pinctrl-names = "on_state", "off_state"; + pinctrl-0 = <&attn_irq>; + pinctrl-1 = <&attn_input>; + synaptics,irq_gpio = <&gpa0 3 0>; + synaptics,irq_type = <8200>; + synaptics,max_coords = <1079 1919>; /* x y */ + synaptics,num_lines = <29 16>; /* rx tx */ + synaptics,regulator_dvdd = "tsp_io"; + synaptics,regulator_avdd = "tsp_avdd"; + synaptics,project_name = ""; + }; + }; + + decon_fb@14830000 { + /* XEINT7, GPIO & pin control */ + gpios = <&gpa0 7 0xf>; + psr_mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + disp-pll-clk = <284000000>; + status = "okay"; + }; + + dsim_0: dsim@14800000 { + lcd_info = <&s6e3fa0>; + /* lcd reset, power */ + gpios = <&gpd1 3 0x1>; + status = "okay"; + }; + + s6e3fa0: s6e3fa0_fhd { + mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + resolution = <1080 1920>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <1 1 1>; + timing,v-porch = <10 1 1>; + timing,dsi-hs-clk = <1100>; + timing,dsi-escape-clk = <20>; + }; + + pinctrl@139B0000 { + pmic_irq: pmic-irq { + samsung,pins = "gpa0-2"; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@139C0000 { + /* Warm reset information from AP */ + pm_wrsti: pm-wrsti { + samsung,pins = "gpd0-7"; + samsung,pin-con-pdn = <3>; + }; + }; + + hsi2c@104c0000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <2500000>; + samsung,hsi2c-batcher; + #address-cells = <1>; + #size-cells = <0>; + s2mpu03_pmic@66 { + compatible = "samsung,s2mpu03-pmic"; + reg = <0x66>; + ten-bit-address; + interrupts = <2 0 0>; + interrupt-parent = <&gpa0>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_irq &pm_wrsti>; + g3d_en = <1>; /* 1 : enable , 0 : disable */ + /* + buck4en_pin = "etc1-3"; + buck4en_addr = "1111111.pinctrl"; + */ + /* RTC: wtsr/smpl */ + wtsr_en = <1>; /* enable */ + smpl_en = <1>; /* enable */ + wtsr_timer_val = <3>; /* 1000ms */ + smpl_timer_val = <0>; /* 500ms */ + check_jigon = <0>; /* do not check jigon */ + /* RTC: If it's first boot, reset rtc to 1/1/2014 12:00:00(Wed) */ + init_time,sec = <0>; + init_time,min = <0>; + init_time,hour = <12>; + init_time,mday = <1>; + init_time,mon = <0>; + init_time,year = <114>; + init_time,wday = <3>; + + regulators { + buck1_reg: BUCK1 { + regulator-name = "cpu-cluster.1"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1400000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "cpu-cluster.0"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1400000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_intmif"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo1_reg: LDO1 { + regulator-name = "vdd_ldo1"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo3_reg: LDO3 { + regulator-name = "vdd_ldo3"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <2000000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo4_reg: LDO4 { + regulator-name = "vdd_ldo4"; + regulator-min-microvolt = <1075000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo5_reg: LDO5 { + regulator-name = "vdd_ldo5"; + regulator-min-microvolt = <1075000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo6_reg: LDO6 { + regulator-name = "vdd_ldo6"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1225000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo7_reg: LDO7 { + regulator-name = "vdd_ldo7"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <2000000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <2250000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo10_reg: LDO10 { + regulator-name = "vdd_ldo10"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo22_reg: LDO22 { + regulator-name = "codec_ldo22"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <2375000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo23_reg: LDO23 { + regulator-name = "codec_ldo23"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <2375000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <3>; + }; + + ldo30_reg: LDO30 { + regulator-name = "vdd_lcd3p0v"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo31_reg: LDO31 { + regulator-name = "vdd_lcd1p8v"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <2375000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo33_reg: LDO33 { + regulator-name = "tsp_io"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo36_reg: LDO36 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <2375000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + }; + }; + + audio_codec_cod3022x: cod3022x@04 { + compatible = "codec,cod3022x"; + reg = <0x04>; + ten-bit-address; + vdd1-supply = <&ldo22_reg>; + vdd2-supply = <&ldo23_reg>; + pinctrl-names = "default"; + pinctrl-0 = <&i2s_pmic_bus>; + }; + }; + + usb_notifier { + compatible = "samsung,usb-notifier"; + }; + + hsi2c@13870000 { + status = "okay"; + muic-s2mm001@25 { + compatible = "sec-muic,i2c"; + reg = <0x25>; + pinctrl-names = "default"; + muic,muic_int = <&gpa1 0 0>; + }; + }; + + pinctrl@138C0000 { + gpio_cp_reset: gpio_cp_reset { + samsung,pins = "gpc3-3"; + samsung,pin-con-pdn = <1>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/exynos7580-universal7580.dts b/arch/arm64/boot/dts/exynos7580-universal7580.dts new file mode 100644 index 000000000000..c58062584b49 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7580-universal7580.dts @@ -0,0 +1,610 @@ +/* + * SAMSUNG Universal7580 board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/dts-v1/; +#include "exynos7580.dtsi" + +/ { + model = "Samsung Universal7580 board based on EXYNOS7580"; + compatible = "samsung,exynos7580-universal7580", "samsung,exynos7580"; + + chosen { + bootargs = "console=ttySAC1,115200n8 ess_setup=0x26000000 pmic_info=0x02"; + linux,initrd-start = <0x22000000>; + linux,initrd-end = <0x220FFFFF>; + }; + + fixed-rate-clocks { + oscclk { + compatible = "samsung,exynos7580-oscclk"; + clock-frequency = <26000000>; + }; + }; + + memory@20000000 { + device_type = "memory"; + reg = <0x0 0x20000000 0x0 0x80000000>; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + mfc_nfw { + compatible = "exynos5433-ion,mfc_nfw"; + size = <0 0x100000>; + alignment = <0 0x1000>; + id = <12>; + }; + }; + + dwmmc0@13540000 { + status = "okay"; + num-slots = <1>; + broken-cd; + bypass-smu; + fixed_volt; + clock-gate; + enable-cclk-on-suspend; + only_once_tune; + use-fine-tuning; + ignore-phase = <(1 << 7)>; + bypass-for-allpass; + supports-highspeed; + supports-hs200-mode; + /* supports-ddr200-mode; */ + enable-cache-control; + use-enable-shift; + qos_int_level = <200000>; + fifo-depth = <0x40>; + card-detect-delay = <200>; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 2 1>; + samsung,dw-mshc-ddr-timing = <3 0 3 2>; + samsung,dw-mshc-hs200-timing = <3 0 3 1>; + samsung,dw-mshc-ddr200-timing = <1 0 2 2>; + samsung,dw-mshc-ddr200-delay-line = <118>; + clk_pin = "gpr0-0"; + clk_addr = "13750000.pinctrl"; + clk_val = <0x3>; + clk_str_num = <6>; + tp_mon_depth = <2>; + /* Byte/s, MIF clk, CPU clk, KFC clk*/ + tp_mon_table = <8000000 825000 800000 0 + 0 0 0 0>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_rdqs &sd0_bus1 &sd0_bus4 &sd0_bus8>; + slot@0 { + reg = <0>; + bus-width = <8>; + }; + }; + + dwmmc2@13560000 { + status = "okay"; + num-slots = <1>; + supports-highspeed; + enable-cclk-on-suspend; + cd-type = <1>; + bypass-smu; + use-fine-tuning; + clock-gate; + fifo-depth = <0x40>; + card-detect-delay = <200>; + qos_int_level = <468000>; + bypass-for-allpass; + fix-fmp-size-mismatch; + not-allow-single-dma; + samsung,dw-mshc-ciu-div = <3>; + samsung,dw-mshc-sdr-timing = <3 0 3 2>; + samsung,dw-mshc-ddr-timing = <3 0 2 1>; + clk_pin = "gpr4-0"; + clk_addr = "10E60000.pinctrl"; + clk_val = <0x2>; + clk_str_num = <6>; + num-ref-clks = <8>; + ciu_clkin = <25 50 50 100 200 100 200 400>; + pinctrl-names = "default"; + pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4 &dwmmc2_cd_ext_irq>; + gpio-controller; + #gpio-cells = <2>; + cd-gpio = <&gpa3 4 0xf>; + slot@0 { + reg = <0>; + bus-width = <4>; + disable-wp; + }; + }; + + gpio_keys{ + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&gpa2_pull_up_univ>; + + button@1 { + label = "gpio-keys: KEY_POWER"; + interrupt-parent = <&gpa2>; + linux,code = <116>; + gpios = <&gpa2 7 0xf>; + gpio-key,wakeup = <1>; + }; + button@2 { + label = "gpio-keys: KEY_VOLUMEDOWN"; + interrupt-parent = <&gpa2>; + linux,code = <114>; + gpios = <&gpa2 1 0xf>; + }; + button@3 { + label = "gpio-keys: KEY_VOLUMEUP"; + interrupt-parent = <&gpa2>; + linux,code = <115>; + gpios = <&gpa2 0 0xf>; + }; + button@4 { + label = "gpio-keys: KEY_HOME"; + interrupt-parent = <&gpa2>; + linux,code = <172>; + gpios = <&gpa2 5 0xf>; + gpio-key,wakeup = <1>; + }; + }; + + pinctrl@139B0000 { + attn_irq: attn-irq { + samsung,pins = "gpa3-2"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <0>; + samsung,pin-drv = <0>; + }; + attn_input: attn-input { + samsung,pins = "gpa3-2"; + samsung,pin-function = <0>; + samsung,pin-pud = <1>; + samsung,pin-drv = <0>; + }; + if_irq: if-irq { + samsung,pins = "gpa0-5"; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + dwmmc2_cd_ext_irq: dwmmc2_cd_ext_irq { + samsung,pins = "gpa3-4"; + samsung,pin-function = <0xf>; + samsung,pin-pud = <3>; + samsung,pin-drv = <0>; + }; + }; + + pinctrl@138D0000 { + i2c_pdn_off: i2c-pdn_off { + samsung,pins = "gpc4-1", "gpc4-0"; + samsung,pin-con-pdn = <2>; + samsung,pin-pud-pdn = <1>; + }; + }; + + i2c@13830000 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <400000>; + status = "okay"; + + s2801x: s2801x@7a { + compatible = "samsung,s2801x"; + reg = <0x7a>; + clocks = <&clock 154>, /* sclk_audmixer */ + <&clock 155>, /* sclk_audmixer_bclk0*/ + <&clock 156>, /* sclk_audmixer_bclk1 */ + <&clock 157>, /* sclk_audmixer_bclk2 */ + <&clock 152>, /* bclk_mi2s */ + <&clock 149>; /* dout_audmixer*/ + + clock-names = "audmixer_sysclk", "audmixer_bclk0", + "audmixer_bclk1", "audmixer_bclk2", + "mi2s_bclk", "audmixer_dout"; + sysreg-reset = <0x110F2000>; + sysreg-i2c = <0x110F3000>; + }; + }; + + i2c@13860000 { + samsung,i2c-sda-delay = <100>; + samsung,i2c-max-bus-freq = <400000>; + status = "okay"; + + touchscreen@20 { + compatible = "synaptics,rmi4"; + reg = <0x20>; + pinctrl-names = "on_state", "off_state"; + pinctrl-0 = <&attn_irq>; + pinctrl-1 = <&attn_input &i2c_pdn_off>; + synaptics,irq_gpio = <&gpa3 2 0>; + synaptics,irq_type = <8200>; + synaptics,max_coords = <1079 1919>; /* x y */ + synaptics,num_lines = <29 16>; /* rx tx */ + synaptics,regulator_dvdd = "lcd_tsp_vdd"; + synaptics,regulator_avdd = "tsp_avdd"; + synaptics,project_name = ""; + }; + }; + + ion { + compatible = "samsung,exynos5430-ion"; + }; + + decon_fb@14830000 { + /* XEINT7, GPIO & pin control */ + gpios = <&gpd0 7 0xf>; + psr_mode = <2>; /* 0: video mode, 1: DP command mode, 2: MIPI command mode */ + disp-pll-clk = <284000000>; + status = "okay"; + }; + + dsim_0: dsim@14800000 { + lcd_info = <&s6e3fa2>; + /* lcd reset, power */ + gpios = <&gpd1 3 0x1>, <&gpd1 1 0x1>; + lcd_vdd = "lcd_tsp_vdd"; + status = "okay"; + }; + + s6e3fa2: s6e3fa2_fhd { + mode = <2>; + resolution = <1080 1920>; + size = <70 121>; + timing,refresh = <60>; + timing,h-porch = <10 10 10>; + timing,v-porch = <4 3 1>; + timing,dsi-hs-clk = <1092>; + timing,dsi-escape-clk = <19>; + mic = <0>; + }; + + usb_notifier { + compatible = "samsung,usb-notifier"; + }; + + i2c@25 { + compatible = "i2c-gpio"; + gpios = <&gpz3 1 0 + &gpz3 0 0>; + i2c-gpio,delay-us = <5>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + muic-s2mm001@25 { + compatible = "sec-muic,i2c"; + reg = <0x25>; + pinctrl-names = "default"; + muic,muic_int = <&gpa1 3 0>; + gpios = <&gpd2 2 0>; + }; + }; + + pinctrl@139B0000 { + pmic_irq: pmic-irq { + samsung,pins = "gpa0-2"; + samsung,pin-pud = <3>; + samsung,pin-drv = <3>; + }; + }; + + pinctrl@138C0000 { + /* Warm reset information from AP */ + pm_wrsti: pm-wrsti { + samsung,pins = "gpc3-2"; + samsung,pin-con-pdn = <3>; + }; + }; + + hsi2c@104c0000 { + status = "okay"; + samsung,hs-mode; + clock-frequency = <2500000>; + samsung,hsi2c-batcher; + #address-cells = <1>; + #size-cells = <0>; + + audio_codec_cod3022x: cod3022x@04 { + compatible = "codec,cod3022x"; + reg = <0x04>; + ten-bit-address; + vdd1-supply = <&ldo22_reg>; + vdd2-supply = <&ldo23_reg>; + pinctrl-names = "default"; + pinctrl-0 = <&i2s_pmic_bus &i2s_codec_clk>; + }; + + s2mpu03_pmic@66 { + compatible = "samsung,s2mpu03-pmic"; + reg = <0x66>; + ten-bit-address; + interrupts = <2 0 0>; + interrupt-parent = <&gpa0>; + pinctrl-names = "default"; + pinctrl-0 = <&pmic_irq &pm_wrsti>; + g3d_en = <1>; /* 1 : enable , 0 : disable */ + /* + buck4en_pin = "etc1-3"; + buck4en_addr = "1111111.pinctrl"; + */ + /* RTC: wtsr/smpl */ + wtsr_en = <1>; /* enable */ + smpl_en = <1>; /* enable */ + wtsr_timer_val = <3>; /* 1000ms */ + smpl_timer_val = <0>; /* 500ms */ + check_jigon = <0>; /* do not check jigon */ + /* RTC: If it's first boot, reset rtc to 1/1/2014 12:00:00(Wed) */ + init_time,sec = <0>; + init_time,min = <0>; + init_time,hour = <12>; + init_time,mday = <1>; + init_time,mon = <0>; + init_time,year = <114>; + init_time,wday = <3>; + + regulators { + buck1_reg: BUCK1 { + regulator-name = "cpu-cluster.1"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1400000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck2_reg: BUCK2 { + regulator-name = "cpu-cluster.0"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1400000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck3_reg: BUCK3 { + regulator-name = "vdd_intmif"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + buck4_reg: BUCK4 { + regulator-name = "vdd_g3d"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1300000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo1_reg: LDO1 { + regulator-name = "vdd_ldo1"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1200000>; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo2_reg: LDO2 { + regulator-name = "vqmmc"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo3_reg: LDO3 { + regulator-name = "vdd_ldo3"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <2000000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo4_reg: LDO4 { + regulator-name = "vdd_ldo4"; + regulator-min-microvolt = <1075000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo5_reg: LDO5 { + regulator-name = "vdd_ldo5"; + regulator-min-microvolt = <1075000>; + regulator-max-microvolt = <1350000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <3>; + }; + + ldo6_reg: LDO6 { + regulator-name = "vdd_ldo6"; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <1225000>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <12000>; + regulator-initial-mode = <1>; + }; + + ldo7_reg: LDO7 { + regulator-name = "vdd_ldo7"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <2000000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo8_reg: LDO8 { + regulator-name = "vdd_ldo8"; + regulator-min-microvolt = <2250000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo10_reg: LDO10 { + regulator-name = "vdd_ldo10"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + ldo22_reg: LDO22 { + regulator-name = "codec_ldo22"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <2375000>; + regulator-initial-mode = <1>; + }; + + ldo23_reg: LDO23 { + regulator-name = "codec_ldo23"; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <2375000>; + regulator-initial-mode = <1>; + }; + + ldo33_reg: LDO33 { + regulator-name = "tsp_avdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3375000>; + regulator-always-on; + regulator-initial-mode = <1>; + }; + + }; + }; + }; + + lcd_tsp_vdd: gpio-regulator { + compatible = "regulator-fixed"; + + regulator-name = "lcd_tsp_vdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + gpio = <&gpd3 0 0x1>; + regulator-always-on; + + startup-delay-us = <100000>; + enable-active-high; + }; + + hsi2c@13890000 { + status = "okay"; + s2mu003@34 { + compatible = "samsung,s2mu003mfd"; + reg = <0x34>; + pinctrl-names = "default"; + pinctrl-0 = <&if_irq>; + s2mu003,irq-gpio = <&gpa0 5 0>; + + regulators { + s2mu003-buck1 { + regulator-name = "dcdc"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + regulator-boot-on; + }; + s2mu003-ldo1 { + regulator-name = "ldo1"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + regulator-boot-on; + }; + }; + + leds { + torch-gpio = <&gpe0 1 0>; + flash-gpio = <&gpe0 2 0>; + + status = "okay"; + s2mu003-leds1 { + ledname = "leds-sec1"; + id = <0>; + brightness = <0x17>; + timeout = <0x0>; + max-brightness = <0x15>; + }; + + s2mu003-leds2 { + ledname = "leds-sec2"; + id = <1>; + brightness = <0x02>; + timeout = <0x0>; + max-brightness = <0xf>; + }; + }; + }; + }; + + i2s0: i2s@11040000 { + status = "okay"; + }; + + audio_cp_dummy: cp_dummy { + compatible = "samsung,cp_dummy"; + status = "okay"; + }; + + audio_bt_dummy: bt_dummy { + compatible = "samsung,bt_dummy"; + status = "okay"; + }; + + audio_codec_dummy: dummy-codec { + compatible = "samsung,dummy-codec"; + status = "okay"; + }; + + sound { + compatible = "samsung,universal7580-cod3022x"; + samsung,audio-cpu = <&i2s0 /* primary */ + &i2s0 /* secondary */ + &audio_cp_dummy + &audio_bt_dummy>; + samsung,audio-codec = <&audio_codec_cod3022x + &audio_codec_cod3022x + &audio_codec_cod3022x + &audio_codec_dummy>; + samsung,auxdev = <&s2801x>; + gpios = <&gpf1 5 0x1>; + samsung,use-externel-jd; + clocks = <&clock 151>; /* sclk_i2s */ + clock-names = "codec_bclk"; + status = "okay"; + }; +}; + +#include "exynos7580-carmen2_battery.dtsi" diff --git a/arch/arm64/boot/dts/exynos7580.dtsi b/arch/arm64/boot/dts/exynos7580.dtsi new file mode 100644 index 000000000000..1bba0dec0286 --- /dev/null +++ b/arch/arm64/boot/dts/exynos7580.dtsi @@ -0,0 +1,1182 @@ +/* + * SAMSUNG EXYNOS7580 SoC device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * SAMSUNG EXYNOS7580 SoC device nodes are listed in this file. + * EXYNOS7580 based board files can include this file and provide + * values for board specfic bindings. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +/memreserve/ 0x9F700000 0x900000; /* EL3 monitor, secure intepreter */ +/memreserve/ 0x90000000 0x8800000; /* CP memory(128MB) + AP-CP shared memory(8MB) */ +#include +/include/ "exynos7580-pinctrl.dtsi" +/include/ "exynos7580-noc.dtsi" + +/ { + model = "Samsung Exynos7580"; + compatible = "samsung,exynos7580"; + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + + aliases { + decon0 = &decon_0; + dsim0 = &dsim_0; + hsi2c0 = &hsi2c_0; + hsi2c1 = &hsi2c_1; + hsi2c2 = &hsi2c_2; + hsi2c3 = &hsi2c_3; + mdev0 = &mdev_0; + mfc0 = &mfc_0; + mshc0 = &dwmmc_0; + mshc2 = &dwmmc_2; + pinctrl0 = &pinctrl_0; + pinctrl1 = &pinctrl_1; + pinctrl2 = &pinctrl_2; + pinctrl3 = &pinctrl_3; + pinctrl4 = &pinctrl_4; + pinctrl5 = &pinctrl_5; + pinctrl6 = &pinctrl_6; + pinctrl7 = &pinctrl_7; + scaler0 = &scaler_0; + scaler1 = &scaler_1; + uart0 = &serial_0; + uart1 = &serial_1; + uart2 = &serial_2; + tmuctrl0 = &tmuctrl_0; + tmuctrl1 = &tmuctrl_1; + jpeg0 = &jpeg_0; + tmuctrl2 = &tmuctrl_2; + }; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + + cpu@000 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x000>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + operating-points = < + /* khz uv */ + 1600000 1300000 + 1500000 1287500 + 1400000 1237500 + 1300000 1187500 + 1200000 1150000 + 1100000 1112500 + 1000000 1075000 + 900000 1037500 + 800000 1000000 + 700000 962500 + 600000 925000 + 500000 887500 + 400000 850000 + 300000 850000 + >; + clocks = <&clock 16>; + clock-names = "cpu-cluster.0"; + voltage-tolerance = <1>; /* 2 percentage */ + clock-latency = <100000>; + }; + cpu@001 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x001>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + cpu@002 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x002>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + cpu@003 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x003>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x100>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + operating-points = < + /* khz uv */ + 1600000 1300000 + 1500000 1287500 + 1400000 1237500 + 1300000 1187500 + 1200000 1150000 + 1100000 1112500 + 1000000 1075000 + 900000 1037500 + 800000 1000000 + 700000 962500 + 600000 925000 + 500000 887500 + 400000 850000 + 300000 850000 + >; + clocks = <&clock 17>; + clock-names = "cpu-cluster.1"; + voltage-tolerance = <1>; /* 2 percentage */ + clock-latency = <100000>; + }; + cpu@101 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x101>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + cpu@102 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x102>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + cpu@103 { + device_type = "cpu"; + compatible = "arm,cortex-a53", "arm,armv8"; + reg = <0x0 0x103>; + enable-method = "psci"; + cpu-idle-states = <&CPU_SLEEP_0 &CPU_SLEEP_1 &CPU_SLEEP_2 &CPU_SLEEP_3>; + }; + + idle-states { + entry-method = "arm,psci"; + + CPU_SLEEP_0: C1 { + compatible = "arm,idle-state"; + desc = "ARM clock gating (WFI)"; + entry-method-param = <0x0000000>; + exit-latency-us = <10>; + min-residency-us = <500>; + status = "enabled"; + }; + + CPU_SLEEP_1: C2 { + compatible = "arm,idle-state"; + desc = "ARM power down"; + entry-method-param = <0x0000000>; + exit-latency-us = <15000>; + min-residency-us = <210000>; + status = "enabled"; + }; + + CPU_SLEEP_2: CPD { + compatible = "arm,idle-state"; + desc = "Cluster power down"; + entry-method-param = <0x1000000>; + exit-latency-us = <30000>; + min-residency-us = <340000>; + status = "enabled"; + }; + + CPU_SLEEP_3: LPM { + compatible = "arm,idle-state"; + desc = "System power down"; + entry-method-param = <0x1000000>; + exit-latency-us = <35000>; + min-residency-us = <350000>; + status = "enabled"; + }; + }; + }; + + trace@16000000 { + compatible = "trace"; + reg = <0x0 0x16000000 0x0 0xc00000>; + #address-cells = <1>; + #size-cells = <1>; + + coresight@16000000 { + compatible = "exynos,coresight"; + reg = <0x16000000 0xc00000>; + #address-cells = <1>; + #size-cells = <0>; + css_pc@0 { + device_type = "cs"; + offset = <0x410000>; + }; + css_pc@1 { + device_type = "cs"; + offset = <0x510000>; + }; + css_pc@2 { + device_type = "cs"; + offset = <0x610000>; + }; + css_pc@3 { + device_type = "cs"; + offset = <0x710000>; + }; + css_pc@4 { + device_type = "cs"; + offset = <0x810000>; + }; + css_pc@5 { + device_type = "cs"; + offset = <0x910000>; + }; + css_pc@6 { + device_type = "cs"; + offset = <0xa10000>; + }; + css_pc@7 { + device_type = "cs"; + offset = <0xb10000>; + }; + etm_core@0 { + device_type = "etm"; + offset = <0x440000>; + funnel_port = <0x0>; + }; + etm_core@1 { + device_type = "etm"; + offset = <0x540000>; + funnel_port = <0x1>; + }; + etm_core@2 { + device_type = "etm"; + offset = <0x640000>; + funnel_port = <0x2>; + }; + etm_core@3 { + device_type = "etm"; + offset = <0x740000>; + funnel_port = <0x3>; + }; + etm_core@4 { + device_type = "etm"; + offset = <0x840000>; + funnel_port = <0x4>; + }; + etm_core@5 { + device_type = "etm"; + offset = <0x940000>; + funnel_port = <0x5>; + }; + etm_core@6 { + device_type = "etm"; + offset = <0xa40000>; + funnel_port = <0x6>; + }; + etm_core@7 { + device_type = "etm"; + offset = <0xb40000>; + funnel_port = <0x7>; + }; + funnel@0 { + device_type = "funnel"; + offset = <0x4000>; + }; + funnel@1 { + device_type = "funnel"; + offset = <0x9000>; + }; + etb { + device_type = "etb"; + offset = <0x1000>; + }; + }; + }; + + stm: stm@16005000 { + compatible = "arm,coresight-stm"; + reg = <0x0 0x16005000 0x0 0x1000>, + <0x0 0x109f0000 0x0 0x1000>, + <0x0 0x109e0000 0x0 0x100>; + + coresight-id = <9>; + coresight-name = "coresight-stm"; + coresight-nr-inports = <0>; + }; + + gic:interrupt-controller@10C00000 { + compatible = "arm,cortex-a15-gic"; + #interrupt-cells = <3>; + interrupt-controller; + reg = <0x0 0x10C01000 0x0 0x1000>, + <0x0 0x10C02000 0x0 0x1000>, + <0x0 0x10C04000 0x0 0x2000>, + <0x0 0x10C06000 0x0 0x2000>; + interrupts = <1 9 0xf04>; + }; + + psci { + compatible = "arm,psci"; + method = "smc"; + cpu_suspend = <0xC4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xC4000003>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <1 13 0xff01>, + <1 14 0xff01>, + <1 11 0xff01>, + <1 10 0xff01>; + clock-frequency = <26000000>; + use-clocksource-only; + use-physical-timer; + }; + + clock: clock-controller@0x10010000 { + compatible = "samsung,exynos7580-clock"; + reg = <0x0 0x10010000 0x0 0x1000>; + #clock-cells = <1>; + }; + + bus_int { + compatible = "samsung,exynos7-devfreq-int"; + + bus_type_int = <0>; + downdifferential= <20>; + + pm_qos_class = <4>; + upthreshold = <70>; + cal_qos_max = <00 400000>; + default_qos = <00 100000>; + initial_freq = <00 400000>; + polling_period = <0>; + }; + + bus_mif { + compatible = "samsung,exynos7-devfreq-mif"; + + bus_type_mif = <1>; + downthreshold = <60>; + + urgentthreshold = <80>; + idlethreshold = <50>; + + pm_qos_class = <5>; + upthreshold = <70>; + cal_qos_max = <00 825000>; + default_qos = <00 200000>; + initial_freq = <00 825000>; + polling_period = <0>; + }; + + bus_isp { + compatible = "samsung,exynos7-devfreq-isp"; + + pm_qos_class = <12>; + upthreshold = <95>; + cal_qos_max = <00 530000>; + default_qos = <00 200000>; + initial_freq = <00 200000>; + polling_period = <0>; + }; + + ppmu { + compatible = "samsung,exynos7580-ppmu"; + #address-cells = <2>; + #size-cells = <2>; + ranges; + + ppmu-int { + reg = <0x0 0x10480000 0x0 0x00000400>, + <0x0 0x10490000 0x0 0x00000400>; + }; + + ppmu-mif { + reg = <0x0 0x10470000 0x0 0x00000400>, + <0x0 0x10480000 0x0 0x00000400>, + <0x0 0x10490000 0x0 0x00000400>; + }; + + ppmu-total { + reg = <0x0 0x10470000 0x0 0x00000400>, + <0x0 0x10480000 0x0 0x00000400>, + <0x0 0x10490000 0x0 0x00000400>; + }; + }; + + mct@100B0000 { + compatible = "samsung,exynos4210-mct"; + reg = <0x0 0x100B0000 0x0 0x800>; + interrupt-controller; + #interrupt-cells = <1>; + interrupt-parent = <&mct_map>; + interrupts = <0>, <1>, <2>, <3>, + <4>, <5>, <6>, <7>, + <8>, <9>, <10>, <11>; + clocks = <&clock 1>, <&clock 109>; + clock-names = "fin_pll", "mct"; + use-clockevent-only; + mct_map: mct-map { + #interrupt-cells = <1>; + #address-cells = <0>; + #size-cells = <0>; + interrupt-map = <0 &gic 0 102 0>, + <1 &gic 0 103 0>, + <2 &gic 0 104 0>, + <3 &gic 0 105 0>, + <4 &gic 0 106 0>, + <5 &gic 0 107 0>, + <6 &gic 0 108 0>, + <7 &gic 0 109 0>, + <8 &gic 0 110 0>, + <9 &gic 0 111 0>, + <10 &gic 0 112 0>, + <11 &gic 0 113 0>; + }; + }; + + serial_0: uart@13800000 { + compatible = "samsung,exynos5430-uart"; + reg = <0x0 0x13800000 0x0 0x100>; + interrupts = <0 421 0>; + pinctrl-names = "default"; + pinctrl-0 = <&uart0_bus>; + clocks = <&clock 103>, <&clock 104>, <&clock 100>; + clock-names = "gate_pclk0", "gate_uart0", "sclk_uart0"; + }; + + serial_1: uart@13810000 { + compatible = "samsung,exynos5430-uart"; + reg = <0x0 0x13810000 0x0 0x100>; + interrupts = <0 422 0>; + pinctrl-names = "default"; + pinctrl-0 = <&uart1_bus>; + clocks = <&clock 105>, <&clock 106>, <&clock 101>; + clock-names = "gate_pclk1", "gate_uart1", "sclk_uart1"; + }; + + serial_2: uart@13820000 { + compatible = "samsung,exynos5430-uart"; + reg = <0x0 0x13820000 0x0 0x100>; + interrupts = <0 423 0>; + pinctrl-names = "default"; + pinctrl-0 = <&uart2_bus>; + clocks = <&clock 107>, <&clock 108>, <&clock 102>; + clock-names = "gate_pclk2", "gate_uart2", "sclk_uart2"; + }; + + tmuctrl_0: tmuctrl@10030000 { + compatible = "samsung,exynos7580-tmu"; + reg = <0x0 0x10030000 0x0 0x200>; + interrupts = <0 435 0>; + }; + + tmuctrl_1: tmuctrl@10060000 { + compatible = "samsung,exynos7580-tmu"; + reg = <0x0 0x10060000 0x0 0x200>; + interrupts = <0 114 0>; + }; + + scaler_0: scaler@12C00000 { + compatible = "samsung,exynos5-scaler"; + reg = <0x0 0x12C00000 0x0 0x1300>; + interrupts = <0 400 0>; + samsung,power-domain = <&spd_mscl0>; + #pb-id-cells = <0>; + clock-names = "gate", "gate2", "mux_user", "mux_src"; + clocks = <&clock GATE_ACLK_M2M_SCALER0>, <&clock GATE_PCLK_M2M_SCALER0>, + <&clock CLK_MOUT_ACLK_MSCL_400_USER>, <&clock CLK_ACLK_MFCMSCL_400>; + }; + + scaler_1: scaler@12C10000 { + compatible = "samsung,exynos5-scaler"; + reg = <0x0 0x12C10000 0x0 0x1300>; + interrupts = <0 401 0>; + samsung,power-domain = <&spd_mscl1>; + #pb-id-cells = <0>; + clock-names = "gate", "gate2", "mux_user", "mux_src"; + clocks = <&clock GATE_ACLK_M2M_SCALER1>, <&clock GATE_PCLK_M2M_SCALER1>, + <&clock CLK_MOUT_ACLK_MSCL_400_USER>, <&clock CLK_ACLK_MFCMSCL_400>; + }; + + tmuctrl_2: tmuctrl@10040000 { + compatible = "samsung,exynos7580-tmu"; + reg = <0x0 0x10040000 0x0 0x200>; + interrupts = <0 436 0>; + }; + + pinctrl_0: pinctrl@139B0000 { + compatible = "samsung,exynos7580-pinctrl"; + reg = <0x0 0x139B0000 0x0 0x1000>; + interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, + <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, + <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, + <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; + wakeup-interrupt-controller { + compatible = "samsung,exynos4210-wakeup-eint"; + interrupt-parent = <&gic>; + interrupts = <0 16 0>; + samsung,eint-flt-conf; + }; + }; + + pinctrl_1: pinctrl@110B0000 { + compatible = "samsung,exynos7580-pinctrl"; + reg = <0x0 0x110B0000 0x0 0x1000>; + interrupts = <0 68 0>; + }; + + pinctrl_2: pinctrl@138E0000 { + compatible = "samsung,exynos7580-pinctrl"; + reg = <0x0 0x138E0000 0x0 0x1000>; + interrupts = <0 438 0>; + }; + + pinctrl_3: pinctrl@13750000 { + compatible = "samsung,exynos7580-pinctrl"; + reg = <0x0 0x13750000 0x0 0x1000>; + interrupts = <0 250 0>; + }; + + pinctrl_4: pinctrl@104E0000 { + compatible = "samsung,exynos7580-pinctrl"; + reg = <0x0 0x104E0000 0x0 0x1000>; + interrupts = <0 385 0>; + }; + + pinctrl_5: pinctrl@138C0000 { + compatible = "samsung,exynos7580-pinctrl"; + reg = <0x0 0x138C0000 0x0 0x1000>; + interrupts = <0 115 0>; + }; + + pinctrl_6: pinctrl@139C0000 { + compatible = "samsung,exynos7580-pinctrl"; + reg = <0x0 0x139C0000 0x0 0x1000>; + interrupts = <0 440 0>; + }; + + pinctrl_7: pinctrl@138D0000 { + compatible = "samsung,exynos7580-pinctrl"; + reg = <0x0 0x138D0000 0x0 0x1000>; + interrupts = <0 116 0>; + }; + + i2c_0: i2c@13830000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x0 0x13830000 0x0 0x100>; + interrupts = <0 424 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c_nfc_bus>; + clocks = <&clock 130>, <&clock 130>; + clock-names = "rate_i2c", "gate_i2c"; + status = "disabled"; + }; + + i2c_1: i2c@13840000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x0 0x13840000 0x0 0x100>; + interrupts = <0 425 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c6_bus>; + clocks = <&clock 131>, <&clock 131>; + clock-names = "rate_i2c", "gate_i2c"; + status = "disabled"; + }; + + i2c_2: i2c@13850000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x0 0x13850000 0x0 0x100>; + interrupts = <0 426 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c7_bus>; + clocks = <&clock 132>, <&clock 132>; + clock-names = "rate_i2c", "gate_i2c"; + status = "disabled"; + }; + + i2c_3: i2c@13860000 { + compatible = "samsung,s3c2440-i2c"; + reg = <0x0 0x13860000 0x0 0x100>; + interrupts = <0 427 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c_touch_bus>; + clocks = <&clock 133>, <&clock 133>; + clock-names = "rate_i2c", "gate_i2c"; + status = "disabled"; + }; + + hsi2c_0: hsi2c@13870000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x0 0x13870000 0x0 0x1000>; + interrupts = <0 428 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c0_bus>; + clocks = <&clock 120>, <&clock 120>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_1: hsi2c@13880000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x0 0x13880000 0x0 0x1000>; + interrupts = <0 429 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c1_bus>; + clocks = <&clock 121>, <&clock 121>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_2: hsi2c@13890000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x0 0x13890000 0x0 0x1000>; + interrupts = <0 430 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c2_bus>; + clocks = <&clock 122>, <&clock 122>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + hsi2c_3: hsi2c@104c0000 { + compatible = "samsung,exynos5-hsi2c"; + samsung,check-transdone-int; + reg = <0x0 0x104c0000 0x0 0x2000>, <0x0 0x104b0180 0x0 0x100>; + interrupts = <0 384 0>, <0 394 0>; + #address-cells = <1>; + #size-cells = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&hs_i2c3_bus>; + clocks = <&clock 123>, <&clock 123>; + clock-names = "rate_hsi2c", "gate_hsi2c"; + status = "disabled"; + }; + + dwmmc_0: dwmmc0@13540000 { + compatible = "samsung,exynos7580-dw-mshc"; + reg = <0x0 0x13540000 0x0 0x2000>; + interrupts = <0 245 0>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 202>, <&clock 208>, <&clock 211>, <&clock 212>; + clock-names = "biu", "gate_ciu", "dout_mmc_a", "dout_mmc_b"; + status = "disabled"; + }; + + dwmmc_2: dwmmc2@13560000 { + compatible = "samsung,exynos7580-dw-mshc"; + reg = <0x0 0x13560000 0x0 0x2000>; + interrupts = <0 247 0>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&clock 204>, <&clock 210>, <&clock 215>, <&clock 216>; + clock-names = "biu", "gate_ciu", "dout_mmc_a", "dout_mmc_b"; + status = "disabled"; + }; + + rtc@101E0000 { + compatible = "samsung,s3c6410-rtc"; + reg = <0x0 0x101E0000 0x0 0x100>; + interrupts = <0 92 0>, <0 93 0>; + clocks = <&clock 1020>; + clock-names = "gate_rtc"; + status = "disabled"; + }; + + watchdog@101B0000 { + compatible = "samsung,s3c2410-wdt"; + reg = <0x0 0x101B0000 0x0 0x100>; + interrupts = <0 100 0>; + clocks = <&clock 1030>, <&clock 1030>; + clock-names = "rate_watchdog", "gate_watchdog"; + timeout-sec = <30>; + pmu_wdt_reset_type = <1>; + }; + + usb@13580000 { + compatible = "samsung,exynos_udc"; + reg = <0x0 0x13580000 0x0 0x1000>; + interrupts = <0 238 0>; + clocks = <&clock 300>, <&clock 301>, <&clock 302>, + <&clock 303>, <&clock 306>, <&clock 307>; + clock-names = "otg_aclk", "otg_hclk", "upsizer_otg", + "xiu_d_fsys1", "upsizer_fsys1", "upsizer_ahb_usbhs"; + usb-phy = <&usb2_phy>; + }; + + usb2_phy: usb2phy@135c0000 { + #address-cells = <2>; + #size-cells = <2>; + compatible = "samsung,exynos7580-dwc-usb2phy"; + reg = <0x0 0x135c0000 0x0 0x100>; + clocks = <&clock 2>, <&clock 403>, <&clock 300>, <&clock 301>, + <&clock 302>, <&clock 303>, <&clock 306>, <&clock 307>; + clock-names = "usb_pll", "phy_otg", "otg_aclk", "otg_hclk", + "upsizer_otg", "xiu_d_fsys1", "upsizer_fsys1", "upsizer_ahb_usbhs"; + ranges; + + usbphy-sys { + reg = <0x0 0x10460738 0x0 0xC>, + <0x0 0x13721020 0x0 0xC>; + }; + }; + + amba { + #address-cells = <2>; + #size-cells = <2>; + compatible = "arm,amba-bus"; + interrupt-parent = <&gic>; + ranges; + + pdma0: pdma0@13650000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x0 0x13650000 0x0 0x1000>; + interrupts = <0 228 0>; + clocks = <&clock 200>; + clock-names = "apb_pclk"; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <32>; + }; + + pdma1: pdma1@13660000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x0 0x13660000 0x0 0x1000>; + interrupts = <0 229 0>; + clocks = <&clock 201>; + clock-names = "apb_pclk"; + #dma-cells = <1>; + #dma-channels = <4>; + #dma-requests = <32>; + }; + + adma: adma@11020000 { + compatible = "arm,pl330", "arm,primecell"; + reg = <0x0 0x11020000 0x0 0x1000>; + interrupts = <0 73 0>; + clocks = <&clock 140>; + clock-names = "apb_pclk"; + #dma-cells = <1>; + #dma-channels = <6>; + #dma-requests = <16>; + #dma-mcode-addr = <0x03009000>; + }; + }; + + exynos_adc: adc@13900000 { + compatible = "samsung,exynos-adc-v2"; + reg = <0x0 0x13900000 0x0 0x100>; + interrupts = <0 439 0>; + #io-channel-cells = <1>; + io-channel-ranges; + clocks = <&clock 1032>; + clock-names = "gate_adcif"; + }; + + spi_0: spi@13910000 { + compatible = "samsung,exynos758x-spi"; + reg = <0x0 0x13910000 0x0 0x100>; + interrupts = <0 432 0>; + dma-mode; + dmas = <&pdma0 9 + &pdma0 8>; + dma-names = "tx", "rx"; + swap-mode; + clocks = <&clock 90>, <&clock 80>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names = "default"; + pinctrl-0 = <&spi0_bus>; + status = "disabled"; + }; + + spi_1: spi@13920000 { + compatible = "samsung,exynos758x-spi"; + reg = <0x0 0x13920000 0x0 0x100>; + interrupts = <0 433 0>; + dma-mode; + dmas = <&pdma0 11 + &pdma0 10>; + dma-names = "tx", "rx"; + swap-mode; + clocks = <&clock 91>, <&clock 81>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names = "default"; + pinctrl-0 = <&spi1_bus>; + status = "disabled"; + }; + + spi_2: spi@13930000 { + compatible = "samsung,exynos758x-spi"; + reg = <0x0 0x13930000 0x0 0x100>; + interrupts = <0 434 0>; + dma-mode; + dmas = <&pdma0 13 + &pdma0 12>; + dma-names = "tx", "rx"; + swap-mode; + clocks = <&clock 92>, <&clock 82>; + clock-names = "spi", "spi_busclk0"; + pinctrl-names = "default"; + pinctrl-0 = <&spi2_bus>; + status = "disabled"; + }; + + low-power-mode { + compatible = "samsung,low-power-mode"; + /* G3D, DISP, MFCMSCL */ + lpc-reg = <0x10464064>, <0x10464084>, <0x10464184>; + lpc-val = <0xF>, <0xF>, <0xF>; + /* G3D, DISP, MFCMSCL */ + lpm-reg = <0x10464064>, <0x10464084>, <0x10464184>; + lpm-val = <0xF>, <0xF>, <0xF>; + }; + + sec_pwm: pwm@13970000 { + compatible = "samsung,s3c6400-pwm"; + reg = <0x0 0x13970000 0x0 0x1000>; + #pwm-cells = <3>; + clocks = <&clock 1031>, + <&clock_pwm 1>, <&clock_pwm 2>, + <&clock_pwm 5>, <&clock_pwm 6>, + <&clock_pwm 7>, <&clock_pwm 8>, + <&clock_pwm 10>, <&clock_pwm 11>, + <&clock_pwm 12>, <&clock_pwm 13>; + clock-names = "gate_timers", + "pwm-scaler0", "pwm-scaler1", + "pwm-tdiv0", "pwm-tdiv1", + "pwm-tdiv2", "pwm-tdiv3", + "pwm-tin0", "pwm-tin1", + "pwm-tin2", "pwm-tin3"; + status = "ok"; + }; + + lpass: lpass@11000000 { + compatible = "samsung,exynos7580-lpass"; + reg = <0x0 0x11000000 0x0 0x100>, + <0x0 0x03000000 0x0 0xa000>; + clocks = <&clock 140>, /* lpass_dmac */ + <&clock 18>, /* aud_pll */ + <&clock 1>, /* fin_pll */ + <&clock 141>, /* mout_aud_pll_user */ + <&clock 142>, /* mout_sclk_mi2s */ + <&clock 143>, /* mout_sclk_pcm */ + <&clock 144>, /* lpass_mem */ + <&clock 145>, /* dout_sclk_133 */ + <&clock 146>, /* dout_sclk_mi2s */ + <&clock 149>; /* dout_audmixer*/ + + clock-names = "dmac", + "fout_aud_pll", "fin_pll", "mout_aud_pll_user", + "mout_sclk_mi2s", "mout_sclk_pcm", "sramc", + "dout_sclk_133", "dout_sclk_mi2s", "audmixer_dout" ; + }; + + i2s0: i2s@11040000 { + compatible = "samsung,i2s-v5"; + reg = <0x0 0x11040000 0x0 0x100>; + dmas = <&adma 0 + &adma 2>; + dma-names = "tx", "rx"; + interrupts = <0 69 0>; + clocks = <&clock 151>, /* sclk_i2s */ + <&clock 151>, /* sclk_i2s */ + <&clock 151>; /* sclk_i2s */ + clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; + samsung,supports-6ch; + samsung,supports-rstclr; + samsung,supports-secdai; + samsung,supports-tdm; + samsung,supports-low-rfs; + samsung,lpass-subip; + status = "disabled"; + i2s-sec { + dmas = <&adma 1>; + dma-names = "tx-sec"; + clocks = <&clock 151>, /* sclk_mi2s */ + <&clock 151>, /* sclk_mi2s */ + <&clock 151>; /* sclk_mi2s */ + clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; + samsung,tx-buf = <0x03000000>; + samsung,tx-size = <0x9000>; + }; + }; + + clock_pwm: pwm-clock-controller@13970000 { + compatible = "samsung,exynos-pwm-clock"; + reg = <0x0 0x13970000 0x0 0x50>; + #clock-cells = <1>; + }; + + mali@0x11400000 { + compatible = "arm,mali"; + reg = <0x0 0x11400000 0x0 0x5000>; + interrupts = <0 282 0>, <0 283 0>, <0 281 0>; + interrupt-names = "JOB", "MMU", "GPU"; + clocks = <&clock 1>, <&clock 10>, <&clock 160>, + <&clock 161>, <&clock 162>, <&clock 163>; + clock-names = "fin_pll", "fout_g3d_pll", "aclk_g3d", + "mout_g3d", "dout_aclk_g3d", "aclk_g3d_400"; + samsung,power-domain = <&pd_g3d>; + }; + + decon_0: decon_fb@14830000 { + compatible = "samsung,exynos5-decon_driver"; + reg = <0x0 0x14830000 0x0 0x8000>; + #pb-id-cells = <0>; + samsung,power-domain = <&pd_disp>; + + /* int_0: fifo_irq, int_1: cmd_mode_irq, int_2: frame_done_irq */ + interrupts = <0 203 0>, <0 201 0>, <0 202 0>; + + /* clock define for decon */ + clocks = <&clock 11>, /* disp_pll */ + <&clock CLK_DIV_PCLK_DISP_100>, /* d_pclk_disp */ + <&clock CLK_PCLK_DECON_INT>, /* pclk_decon0 */ + <&clock CLK_ACLK_DECON0>, /* aclk_decon0 */ + <&clock CLK_MUX_SCLK_DECON_INT_ECLK>, /* m_decon0_eclk */ + <&clock CLK_DIV_SCLK_DECON_INT_ECLK>, /* d_decon0_eclk */ + <&clock CLK_SCLK_DECON_INT_ECLK>, /* decon0_eclk */ + <&clock CLK_MUX_SCLK_DECON_INT_VCLK>, /* m_decon0_vclk */ + <&clock CLK_DIV_SCLK_DECON_INT_VCLK>, /* d_decon0_vclk */ + <&clock CLK_SCLK_DECON_INT_VCLK>, /* decon0_vclk */ + <&clock CLK_ACLK_XIU_DISP1>, /* aclk_disp */ + <&clock 19>, /* mif_pll */ + <&clock CLK_MUX_SCLK_DECON_INT_ECLK_USER>, /* m_eclk_user */ + <&clock CLK_MUX_SCLK_DISP_DECON_INT_ECLK_A>, /* m_eclk_user_a */ + <&clock CLK_MUX_BUS_PLL_TOP_USER>, /* m_bus_pll_top_user */ + <&clock CLK_DIV_SCLK_DISP_DECON_INT_ECLK>, /* d_sclk_decon0_eclk */ + <&clock CLK_DIV_ACLK_DISP_200>; /* aclk_disp_200 */ + + clock-names = /* display dedicated PLL for core and pixel clock */ + "disp_pll", + /* pclk: bus clock, aclk: DMA operation clock and SFR access */ + "d_pclk_disp", "pclk_decon0", "aclk_decon0", + /* eclk: decon core clock */ + "m_decon0_eclk", "d_decon0_eclk", "decon0_eclk", + /* vclk: pixel clock */ + "m_decon0_vclk", "d_decon0_vclk", "decon0_vclk", + /* aclk_xiu_disp_rw */ + "aclk_disp", + "mif_pll", + "m_eclk_user", + "m_eclk_user_a", + "m_bus_pll_top_user", + "d_sclk_decon0_eclk", + "aclk_disp_200"; + + ip_ver = <4>; + max_win = <3>; + n_sink_pad = <3>; + n_src_pad = <1>; + default_win = <0>; + trig_mode = <0>; /* 0: hw trigger, 1: sw trigger */ + dsi_mode = <0>; /* 0: single dsi, 1: dual dsi */ + + status = "disabled"; + }; + + mdev_0: mdev_output { + compatible = "samsung,exynos5-mdev"; + }; + + dsim_0: dsim@14800000 { + compatible = "samsung,exynos5-mipi-dsi"; + reg = <0x0 0x14800000 0x0 0x1000>; + interrupts = <0 207 0>; + samsung,power-domain = <&pd_disp>; + + status = "disabled"; + + clocks = <&clock CLK_PCLK_DSI_LINK0>, + <&clock CLK_PHYCLK_RXCLKESC0>, + <&clock CLK_PHYCLK_BITCLKDIV8>, + <&clock CLK_SCLK_DSI_LINK0_I_RGB_VCLK>, + <&clock CLK_PCLK_DECON_INT>; + + clock-names = "pclk_dsim0", "mipi0_rx", "mipi0_bit", + /* rgb data from decon-int to dsim */ + "rgb_vclk0", + /* pclk_ahb2apb_disp0p -> pclk_cp_disp */ + "pclk_disp"; + + pinctrl-names = "turnon_tes", "turnoff_tes"; + pinctrl-0 = <&disp_teson>; + pinctrl-1 = <&disp_tesoff>; + + /* number of data lanes in use */ + data_lane_cnt = <4>; + }; + + iommu-domain_disp { + compatible = "samsung,exynos-iommu-bus"; + #address-cells = <2>; + #size-cells = <2>; + ranges; + + domain-clients = <&decon_0>; + + sysmmu_disp_mmu: sysmmu@14860000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x0 0x14860000 0x0 0x1000>; + interrupts = <0 192 0>; + clocks = <&clock CLK_ACLK_SMMU_DISP_MMU>, + <&clock CLK_PCLK_SMMU_DISP_MMU>; + clock-names = "aclk", "pclk"; + + pb-info { + pb@0 { + master_axi_id_list = <&decon_0>; + }; + }; + }; + }; + + iommu-domain_mscl { + compatible = "samsung,exynos-iommu-bus"; + #address-cells = <2>; + #size-cells = <2>; + ranges; + + domain-clients = <&scaler_0>, <&scaler_1>, <&mfc_0>, <&jpeg_0>; + + sysmmu_mscl_mmu: sysmmu@12C90000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x0 0x12C90000 0x0 0x1000>; + interrupts = <0 402 0>; + clocks = <&clock CLK_ACLK_SMMU_MSCL_MMU>, + <&clock CLK_PCLK_SMMU_MSCL_MMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&scaler_0>; + }; + pb@1 { + master_axi_id_list = <&scaler_1>; + }; + pb@2 { + master_axi_id_list = <&jpeg_0>; + }; + }; + }; + + sysmmu_mfc_mmu: sysmmu@12840000 { + compatible = "samsung,exynos7420-sysmmu"; + reg = <0x0 0x12840000 0x0 0x1000>; + interrupts = <0 352 0>; + clocks = <&clock CLK_ACLK_SMMU_MFC_MMU>, + <&clock CLK_PCLK_SMMU_MFC_MMU>; + clock-names = "aclk", "pclk"; + pb-info { + pb@0 { + master_axi_id_list = <&mfc_0>; + }; + }; + }; + }; + + mailbox: mcu_ipc@104B0000 { + compatible = "samsung,exynos7580-mailbox"; + reg = <0x0 0x104B0000 0x0 0x0180>; + mcu,name = "mcu_ipc"; + mcu,id = <1>; + interrupts = <0 383 0 >; + }; + + pd_g3d: pd-g3d@10464060 { + compatible = "samsung,exynos-pd"; + reg = <0x0 0x10464060 0x0 0x20>; + pd-option = <0x1>; + }; + + pd_mfcmscl: pd-mfcmscl@10464180 { + compatible = "samsung,exynos-pd"; + reg = <0x0 0x10464180 0x0 0x20>; + pd-option = <0x2>; + spd_mfc: spd-mfc@10464180 { + compatible = "samsung,exynos-spd"; + }; + spd_mscl0: spd-mscl0@10464180 { + compatible = "samsung,exynos-spd"; + }; + spd_mscl1: spd-mscl1@10464180 { + compatible = "samsung,exynos-spd"; + }; + spd_jpeg: spd-jpeg@10464180 { + compatible = "samsung,exynos-spd"; + }; + }; + + pd_aud: pd-aud@104640C0 { + compatible = "samsung,exynos-pd"; + reg = <0x0 0x104640C0 0x0 0x20>; + pd-option = <0x2>; + status = "disabled"; + }; + + pd_disp: pd-disp@10464080 { + compatible = "samsung,exynos-pd"; + reg = <0x0 0x10464080 0x0 0x20>; + pd-option = <0x2>; + }; + + pd_isp: pd-isp@10464140 { + compatible = "samsung,exynos-pd"; + reg = <0x0 0x10464140 0x0 0x20>; + pd-option = <0x2>; + status = "disabled"; + }; + + mfc_0: mfc0@12800000 { + compatible = "samsung,mfc-v6"; + reg = <0x0 0x12800000 0x0 0x10000>; + interrupts = <0 354 0>; + samsung,power-domain = <&spd_mfc>; + #pb-id-cells = <0>; + + clock-names = "aclk_mfc", "aclk_mfcmscl_266", "mout_aclk_mfc_266_user", + "dout_aclk_mfcmscl_266"; + clocks = <&clock CLK_ACLK_MFC>, <&clock CLK_ACLK_MFCMSCL_266>, <&clock CLK_MOUT_ACLK_MFC_266_USER>, + <&clock CLK_DOUT_ACLK_MFCMSCL_266>; + status = "ok"; + ip_ver = <12>; + clock_rate = <266000000>; + min_rate = <100000>; + }; + + jpeg_0: jpeg@12C20000 { + compatible = "samsung,jpeg-hx2"; + reg = <0x0 0x12C20000 0x0 0x1000>; + interrupts = <0 404 0>; + samsung,power-domain = <&spd_jpeg>; + #pb-id-cells = <0>; + clock-names = "jpeg", "mout_aclk_mscl_400_user", "aclk_mfcmscl_400"; + clocks = <&clock CLK_ACLK_JPEG>, <&clock CLK_MOUT_ACLK_MSCL_400_USER>, + <&clock CLK_ACLK_MFCMSCL_400>; + ip_ver = <2>; + }; +}; diff --git a/arch/arm64/boot/dts/modem-ss333-kor-pdata.dtsi b/arch/arm64/boot/dts/modem-ss333-kor-pdata.dtsi new file mode 100644 index 000000000000..6b246d0db6de --- /dev/null +++ b/arch/arm64/boot/dts/modem-ss333-kor-pdata.dtsi @@ -0,0 +1,254 @@ +/* + * SAMSUNG universal5422 board device tree source + * + * Copyright (c) 2013 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +/* modem_interface_driver: UMTS modem, 2G/3G/4G, Samsung Electronics Shannon333 (SS333) */ + +/ { + mif_pdata { + compatible = "sec_modem,modem_pdata"; + + mif,name = "ss333"; + mif,modem_net = <0>; + mif,modem_type = <15>; + mif,use_handover = <0>; + mif,ipc_version = <50>; + mif,link_types = <0x408>; /* LINKDEV_LLI | LINKDEV_SPI */ + mif,link_name = "lli"; + mif,link_attrs = <0x3C9>; /* DUMP_ALIGNED (0x200) | BOOT_ALIGNED (0x100) | MEM_DUMP (0x80) | MEM_BOOT (0x40) | DPRAM_MAGIC (0x08) | SBD_IPC (0x01) */ + + mif,num_iodevs = <18>; + iodevs { + io_device_0 { + iod,name = "umts_ipc0"; + iod,id = <235>; + iod,format = <0>; + iod,io_type = <0>; + iod,links = <0x400>; + iod,attrs = <0x82>; /* ATTR_SBD_IPC | ATTR_SIPC5 */ + iod,app = "RIL"; + iod,ul_num_buffers = <16>; + iod,ul_buffer_size = <4096>; + iod,dl_num_buffers = <32>; + iod,dl_buffer_size = <4096>; + }; + io_device_1 { + iod,name = "umts_rfs0"; + iod,id = <245>; + iod,format = <1>; + iod,io_type = <0>; + iod,links = <0x400>; + iod,attrs = <0x82>; + iod,app = "RFS"; + iod,ul_num_buffers = <16>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <512>; + iod,dl_buffer_size = <2048>; + }; + io_device_2 { + iod,name = "umts_csd"; + iod,id = <1>; + iod,format = <1>; + iod,io_type = <0>; + iod,links = <0x400>; + iod,attrs = <0x82>; + iod,app = "CSVT"; + iod,ul_num_buffers = <32>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <64>; + iod,dl_buffer_size = <2048>; + }; + io_device_3 { + iod,name = "umts_router"; + iod,id = <25>; + iod,format = <1>; + iod,io_type = <0>; + iod,links = <0x400>; + iod,attrs = <0x82>; + iod,app = "Data Router"; + iod,ul_num_buffers = <16>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <16>; + iod,dl_buffer_size = <2048>; + }; + io_device_4 { + iod,name = "umts_dm0"; + iod,id = <28>; + iod,format = <1>; + iod,io_type = <0>; + iod,links = <0x400>; + iod,attrs = <0x82>; + iod,app = "DIAG"; + iod,ul_num_buffers = <16>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <128>; + iod,dl_buffer_size = <2048>; + }; + io_device_5 { + iod,name = "smd4"; + iod,id = <33>; + iod,format = <1>; + iod,io_type = <0>; + iod,links = <0x400>; + iod,attrs = <0x82>; + iod,app = "DOD"; + iod,ul_num_buffers = <16>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <128>; + iod,dl_buffer_size = <2048>; + }; + io_device_6 { + iod,name = "ipc_loopback0"; + iod,id = <244>; + iod,format = <0>; + iod,io_type = <0>; + iod,links = <0x400>; + iod,attrs = <0x82>; /* ATTR_SBD_IPC | ATTR_SIPC5 */ + iod,app = "CLD"; + iod,ul_num_buffers = <16>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <32>; + iod,dl_buffer_size = <2048>; + }; + io_device_7 { + iod,name = "rmnet0"; + iod,id = <10>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x400>; + iod,attrs = <0x180>; + iod,app = "NET"; + iod,ul_num_buffers = <256>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <512>; + iod,dl_buffer_size = <2048>; + }; + io_device_8 { + iod,name = "rmnet1"; + iod,id = <11>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x400>; + iod,attrs = <0x180>; + iod,app = "NET"; + iod,ul_num_buffers = <256>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <512>; + iod,dl_buffer_size = <2048>; + }; + io_device_9 { + iod,name = "rmnet2"; + iod,id = <12>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x400>; + iod,attrs = <0x180>; + iod,app = "NET"; + iod,ul_num_buffers = <50>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <100>; + iod,dl_buffer_size = <2048>; + }; + io_device_10 { + iod,name = "rmnet3"; + iod,id = <13>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x400>; + iod,attrs = <0x180>; + iod,app = "NET"; + iod,ul_num_buffers = <50>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <100>; + iod,dl_buffer_size = <2048>; + }; + io_device_11 { + iod,name = "rmnet4"; + iod,id = <14>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x400>; + iod,attrs = <0x180>; + iod,app = "NET"; + iod,ul_num_buffers = <128>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <256>; + iod,dl_buffer_size = <2048>; + }; + io_device_12 { + iod,name = "rmnet5"; + iod,id = <15>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x400>; + iod,attrs = <0x180>; + iod,app = "NET"; + iod,ul_num_buffers = <128>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <256>; + iod,dl_buffer_size = <2048>; + }; + io_device_13 { + iod,name = "rmnet6"; + iod,id = <16>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x400>; + iod,attrs = <0x180>; + iod,app = "NET"; + iod,ul_num_buffers = <50>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <100>; + iod,dl_buffer_size = <2048>; + }; + io_device_14 { + iod,name = "rmnet7"; + iod,id = <17>; + iod,format = <1>; + iod,io_type = <1>; + iod,links = <0x400>; + iod,attrs = <0x180>; + iod,app = "NET"; + iod,ul_num_buffers = <50>; + iod,ul_buffer_size = <2048>; + iod,dl_num_buffers = <100>; + iod,dl_buffer_size = <2048>; + }; + io_device_15 { + iod,name = "multipdp"; + iod,id = <0>; + iod,format = <3>; + iod,io_type = <2>; + iod,links = <0x400>; + iod,attrs = <0x02>; + iod,app = "RIL"; + }; + io_device_16 { + iod,name = "umts_boot0"; + iod,id = <215>; + iod,format = <4>; + iod,io_type = <0>; + iod,links = <0x408>; + iod,tx_link = <10>; /* LINKDEV_LLI */ + iod,attrs = <0x02>; /* ATTR_SIPC5 */ + iod,app = "CBD"; + }; + io_device_17 { + iod,name = "umts_ramdump0"; + iod,id = <225>; + iod,format = <5>; + iod,io_type = <0>; + iod,links = <0x400>; + iod,attrs = <0x202>; /* ATTR_NO_CHECK_MAXQ | ATTR_SIPC5 */ + iod,app = "CBD"; + }; + }; /* end of iodevs */ + }; /* end of mif_pdata */ +}; -- GitLab