123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * dts file for Hisilicon HiKey Development Board
- *
- * Copyright (C) 2015, Hisilicon Ltd.
- *
- */
- /dts-v1/;
- #include "hi6220.dtsi"
- #include "hikey-pinctrl.dtsi"
- #include <dt-bindings/gpio/gpio.h>
- / {
- model = "HiKey Development Board";
- compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220";
- aliases {
- serial0 = &uart0; /* On board UART0 */
- serial1 = &uart1; /* BT UART */
- serial2 = &uart2; /* LS Expansion UART0 */
- serial3 = &uart3; /* LS Expansion UART1 */
- };
- chosen {
- stdout-path = "serial3:115200n8";
- };
- /*
- * Reserve below regions from memory node:
- *
- * 0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using
- * 0x05f0,1000 - 0x05f0,1fff: Reboot reason
- * 0x06df,f000 - 0x06df,ffff: Mailbox message data
- * 0x0740,f000 - 0x0740,ffff: MCU firmware section
- * 0x21f0,0000 - 0x21ff,ffff: pstore/ramoops buffer
- * 0x3e00,0000 - 0x3fff,ffff: OP-TEE
- */
- memory@0 {
- device_type = "memory";
- reg = <0x00000000 0x00000000 0x00000000 0x05e00000>,
- <0x00000000 0x05f00000 0x00000000 0x00001000>,
- <0x00000000 0x05f02000 0x00000000 0x00efd000>,
- <0x00000000 0x06e00000 0x00000000 0x0060f000>,
- <0x00000000 0x07410000 0x00000000 0x1aaf0000>,
- <0x00000000 0x22000000 0x00000000 0x1c000000>;
- };
- reserved-memory {
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
- ramoops@21f00000 {
- compatible = "ramoops";
- reg = <0x0 0x21f00000 0x0 0x00100000>;
- record-size = <0x00020000>;
- console-size = <0x00020000>;
- ftrace-size = <0x00020000>;
- };
- /* global autoconfigured region for contiguous allocations */
- linux,cma {
- compatible = "shared-dma-pool";
- reusable;
- size = <0x00000000 0x08000000>;
- linux,cma-default;
- };
- };
- reboot-mode-syscon@5f01000 {
- compatible = "syscon", "simple-mfd";
- reg = <0x0 0x05f01000 0x0 0x00001000>;
- reboot-mode {
- compatible = "syscon-reboot-mode";
- offset = <0x0>;
- mode-normal = <0x77665501>;
- mode-bootloader = <0x77665500>;
- mode-recovery = <0x77665502>;
- };
- };
- reg_sys_5v: regulator@0 {
- compatible = "regulator-fixed";
- regulator-name = "SYS_5V";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- regulator-boot-on;
- regulator-always-on;
- };
- reg_vdd_3v3: regulator@1 {
- compatible = "regulator-fixed";
- regulator-name = "VDD_3V3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-boot-on;
- regulator-always-on;
- vin-supply = <®_sys_5v>;
- };
- reg_5v_hub: regulator@2 {
- compatible = "regulator-fixed";
- regulator-name = "5V_HUB";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- regulator-boot-on;
- gpio = <&gpio0 7 0>;
- regulator-always-on;
- vin-supply = <®_sys_5v>;
- };
- wl1835_pwrseq: wl1835-pwrseq {
- compatible = "mmc-pwrseq-simple";
- /* WLAN_EN GPIO */
- reset-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
- clocks = <&pmic>;
- clock-names = "ext_clock";
- post-power-on-delay-ms = <10>;
- power-off-delay-us = <10>;
- };
- soc {
- spi0: spi@f7106000 {
- status = "ok";
- };
- i2c0: i2c@f7100000 {
- status = "ok";
- };
- i2c1: i2c@f7101000 {
- status = "ok";
- };
- uart1: uart@f7111000 {
- assigned-clocks = <&sys_ctrl HI6220_UART1_SRC>;
- assigned-clock-rates = <150000000>;
- status = "ok";
- bluetooth {
- compatible = "ti,wl1835-st";
- enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
- clocks = <&pmic>;
- clock-names = "ext_clock";
- };
- };
- uart2: uart@f7112000 {
- status = "ok";
- };
- uart3: uart@f7113000 {
- status = "ok";
- };
- /*
- * Legend: proper name = the GPIO line is used as GPIO
- * NC = not connected (not routed from the SoC)
- * "[PER]" = pin is muxed for peripheral (not GPIO)
- * "" = no idea, schematic doesn't say, could be
- * unrouted (not connected to any external pin)
- * LSEC = Low Speed External Connector
- * HSEC = High Speed External Connector
- *
- * Pin assignments taken from LeMaker and CircuitCo Schematics
- * Rev A1.
- *
- * For the lines routed to the external connectors the
- * lines are named after the 96Boards CE Specification 1.0,
- * Appendix "Expansion Connector Signal Description".
- *
- * When the 96Board naming of a line and the schematic name of
- * the same line are in conflict, the 96Board specification
- * takes precedence, which means that the external UART on the
- * LSEC is named UART0 while the schematic and SoC names this
- * UART2. This is only for the informational lines i.e. "[FOO]",
- * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
- * ones actually used for GPIO.
- */
- gpio0: gpio@f8011000 {
- gpio-line-names = "PWR_HOLD", "DSI_SEL",
- "USB_HUB_RESET_N", "USB_SEL", "HDMI_PD", "WL_REG_ON",
- "PWRON_DET", "5V_HUB_EN";
- };
- gpio1: gpio@f8012000 {
- gpio-line-names = "SD_DET", "HDMI_INT", "PMU_IRQ_N",
- "WL_HOST_WAKE", "NC", "NC", "NC", "BT_REG_ON";
- };
- gpio2: gpio@f8013000 {
- gpio-line-names =
- "GPIO-A", /* LSEC Pin 23: GPIO2_0 */
- "GPIO-B", /* LSEC Pin 24: GPIO2_1 */
- "GPIO-C", /* LSEC Pin 25: GPIO2_2 */
- "GPIO-D", /* LSEC Pin 26: GPIO2_3 */
- "GPIO-E", /* LSEC Pin 27: GPIO2_4 */
- "USB_ID_DET", "USB_VBUS_DET",
- "GPIO-H"; /* LSEC Pin 30: GPIO2_7 */
- };
- gpio3: gpio@f8014000 {
- gpio-line-names = "GPIO3_0", "NC", "NC", "", "NC", "",
- "WLAN_ACTIVE", "NC", "NC";
- };
- gpio4: gpio@f7020000 {
- gpio-line-names = "USER_LED1", "USER_LED2", "USER_LED3",
- "USER_LED4", "SD_SEL", "NC", "NC", "BT_ACTIVE";
- };
- gpio5: gpio@f7021000 {
- gpio-line-names = "NC", "NC",
- "[UART1_RxD]", /* LSEC Pin 11: UART3_RX */
- "[UART1_TxD]", /* LSEC Pin 13: UART3_TX */
- "[AUX_SSI1]", "NC",
- "[PCM_CLK]", /* LSEC Pin 18: MODEM_PCM_XCLK */
- "[PCM_FS]"; /* LSEC Pin 16: MODEM_PCM_XFS */
- };
- gpio6: gpio@f7022000 {
- gpio-line-names =
- "[SPI0_DIN]", /* Pin 10: SPI0_DI */
- "[SPI0_DOUT]", /* Pin 14: SPI0_DO */
- "[SPI0_CS]", /* Pin 12: SPI0_CS_N */
- "[SPI0_SCLK]", /* Pin 8: SPI0_SCLK */
- "NC", "NC", "NC",
- "GPIO-G"; /* Pin 29: GPIO6_7_DSI_TE0 */
- };
- gpio7: gpio@f7023000 {
- gpio-line-names = "NC", "NC", "NC", "NC",
- "[PCM_DI]", /* Pin 22: MODEM_PCM_DI */
- "[PCM_DO]", /* Pin 20: MODEM_PCM_DO */
- "NC", "NC";
- };
- gpio8: gpio@f7024000 {
- gpio-line-names = "NC", "[CEC_CLK_19_2MHZ]", "NC",
- "", "", "", "", "", "";
- };
- gpio9: gpio@f7025000 {
- gpio-line-names = "",
- "GPIO-J", /* LSEC Pin 32: ISP_PWDN0_GPIO9_1 */
- "GPIO-L", /* LSEC Pin 34: ISP_PWDN1_GPIO9_2 */
- "NC", "NC", "NC", "NC", "[ISP_CCLK0]";
- };
- gpio10: gpio@f7026000 {
- gpio-line-names = "BOOT_SEL",
- "[ISP_CCLK1]",
- "GPIO-I", /* LSEC Pin 31: ISP_RSTB0_GPIO10_2 */
- "GPIO-K", /* LSEC Pin 33: ISP_RSTB1_GPIO10_3 */
- "NC", "NC",
- "[I2C2_SDA]", /* HSEC Pin 34: ISP0_SDA */
- "[I2C2_SCL]"; /* HSEC Pin 32: ISP0_SCL */
- };
- gpio11: gpio@f7027000 {
- gpio-line-names =
- "[I2C3_SDA]", /* HSEC Pin 38: ISP1_SDA */
- "[I2C3_SCL]", /* HSEC Pin 36: ISP1_SCL */
- "", "NC", "NC", "NC", "", "";
- };
- gpio12: gpio@f7028000 {
- gpio-line-names = "[BT_PCM_XFS]", "[BT_PCM_DI]",
- "[BT_PCM_DO]",
- "NC", "NC", "NC", "NC",
- "GPIO-F"; /* LSEC Pin 28: BL_PWM_GPIO12_7 */
- };
- gpio13: gpio@f7029000 {
- gpio-line-names = "[UART0_RX]", "[UART0_TX]",
- "[BT_UART1_CTS]", "[BT_UART1_RTS]",
- "[BT_UART1_RX]", "[BT_UART1_TX]",
- "[UART0_CTS]", /* LSEC Pin 3: UART2_CTS_N */
- "[UART0_RTS]"; /* LSEC Pin 9: UART2_RTS_N */
- };
- gpio14: gpio@f702a000 {
- gpio-line-names =
- "[UART0_RxD]", /* LSEC Pin 7: UART2_RX */
- "[UART0_TxD]", /* LSEC Pin 5: UART2_TX */
- "[I2C0_SCL]", /* LSEC Pin 15: I2C0_SCL */
- "[I2C0_SDA]", /* LSEC Pin 17: I2C0_SDA */
- "[I2C1_SCL]", /* LSEC Pin 19: I2C1_SCL */
- "[I2C1_SDA]", /* LSEC Pin 21: I2C1_SDA */
- "[I2C2_SCL]", "[I2C2_SDA]";
- };
- gpio15: gpio@f702b000 {
- gpio-line-names = "", "", "", "", "", "", "NC", "";
- };
- /* GPIO blocks 16 thru 19 do not appear to be routed to pins */
- dwmmc_0: dwmmc0@f723d000 {
- cap-mmc-highspeed;
- non-removable;
- bus-width = <0x8>;
- vmmc-supply = <&ldo19>;
- };
- dwmmc_1: dwmmc1@f723e000 {
- card-detect-delay = <200>;
- cap-sd-highspeed;
- sd-uhs-sdr12;
- sd-uhs-sdr25;
- sd-uhs-sdr50;
- vqmmc-supply = <&ldo7>;
- vmmc-supply = <&ldo10>;
- bus-width = <0x4>;
- disable-wp;
- cd-gpios = <&gpio1 0 1>;
- };
- dwmmc_2: dwmmc2@f723f000 {
- bus-width = <0x4>;
- non-removable;
- cap-power-off-card;
- vmmc-supply = <®_vdd_3v3>;
- mmc-pwrseq = <&wl1835_pwrseq>;
- #address-cells = <0x1>;
- #size-cells = <0x0>;
- wlcore: wlcore@2 {
- compatible = "ti,wl1835";
- reg = <2>; /* sdio func num */
- /* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */
- interrupt-parent = <&gpio1>;
- interrupts = <3 IRQ_TYPE_EDGE_RISING>;
- };
- };
- };
- leds {
- compatible = "gpio-leds";
- user_led4 {
- label = "user_led4";
- gpios = <&gpio4 0 0>; /* <&gpio_user_led_1>; */
- linux,default-trigger = "heartbeat";
- };
- user_led3 {
- label = "user_led3";
- gpios = <&gpio4 1 0>; /* <&gpio_user_led_2>; */
- linux,default-trigger = "mmc0";
- };
- user_led2 {
- label = "user_led2";
- gpios = <&gpio4 2 0>; /* <&gpio_user_led_3>; */
- linux,default-trigger = "mmc1";
- };
- user_led1 {
- label = "user_led1";
- gpios = <&gpio4 3 0>; /* <&gpio_user_led_4>; */
- panic-indicator;
- linux,default-trigger = "cpu0";
- };
- wlan_active_led {
- label = "wifi_active";
- gpios = <&gpio3 5 0>; /* <&gpio_wlan_active_led>; */
- linux,default-trigger = "phy0tx";
- default-state = "off";
- };
- bt_active_led {
- label = "bt_active";
- gpios = <&gpio4 7 0>; /* <&gpio_bt_active_led>; */
- linux,default-trigger = "hci0rx";
- default-state = "off";
- };
- };
- pmic: pmic@f8000000 {
- compatible = "hisilicon,hi655x-pmic";
- reg = <0x0 0xf8000000 0x0 0x1000>;
- #clock-cells = <0>;
- interrupt-controller;
- #interrupt-cells = <2>;
- pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
- regulators {
- ldo2: LDO2 {
- regulator-name = "LDO2_2V8";
- regulator-min-microvolt = <2500000>;
- regulator-max-microvolt = <3200000>;
- regulator-enable-ramp-delay = <120>;
- };
- ldo7: LDO7 {
- regulator-name = "LDO7_SDIO";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <3300000>;
- regulator-enable-ramp-delay = <120>;
- };
- ldo10: LDO10 {
- regulator-name = "LDO10_2V85";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <3000000>;
- regulator-enable-ramp-delay = <360>;
- };
- ldo13: LDO13 {
- regulator-name = "LDO13_1V8";
- regulator-min-microvolt = <1600000>;
- regulator-max-microvolt = <1950000>;
- regulator-enable-ramp-delay = <120>;
- };
- ldo14: LDO14 {
- regulator-name = "LDO14_2V8";
- regulator-min-microvolt = <2500000>;
- regulator-max-microvolt = <3200000>;
- regulator-enable-ramp-delay = <120>;
- };
- ldo15: LDO15 {
- regulator-name = "LDO15_1V8";
- regulator-min-microvolt = <1600000>;
- regulator-max-microvolt = <1950000>;
- regulator-boot-on;
- regulator-always-on;
- regulator-enable-ramp-delay = <120>;
- };
- ldo17: LDO17 {
- regulator-name = "LDO17_2V5";
- regulator-min-microvolt = <2500000>;
- regulator-max-microvolt = <3200000>;
- regulator-enable-ramp-delay = <120>;
- };
- ldo19: LDO19 {
- regulator-name = "LDO19_3V0";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <3000000>;
- regulator-enable-ramp-delay = <360>;
- };
- ldo21: LDO21 {
- regulator-name = "LDO21_1V8";
- regulator-min-microvolt = <1650000>;
- regulator-max-microvolt = <2000000>;
- regulator-always-on;
- regulator-enable-ramp-delay = <120>;
- };
- ldo22: LDO22 {
- regulator-name = "LDO22_1V2";
- regulator-min-microvolt = <900000>;
- regulator-max-microvolt = <1200000>;
- regulator-boot-on;
- regulator-always-on;
- regulator-enable-ramp-delay = <120>;
- };
- };
- };
- firmware {
- optee {
- compatible = "linaro,optee-tz";
- method = "smc";
- };
- };
- sound_card {
- compatible = "audio-graph-card";
- dais = <&i2s0_port0>;
- };
- };
- &uart2 {
- label = "LS-UART0";
- };
- &uart3 {
- label = "LS-UART1";
- };
- &ade {
- status = "ok";
- };
- &dsi {
- status = "ok";
- ports {
- /* 1 for output port */
- port@1 {
- reg = <1>;
- dsi_out0: endpoint@0 {
- remote-endpoint = <&adv7533_in>;
- };
- };
- };
- };
- &i2c2 {
- #address-cells = <1>;
- #size-cells = <0>;
- status = "ok";
- adv7533: adv7533@39 {
- compatible = "adi,adv7533";
- reg = <0x39>;
- interrupt-parent = <&gpio1>;
- interrupts = <1 2>;
- pd-gpio = <&gpio0 4 0>;
- adi,dsi-lanes = <4>;
- #sound-dai-cells = <0>;
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
- port@0 {
- adv7533_in: endpoint {
- remote-endpoint = <&dsi_out0>;
- };
- };
- port@2 {
- reg = <2>;
- codec_endpoint: endpoint {
- remote-endpoint = <&i2s0_cpu_endpoint>;
- };
- };
- };
- };
- };
- &i2s0 {
- ports {
- i2s0_port0: port@0 {
- i2s0_cpu_endpoint: endpoint {
- remote-endpoint = <&codec_endpoint>;
- dai-format = "i2s";
- };
- };
- };
- };
|