1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0 20752f929SPaul Burton/dts-v1/; 30752f929SPaul Burton 40752f929SPaul Burton#include "jz4780.dtsi" 5157c887aSPaul Cercueil#include <dt-bindings/clock/ingenic,tcu.h> 68fec5539SHarvey Hunt#include <dt-bindings/gpio/gpio.h> 7fa894a8fSH. Nikolaus Schaller#include <dt-bindings/input/input.h> 8130ab881SH. Nikolaus Schaller#include <dt-bindings/interrupt-controller/irq.h> 9e8d87a0bSH. Nikolaus Schaller#include <dt-bindings/regulator/active-semi,8865-regulator.h> 100752f929SPaul Burton 110752f929SPaul Burton/ { 120752f929SPaul Burton compatible = "img,ci20", "ingenic,jz4780"; 130752f929SPaul Burton 140752f929SPaul Burton aliases { 150752f929SPaul Burton serial0 = &uart0; 160752f929SPaul Burton serial1 = &uart1; 170752f929SPaul Burton serial3 = &uart3; 180752f929SPaul Burton serial4 = &uart4; 190752f929SPaul Burton }; 200752f929SPaul Burton 210752f929SPaul Burton chosen { 220752f929SPaul Burton stdout-path = &uart4; 230752f929SPaul Burton }; 240752f929SPaul Burton 250752f929SPaul Burton memory { 260752f929SPaul Burton device_type = "memory"; 270752f929SPaul Burton reg = <0x0 0x10000000 280752f929SPaul Burton 0x30000000 0x30000000>; 290752f929SPaul Burton }; 308fec5539SHarvey Hunt 31fa894a8fSH. Nikolaus Schaller gpio-keys { 32fa894a8fSH. Nikolaus Schaller compatible = "gpio-keys"; 33fa894a8fSH. Nikolaus Schaller 3462fb295cSKrzysztof Kozlowski switch { 35fa894a8fSH. Nikolaus Schaller label = "ci20:sw1"; 36fa894a8fSH. Nikolaus Schaller linux,code = <KEY_F13>; 37fa894a8fSH. Nikolaus Schaller gpios = <&gpd 17 GPIO_ACTIVE_HIGH>; 38fa894a8fSH. Nikolaus Schaller wakeup-source; 39fa894a8fSH. Nikolaus Schaller }; 40fa894a8fSH. Nikolaus Schaller }; 41fa894a8fSH. Nikolaus Schaller 4224b0cb4fSAlexandre GRIVEAUX leds { 4324b0cb4fSAlexandre GRIVEAUX compatible = "gpio-leds"; 4424b0cb4fSAlexandre GRIVEAUX 4509e61efdSArınç ÜNAL led-0 { 4624b0cb4fSAlexandre GRIVEAUX label = "ci20:red:led0"; 4724b0cb4fSAlexandre GRIVEAUX gpios = <&gpc 3 GPIO_ACTIVE_HIGH>; 4824b0cb4fSAlexandre GRIVEAUX linux,default-trigger = "none"; 4924b0cb4fSAlexandre GRIVEAUX }; 5024b0cb4fSAlexandre GRIVEAUX 5109e61efdSArınç ÜNAL led-1 { 5224b0cb4fSAlexandre GRIVEAUX label = "ci20:red:led1"; 5324b0cb4fSAlexandre GRIVEAUX gpios = <&gpc 2 GPIO_ACTIVE_HIGH>; 5424b0cb4fSAlexandre GRIVEAUX linux,default-trigger = "nand-disk"; 5524b0cb4fSAlexandre GRIVEAUX }; 5624b0cb4fSAlexandre GRIVEAUX 5709e61efdSArınç ÜNAL led-2 { 5824b0cb4fSAlexandre GRIVEAUX label = "ci20:red:led2"; 5924b0cb4fSAlexandre GRIVEAUX gpios = <&gpc 1 GPIO_ACTIVE_HIGH>; 6024b0cb4fSAlexandre GRIVEAUX linux,default-trigger = "cpu1"; 6124b0cb4fSAlexandre GRIVEAUX }; 6224b0cb4fSAlexandre GRIVEAUX 6309e61efdSArınç ÜNAL led-3 { 6424b0cb4fSAlexandre GRIVEAUX label = "ci20:red:led3"; 6524b0cb4fSAlexandre GRIVEAUX gpios = <&gpc 0 GPIO_ACTIVE_HIGH>; 6624b0cb4fSAlexandre GRIVEAUX linux,default-trigger = "cpu0"; 6724b0cb4fSAlexandre GRIVEAUX }; 6824b0cb4fSAlexandre GRIVEAUX }; 6924b0cb4fSAlexandre GRIVEAUX 70ea1ccdc6SPaul Cercueil eth0_power: fixedregulator-0 { 718fec5539SHarvey Hunt compatible = "regulator-fixed"; 72158c774dS周琰杰 (Zhou Yanjie) 738fec5539SHarvey Hunt regulator-name = "eth0_power"; 74fa894a8fSH. Nikolaus Schaller regulator-min-microvolt = <3300000>; 75fa894a8fSH. Nikolaus Schaller regulator-max-microvolt = <3300000>; 76158c774dS周琰杰 (Zhou Yanjie) 77ea1ccdc6SPaul Cercueil gpio = <&gpb 25 0>; 788fec5539SHarvey Hunt enable-active-high; 798fec5539SHarvey Hunt }; 80948f2708SAlexandre GRIVEAUX 81ae1b8d2cSPaul Boddie hdmi_out: connector { 82ae1b8d2cSPaul Boddie compatible = "hdmi-connector"; 83ae1b8d2cSPaul Boddie label = "HDMI OUT"; 84ae1b8d2cSPaul Boddie type = "a"; 85ae1b8d2cSPaul Boddie 86d9565bf4SH. Nikolaus Schaller ddc-en-gpios = <&gpa 25 GPIO_ACTIVE_HIGH>; 87d9565bf4SH. Nikolaus Schaller 88ae1b8d2cSPaul Boddie port { 89ae1b8d2cSPaul Boddie hdmi_con: endpoint { 90ae1b8d2cSPaul Boddie remote-endpoint = <&dw_hdmi_out>; 91ae1b8d2cSPaul Boddie }; 92ae1b8d2cSPaul Boddie }; 93ae1b8d2cSPaul Boddie }; 94ae1b8d2cSPaul Boddie 95f5e8fcf8SAlex Smith ir: ir { 96f5e8fcf8SAlex Smith compatible = "gpio-ir-receiver"; 97f5e8fcf8SAlex Smith gpios = <&gpe 3 GPIO_ACTIVE_LOW>; 98f5e8fcf8SAlex Smith }; 99f5e8fcf8SAlex Smith 100c9f4b252SPaul Cercueil bt_power: fixedregulator-1 { 101948f2708SAlexandre GRIVEAUX compatible = "regulator-fixed"; 102158c774dS周琰杰 (Zhou Yanjie) 103c9f4b252SPaul Cercueil regulator-name = "bt_power"; 104c9f4b252SPaul Cercueil regulator-min-microvolt = <3300000>; 105c9f4b252SPaul Cercueil regulator-max-microvolt = <3300000>; 106c9f4b252SPaul Cercueil regulator-settling-time-us = <1400>; 107c9f4b252SPaul Cercueil 108c9f4b252SPaul Cercueil vin-supply = <&vcc_50>; 109158c774dS周琰杰 (Zhou Yanjie) 110ea1ccdc6SPaul Cercueil gpio = <&gpb 19 0>; 111948f2708SAlexandre GRIVEAUX enable-active-high; 112948f2708SAlexandre GRIVEAUX }; 113158c774dS周琰杰 (Zhou Yanjie) 114ea1ccdc6SPaul Cercueil otg_power: fixedregulator-2 { 115158c774dS周琰杰 (Zhou Yanjie) compatible = "regulator-fixed"; 116158c774dS周琰杰 (Zhou Yanjie) 117158c774dS周琰杰 (Zhou Yanjie) regulator-name = "otg_power"; 118158c774dS周琰杰 (Zhou Yanjie) regulator-min-microvolt = <5000000>; 119158c774dS周琰杰 (Zhou Yanjie) regulator-max-microvolt = <5000000>; 120158c774dS周琰杰 (Zhou Yanjie) 121ea1ccdc6SPaul Cercueil gpio = <&gpf 15 0>; 122158c774dS周琰杰 (Zhou Yanjie) enable-active-high; 123158c774dS周琰杰 (Zhou Yanjie) }; 124c9f4b252SPaul Cercueil 125c9f4b252SPaul Cercueil wifi_power: fixedregulator-4 { 126c9f4b252SPaul Cercueil compatible = "regulator-fixed"; 127c9f4b252SPaul Cercueil 128c9f4b252SPaul Cercueil regulator-name = "wifi_power"; 129c9f4b252SPaul Cercueil 130c9f4b252SPaul Cercueil /* 131c9f4b252SPaul Cercueil * Technically it's 5V, the WiFi chip has its own internal 132c9f4b252SPaul Cercueil * regulators; but the MMC/SD subsystem won't accept such a 133c9f4b252SPaul Cercueil * value. 134c9f4b252SPaul Cercueil */ 135c9f4b252SPaul Cercueil regulator-min-microvolt = <3300000>; 136c9f4b252SPaul Cercueil regulator-max-microvolt = <3300000>; 137c9f4b252SPaul Cercueil regulator-settling-time-us = <150000>; 138c9f4b252SPaul Cercueil 139c9f4b252SPaul Cercueil vin-supply = <&bt_power>; 140c9f4b252SPaul Cercueil }; 141c9f4b252SPaul Cercueil 142c9f4b252SPaul Cercueil vcc_33v: fixedregulator-5 { 143c9f4b252SPaul Cercueil compatible = "regulator-fixed"; 144c9f4b252SPaul Cercueil 145c9f4b252SPaul Cercueil regulator-name = "vcc_33v"; 146c9f4b252SPaul Cercueil regulator-min-microvolt = <3300000>; 147c9f4b252SPaul Cercueil regulator-max-microvolt = <3300000>; 148c9f4b252SPaul Cercueil regulator-always-on; 149c9f4b252SPaul Cercueil }; 150c9f4b252SPaul Cercueil 151c9f4b252SPaul Cercueil wifi_pwrseq: pwrseq { 152c9f4b252SPaul Cercueil compatible = "mmc-pwrseq-simple"; 153c9f4b252SPaul Cercueil reset-gpios = <&gpf 7 GPIO_ACTIVE_LOW>; 154c9f4b252SPaul Cercueil 155c9f4b252SPaul Cercueil clocks = <&rtc_dev>; 156c9f4b252SPaul Cercueil clock-names = "ext_clock"; 157c9f4b252SPaul Cercueil }; 1580752f929SPaul Burton}; 1590752f929SPaul Burton 1600752f929SPaul Burton&ext { 1610752f929SPaul Burton clock-frequency = <48000000>; 1620752f929SPaul Burton}; 1630752f929SPaul Burton 164158c774dS周琰杰 (Zhou Yanjie)&cgu { 165158c774dS周琰杰 (Zhou Yanjie) /* 166158c774dS周琰杰 (Zhou Yanjie) * Use the 32.768 kHz oscillator as the parent of the RTC for a higher 167158c774dS周琰杰 (Zhou Yanjie) * precision. 168158c774dS周琰杰 (Zhou Yanjie) */ 1697b3fd810SArtur Rojek assigned-clocks = <&cgu JZ4780_CLK_OTGPHY>, <&cgu JZ4780_CLK_RTC>, 170ae1b8d2cSPaul Boddie <&cgu JZ4780_CLK_SSIPLL>, <&cgu JZ4780_CLK_SSI>, 171868b70b9SPaul Cercueil <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_MSCMUX>; 1727b3fd810SArtur Rojek assigned-clock-parents = <0>, <&cgu JZ4780_CLK_RTCLK>, 1737b3fd810SArtur Rojek <&cgu JZ4780_CLK_MPLL>, 174868b70b9SPaul Cercueil <&cgu JZ4780_CLK_SSIPLL>, 175868b70b9SPaul Cercueil <0>, <&cgu JZ4780_CLK_MPLL>; 176ae1b8d2cSPaul Boddie assigned-clock-rates = <48000000>, <0>, <54000000>, <0>, <27000000>; 177158c774dS周琰杰 (Zhou Yanjie)}; 178158c774dS周琰杰 (Zhou Yanjie) 17934c522a0S周琰杰 (Zhou Yanjie)&tcu { 18034c522a0S周琰杰 (Zhou Yanjie) /* 18134c522a0S周琰杰 (Zhou Yanjie) * 750 kHz for the system timers and clocksource, 18234c522a0S周琰杰 (Zhou Yanjie) * use channel #0 and #1 for the per cpu system timers, 18334c522a0S周琰杰 (Zhou Yanjie) * and use channel #2 for the clocksource. 18434c522a0S周琰杰 (Zhou Yanjie) * 18534c522a0S周琰杰 (Zhou Yanjie) * 3000 kHz for the OST timer to provide a higher 18634c522a0S周琰杰 (Zhou Yanjie) * precision clocksource. 18734c522a0S周琰杰 (Zhou Yanjie) */ 18834c522a0S周琰杰 (Zhou Yanjie) assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, 18934c522a0S周琰杰 (Zhou Yanjie) <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_OST>; 19034c522a0S周琰杰 (Zhou Yanjie) assigned-clock-rates = <750000>, <750000>, <750000>, <3000000>; 19134c522a0S周琰杰 (Zhou Yanjie)}; 19234c522a0S周琰杰 (Zhou Yanjie) 193671963bbSEzequiel Garcia&mmc0 { 194671963bbSEzequiel Garcia status = "okay"; 195671963bbSEzequiel Garcia 196671963bbSEzequiel Garcia bus-width = <4>; 197671963bbSEzequiel Garcia max-frequency = <50000000>; 198671963bbSEzequiel Garcia 199671963bbSEzequiel Garcia pinctrl-names = "default"; 200671963bbSEzequiel Garcia pinctrl-0 = <&pins_mmc0>; 201671963bbSEzequiel Garcia 202671963bbSEzequiel Garcia cd-gpios = <&gpf 20 GPIO_ACTIVE_LOW>; 203c9f4b252SPaul Cercueil vmmc-supply = <&vcc_33v>; 204c9f4b252SPaul Cercueil vqmmc-supply = <&vcc_33v>; 205671963bbSEzequiel Garcia}; 206671963bbSEzequiel Garcia 207671963bbSEzequiel Garcia&mmc1 { 208671963bbSEzequiel Garcia status = "okay"; 209671963bbSEzequiel Garcia 210671963bbSEzequiel Garcia bus-width = <4>; 211c9f4b252SPaul Cercueil max-frequency = <25000000>; 212c9f4b252SPaul Cercueil mmc-pwrseq = <&wifi_pwrseq>; 213c9f4b252SPaul Cercueil vmmc-supply = <&wifi_power>; 214c9f4b252SPaul Cercueil vqmmc-supply = <&wifi_io>; 215948f2708SAlexandre GRIVEAUX non-removable; 216671963bbSEzequiel Garcia 217671963bbSEzequiel Garcia pinctrl-names = "default"; 218671963bbSEzequiel Garcia pinctrl-0 = <&pins_mmc1>; 219948f2708SAlexandre GRIVEAUX 220c9f4b252SPaul Cercueil #address-cells = <1>; 221c9f4b252SPaul Cercueil #size-cells = <0>; 222c9f4b252SPaul Cercueil 223c9f4b252SPaul Cercueil wifi@1 { 224c9f4b252SPaul Cercueil compatible = "brcm,bcm4329-fmac"; 225c9f4b252SPaul Cercueil reg = <1>; 226c9f4b252SPaul Cercueil 227c9f4b252SPaul Cercueil interrupt-parent = <&gpd>; 228c9f4b252SPaul Cercueil interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 229c9f4b252SPaul Cercueil interrupt-names = "host-wake"; 230948f2708SAlexandre GRIVEAUX }; 231671963bbSEzequiel Garcia}; 232671963bbSEzequiel Garcia 2330752f929SPaul Burton&uart0 { 2340752f929SPaul Burton status = "okay"; 23589a6139cSPaul Cercueil 23689a6139cSPaul Cercueil pinctrl-names = "default"; 23789a6139cSPaul Cercueil pinctrl-0 = <&pins_uart0>; 2380752f929SPaul Burton}; 2390752f929SPaul Burton 2400752f929SPaul Burton&uart1 { 2410752f929SPaul Burton status = "okay"; 24289a6139cSPaul Cercueil 24389a6139cSPaul Cercueil pinctrl-names = "default"; 24489a6139cSPaul Cercueil pinctrl-0 = <&pins_uart1>; 2450752f929SPaul Burton}; 2460752f929SPaul Burton 247948f2708SAlexandre GRIVEAUX&uart2 { 248948f2708SAlexandre GRIVEAUX status = "okay"; 249948f2708SAlexandre GRIVEAUX 250948f2708SAlexandre GRIVEAUX pinctrl-names = "default"; 251948f2708SAlexandre GRIVEAUX pinctrl-0 = <&pins_uart2>; 252948f2708SAlexandre GRIVEAUX uart-has-rtscts; 253948f2708SAlexandre GRIVEAUX 254948f2708SAlexandre GRIVEAUX bluetooth { 255948f2708SAlexandre GRIVEAUX compatible = "brcm,bcm4330-bt"; 256c9f4b252SPaul Cercueil 257c9f4b252SPaul Cercueil vbat-supply = <&bt_power>; 258c9f4b252SPaul Cercueil vddio-supply = <&wifi_io>; 259c9f4b252SPaul Cercueil 260c9f4b252SPaul Cercueil interrupt-parent = <&gpf>; 261c9f4b252SPaul Cercueil interrupts = <6 IRQ_TYPE_EDGE_RISING>; 262c9f4b252SPaul Cercueil interrupt-names = "host-wakeup"; 263c9f4b252SPaul Cercueil 264c9f4b252SPaul Cercueil clocks = <&rtc_dev>; 265c9f4b252SPaul Cercueil clock-names = "lpo"; 266c9f4b252SPaul Cercueil 267c9f4b252SPaul Cercueil reset-gpios = <&gpf 8 GPIO_ACTIVE_LOW>; 268948f2708SAlexandre GRIVEAUX device-wakeup-gpios = <&gpf 5 GPIO_ACTIVE_HIGH>; 269c9f4b252SPaul Cercueil shutdown-gpios = <&gpf 4 GPIO_ACTIVE_HIGH>; 270948f2708SAlexandre GRIVEAUX }; 271948f2708SAlexandre GRIVEAUX}; 272948f2708SAlexandre GRIVEAUX 2730752f929SPaul Burton&uart3 { 2740752f929SPaul Burton status = "okay"; 27589a6139cSPaul Cercueil 27689a6139cSPaul Cercueil pinctrl-names = "default"; 2771ca1c87fSZhou Yanjie pinctrl-0 = <&pins_uart3>; 2780752f929SPaul Burton}; 2790752f929SPaul Burton 2800752f929SPaul Burton&uart4 { 2810752f929SPaul Burton status = "okay"; 28289a6139cSPaul Cercueil 28389a6139cSPaul Cercueil pinctrl-names = "default"; 28489a6139cSPaul Cercueil pinctrl-0 = <&pins_uart4>; 2850752f929SPaul Burton}; 28678800558SAlex Smith 28773f2b940SAlexandre GRIVEAUX&i2c0 { 28873f2b940SAlexandre GRIVEAUX status = "okay"; 28973f2b940SAlexandre GRIVEAUX 29073f2b940SAlexandre GRIVEAUX pinctrl-names = "default"; 29173f2b940SAlexandre GRIVEAUX pinctrl-0 = <&pins_i2c0>; 29273f2b940SAlexandre GRIVEAUX 29373f2b940SAlexandre GRIVEAUX clock-frequency = <400000>; 29473f2b940SAlexandre GRIVEAUX 29573f2b940SAlexandre GRIVEAUX act8600: act8600@5a { 29673f2b940SAlexandre GRIVEAUX compatible = "active-semi,act8600"; 29773f2b940SAlexandre GRIVEAUX reg = <0x5a>; 29873f2b940SAlexandre GRIVEAUX 29973f2b940SAlexandre GRIVEAUX regulators { 30008384e80SPaul Cercueil vddcore: DCDC1 { 301*944520f8SPaul Cercueil regulator-min-microvolt = <1125000>; 302*944520f8SPaul Cercueil regulator-max-microvolt = <1125000>; 303fbf1e420SPaul Cercueil vp1-supply = <&vcc_33v>; 30473f2b940SAlexandre GRIVEAUX regulator-always-on; 30573f2b940SAlexandre GRIVEAUX }; 30608384e80SPaul Cercueil vddmem: DCDC2 { 30773f2b940SAlexandre GRIVEAUX regulator-min-microvolt = <1500000>; 30873f2b940SAlexandre GRIVEAUX regulator-max-microvolt = <1500000>; 309fbf1e420SPaul Cercueil vp2-supply = <&vcc_33v>; 31073f2b940SAlexandre GRIVEAUX regulator-always-on; 31173f2b940SAlexandre GRIVEAUX }; 31208384e80SPaul Cercueil vcc_33: DCDC3 { 31373f2b940SAlexandre GRIVEAUX regulator-min-microvolt = <3300000>; 31473f2b940SAlexandre GRIVEAUX regulator-max-microvolt = <3300000>; 315fbf1e420SPaul Cercueil vp3-supply = <&vcc_33v>; 31673f2b940SAlexandre GRIVEAUX regulator-always-on; 31773f2b940SAlexandre GRIVEAUX }; 31808384e80SPaul Cercueil vcc_50: SUDCDC_REG4 { 31973f2b940SAlexandre GRIVEAUX regulator-min-microvolt = <5000000>; 32073f2b940SAlexandre GRIVEAUX regulator-max-microvolt = <5000000>; 32173f2b940SAlexandre GRIVEAUX regulator-always-on; 32273f2b940SAlexandre GRIVEAUX }; 32308384e80SPaul Cercueil vcc_25: LDO5 { 32473f2b940SAlexandre GRIVEAUX regulator-min-microvolt = <2500000>; 32573f2b940SAlexandre GRIVEAUX regulator-max-microvolt = <2500000>; 326fbf1e420SPaul Cercueil inl-supply = <&vcc_33v>; 32773f2b940SAlexandre GRIVEAUX regulator-always-on; 32873f2b940SAlexandre GRIVEAUX }; 32908384e80SPaul Cercueil wifi_io: LDO6 { 330c9f4b252SPaul Cercueil regulator-min-microvolt = <1800000>; 331c9f4b252SPaul Cercueil regulator-max-microvolt = <1800000>; 332c9f4b252SPaul Cercueil regulator-settling-time-us = <150000>; 333fbf1e420SPaul Cercueil inl-supply = <&vcc_33v>; 33473f2b940SAlexandre GRIVEAUX }; 33508384e80SPaul Cercueil cim_io_28: LDO7 { 33673f2b940SAlexandre GRIVEAUX regulator-min-microvolt = <2800000>; 33773f2b940SAlexandre GRIVEAUX regulator-max-microvolt = <2800000>; 338fbf1e420SPaul Cercueil inl-supply = <&vcc_33v>; 33973f2b940SAlexandre GRIVEAUX }; 34008384e80SPaul Cercueil cim_io_15: LDO8 { 34173f2b940SAlexandre GRIVEAUX regulator-min-microvolt = <1500000>; 34273f2b940SAlexandre GRIVEAUX regulator-max-microvolt = <1500000>; 343fbf1e420SPaul Cercueil inl-supply = <&vcc_33v>; 34473f2b940SAlexandre GRIVEAUX }; 345e8d87a0bSH. Nikolaus Schaller vrtc_18: LDO_REG9 { 346e8d87a0bSH. Nikolaus Schaller /* Despite the datasheet stating 3.3V 347e8d87a0bSH. Nikolaus Schaller * for REG9 and the driver expecting that, 348e8d87a0bSH. Nikolaus Schaller * REG9 outputs 1.8V. 349e8d87a0bSH. Nikolaus Schaller * Likely the CI20 uses a proprietary 350e8d87a0bSH. Nikolaus Schaller * factory programmed chip variant. 351e8d87a0bSH. Nikolaus Schaller * Since this is a simple on/off LDO the 352e8d87a0bSH. Nikolaus Schaller * exact values do not matter. 353e8d87a0bSH. Nikolaus Schaller */ 354e8d87a0bSH. Nikolaus Schaller regulator-min-microvolt = <3300000>; 355e8d87a0bSH. Nikolaus Schaller regulator-max-microvolt = <3300000>; 35673f2b940SAlexandre GRIVEAUX regulator-always-on; 35773f2b940SAlexandre GRIVEAUX }; 35873f2b940SAlexandre GRIVEAUX vcc_11: LDO_REG10 { 359e8d87a0bSH. Nikolaus Schaller regulator-min-microvolt = <1200000>; 360e8d87a0bSH. Nikolaus Schaller regulator-max-microvolt = <1200000>; 36173f2b940SAlexandre GRIVEAUX regulator-always-on; 36273f2b940SAlexandre GRIVEAUX }; 36373f2b940SAlexandre GRIVEAUX }; 36473f2b940SAlexandre GRIVEAUX }; 36573f2b940SAlexandre GRIVEAUX}; 36673f2b940SAlexandre GRIVEAUX 36773f2b940SAlexandre GRIVEAUX&i2c1 { 36873f2b940SAlexandre GRIVEAUX status = "okay"; 36973f2b940SAlexandre GRIVEAUX 37073f2b940SAlexandre GRIVEAUX pinctrl-names = "default"; 37173f2b940SAlexandre GRIVEAUX pinctrl-0 = <&pins_i2c1>; 37273f2b940SAlexandre GRIVEAUX 37373f2b940SAlexandre GRIVEAUX}; 37473f2b940SAlexandre GRIVEAUX 37573f2b940SAlexandre GRIVEAUX&i2c2 { 37673f2b940SAlexandre GRIVEAUX status = "okay"; 37773f2b940SAlexandre GRIVEAUX 37873f2b940SAlexandre GRIVEAUX pinctrl-names = "default"; 37973f2b940SAlexandre GRIVEAUX pinctrl-0 = <&pins_i2c2>; 38073f2b940SAlexandre GRIVEAUX 38173f2b940SAlexandre GRIVEAUX}; 38273f2b940SAlexandre GRIVEAUX 38373f2b940SAlexandre GRIVEAUX&i2c3 { 38473f2b940SAlexandre GRIVEAUX status = "okay"; 38573f2b940SAlexandre GRIVEAUX 38673f2b940SAlexandre GRIVEAUX pinctrl-names = "default"; 38773f2b940SAlexandre GRIVEAUX pinctrl-0 = <&pins_i2c3>; 38873f2b940SAlexandre GRIVEAUX 38973f2b940SAlexandre GRIVEAUX}; 39073f2b940SAlexandre GRIVEAUX 39173f2b940SAlexandre GRIVEAUX&i2c4 { 39273f2b940SAlexandre GRIVEAUX status = "okay"; 39373f2b940SAlexandre GRIVEAUX 39473f2b940SAlexandre GRIVEAUX pinctrl-names = "default"; 39573f2b940SAlexandre GRIVEAUX pinctrl-0 = <&pins_i2c4>; 39673f2b940SAlexandre GRIVEAUX 39773f2b940SAlexandre GRIVEAUX clock-frequency = <400000>; 39873f2b940SAlexandre GRIVEAUX 39973f2b940SAlexandre GRIVEAUX rtc@51 { 40073f2b940SAlexandre GRIVEAUX compatible = "nxp,pcf8563"; 40173f2b940SAlexandre GRIVEAUX reg = <0x51>; 402130ab881SH. Nikolaus Schaller 403130ab881SH. Nikolaus Schaller interrupt-parent = <&gpf>; 404130ab881SH. Nikolaus Schaller interrupts = <30 IRQ_TYPE_LEVEL_LOW>; 40573f2b940SAlexandre GRIVEAUX }; 40673f2b940SAlexandre GRIVEAUX}; 40773f2b940SAlexandre GRIVEAUX 40878800558SAlex Smith&nemc { 40978800558SAlex Smith status = "okay"; 41078800558SAlex Smith 41178800558SAlex Smith nandc: nand-controller@1 { 41278800558SAlex Smith compatible = "ingenic,jz4780-nand"; 41378800558SAlex Smith reg = <1 0 0x1000000>; 41478800558SAlex Smith 41578800558SAlex Smith #address-cells = <1>; 41678800558SAlex Smith #size-cells = <0>; 41778800558SAlex Smith 4185fe60d3bSPaul Cercueil ecc-engine = <&bch>; 41978800558SAlex Smith 42078800558SAlex Smith ingenic,nemc-tAS = <10>; 42178800558SAlex Smith ingenic,nemc-tAH = <5>; 42278800558SAlex Smith ingenic,nemc-tBP = <10>; 42378800558SAlex Smith ingenic,nemc-tAW = <15>; 42478800558SAlex Smith ingenic,nemc-tSTRV = <100>; 42578800558SAlex Smith 42689a6139cSPaul Cercueil /* 42789a6139cSPaul Cercueil * Only CLE/ALE are needed for the devices that are connected, rather 42889a6139cSPaul Cercueil * than the full address line set. 42989a6139cSPaul Cercueil */ 43089a6139cSPaul Cercueil pinctrl-names = "default"; 43189a6139cSPaul Cercueil pinctrl-0 = <&pins_nemc>; 43289a6139cSPaul Cercueil 43378800558SAlex Smith nand@1 { 43478800558SAlex Smith reg = <1>; 43578800558SAlex Smith 43678800558SAlex Smith nand-ecc-step-size = <1024>; 43778800558SAlex Smith nand-ecc-strength = <24>; 43878800558SAlex Smith nand-ecc-mode = "hw"; 43978800558SAlex Smith nand-on-flash-bbt; 44078800558SAlex Smith 44189a6139cSPaul Cercueil pinctrl-names = "default"; 44289a6139cSPaul Cercueil pinctrl-0 = <&pins_nemc_cs1>; 44389a6139cSPaul Cercueil 44478800558SAlex Smith partitions { 44578800558SAlex Smith compatible = "fixed-partitions"; 44678800558SAlex Smith #address-cells = <2>; 44778800558SAlex Smith #size-cells = <2>; 44878800558SAlex Smith 44978800558SAlex Smith partition@0 { 45078800558SAlex Smith label = "u-boot-spl"; 45178800558SAlex Smith reg = <0x0 0x0 0x0 0x800000>; 45278800558SAlex Smith }; 45378800558SAlex Smith 454c7685190SMathieu Malaterre partition@800000 { 45578800558SAlex Smith label = "u-boot"; 45678800558SAlex Smith reg = <0x0 0x800000 0x0 0x200000>; 45778800558SAlex Smith }; 45878800558SAlex Smith 459c7685190SMathieu Malaterre partition@a00000 { 46078800558SAlex Smith label = "u-boot-env"; 46178800558SAlex Smith reg = <0x0 0xa00000 0x0 0x200000>; 46278800558SAlex Smith }; 46378800558SAlex Smith 464c7685190SMathieu Malaterre partition@c00000 { 46578800558SAlex Smith label = "boot"; 46678800558SAlex Smith reg = <0x0 0xc00000 0x0 0x4000000>; 46778800558SAlex Smith }; 46878800558SAlex Smith 469018eab88SMathieu Malaterre partition@4c00000 { 47078800558SAlex Smith label = "system"; 47178800558SAlex Smith reg = <0x0 0x4c00000 0x1 0xfb400000>; 47278800558SAlex Smith }; 47378800558SAlex Smith }; 47478800558SAlex Smith }; 47578800558SAlex Smith }; 4768fec5539SHarvey Hunt 4778fec5539SHarvey Hunt dm9000@6 { 4788fec5539SHarvey Hunt compatible = "davicom,dm9000"; 4798fec5539SHarvey Hunt davicom,no-eeprom; 4808fec5539SHarvey Hunt 4818fec5539SHarvey Hunt pinctrl-names = "default"; 4828fec5539SHarvey Hunt pinctrl-0 = <&pins_nemc_cs6>; 4838fec5539SHarvey Hunt 4845fe60d3bSPaul Cercueil reg = <6 0 1>, /* addr */ 4855fe60d3bSPaul Cercueil <6 2 1>; /* data */ 4868fec5539SHarvey Hunt 4878fec5539SHarvey Hunt ingenic,nemc-tAS = <15>; 4888fec5539SHarvey Hunt ingenic,nemc-tAH = <10>; 4898fec5539SHarvey Hunt ingenic,nemc-tBP = <20>; 4908fec5539SHarvey Hunt ingenic,nemc-tAW = <50>; 4918fec5539SHarvey Hunt ingenic,nemc-tSTRV = <100>; 4928fec5539SHarvey Hunt 493ca637c0eSDmitry Torokhov reset-gpios = <&gpf 12 GPIO_ACTIVE_LOW>; 4948fec5539SHarvey Hunt vcc-supply = <ð0_power>; 4958fec5539SHarvey Hunt 4968fec5539SHarvey Hunt interrupt-parent = <&gpe>; 4975fe60d3bSPaul Cercueil interrupts = <19 IRQ_TYPE_EDGE_RISING>; 49819c96822SH. Nikolaus Schaller 49919c96822SH. Nikolaus Schaller nvmem-cells = <ð0_addr>; 50019c96822SH. Nikolaus Schaller nvmem-cell-names = "mac-address"; 5018fec5539SHarvey Hunt }; 50278800558SAlex Smith}; 50378800558SAlex Smith 50478800558SAlex Smith&bch { 50578800558SAlex Smith status = "okay"; 50678800558SAlex Smith}; 50789a6139cSPaul Cercueil 508158c774dS周琰杰 (Zhou Yanjie)&otg_phy { 509158c774dS周琰杰 (Zhou Yanjie) status = "okay"; 510158c774dS周琰杰 (Zhou Yanjie) 511158c774dS周琰杰 (Zhou Yanjie) vcc-supply = <&otg_power>; 512158c774dS周琰杰 (Zhou Yanjie)}; 513158c774dS周琰杰 (Zhou Yanjie) 514158c774dS周琰杰 (Zhou Yanjie)&otg { 515158c774dS周琰杰 (Zhou Yanjie) status = "okay"; 516158c774dS周琰杰 (Zhou Yanjie)}; 517158c774dS周琰杰 (Zhou Yanjie) 51889a6139cSPaul Cercueil&pinctrl { 51989a6139cSPaul Cercueil pins_uart0: uart0 { 52089a6139cSPaul Cercueil function = "uart0"; 52189a6139cSPaul Cercueil groups = "uart0-data"; 52289a6139cSPaul Cercueil bias-disable; 52389a6139cSPaul Cercueil }; 52489a6139cSPaul Cercueil 52589a6139cSPaul Cercueil pins_uart1: uart1 { 52689a6139cSPaul Cercueil function = "uart1"; 52789a6139cSPaul Cercueil groups = "uart1-data"; 52889a6139cSPaul Cercueil bias-disable; 52989a6139cSPaul Cercueil }; 53089a6139cSPaul Cercueil 531948f2708SAlexandre GRIVEAUX pins_uart2: uart2 { 532948f2708SAlexandre GRIVEAUX function = "uart2"; 533948f2708SAlexandre GRIVEAUX groups = "uart2-data", "uart2-hwflow"; 534948f2708SAlexandre GRIVEAUX bias-disable; 535948f2708SAlexandre GRIVEAUX }; 536948f2708SAlexandre GRIVEAUX 5371ca1c87fSZhou Yanjie pins_uart3: uart3 { 5381ca1c87fSZhou Yanjie function = "uart3"; 5391ca1c87fSZhou Yanjie groups = "uart3-data", "uart3-hwflow"; 54089a6139cSPaul Cercueil bias-disable; 54189a6139cSPaul Cercueil }; 54289a6139cSPaul Cercueil 54389a6139cSPaul Cercueil pins_uart4: uart4 { 54489a6139cSPaul Cercueil function = "uart4"; 54589a6139cSPaul Cercueil groups = "uart4-data"; 54689a6139cSPaul Cercueil bias-disable; 54789a6139cSPaul Cercueil }; 54889a6139cSPaul Cercueil 54973f2b940SAlexandre GRIVEAUX pins_i2c0: i2c0 { 55073f2b940SAlexandre GRIVEAUX function = "i2c0"; 55173f2b940SAlexandre GRIVEAUX groups = "i2c0-data"; 55273f2b940SAlexandre GRIVEAUX bias-disable; 55373f2b940SAlexandre GRIVEAUX }; 55473f2b940SAlexandre GRIVEAUX 55573f2b940SAlexandre GRIVEAUX pins_i2c1: i2c1 { 55673f2b940SAlexandre GRIVEAUX function = "i2c1"; 55773f2b940SAlexandre GRIVEAUX groups = "i2c1-data"; 55873f2b940SAlexandre GRIVEAUX bias-disable; 55973f2b940SAlexandre GRIVEAUX }; 56073f2b940SAlexandre GRIVEAUX 56173f2b940SAlexandre GRIVEAUX pins_i2c2: i2c2 { 56273f2b940SAlexandre GRIVEAUX function = "i2c2"; 56373f2b940SAlexandre GRIVEAUX groups = "i2c2-data"; 56473f2b940SAlexandre GRIVEAUX bias-disable; 56573f2b940SAlexandre GRIVEAUX }; 56673f2b940SAlexandre GRIVEAUX 56773f2b940SAlexandre GRIVEAUX pins_i2c3: i2c3 { 56873f2b940SAlexandre GRIVEAUX function = "i2c3"; 56973f2b940SAlexandre GRIVEAUX groups = "i2c3-data"; 57073f2b940SAlexandre GRIVEAUX bias-disable; 57173f2b940SAlexandre GRIVEAUX }; 57273f2b940SAlexandre GRIVEAUX 57373f2b940SAlexandre GRIVEAUX pins_i2c4: i2c4 { 57473f2b940SAlexandre GRIVEAUX function = "i2c4"; 57573f2b940SAlexandre GRIVEAUX groups = "i2c4-data-e"; 57673f2b940SAlexandre GRIVEAUX bias-disable; 57773f2b940SAlexandre GRIVEAUX }; 57873f2b940SAlexandre GRIVEAUX 579ae1b8d2cSPaul Boddie pins_hdmi_ddc: hdmi_ddc { 580ae1b8d2cSPaul Boddie function = "hdmi-ddc"; 581ae1b8d2cSPaul Boddie groups = "hdmi-ddc"; 582ae1b8d2cSPaul Boddie bias-disable; 583ae1b8d2cSPaul Boddie }; 584ae1b8d2cSPaul Boddie 58589a6139cSPaul Cercueil pins_nemc: nemc { 58689a6139cSPaul Cercueil function = "nemc"; 58789a6139cSPaul Cercueil groups = "nemc-data", "nemc-cle-ale", "nemc-rd-we", "nemc-frd-fwe"; 58889a6139cSPaul Cercueil bias-disable; 58989a6139cSPaul Cercueil }; 59089a6139cSPaul Cercueil 59189a6139cSPaul Cercueil pins_nemc_cs1: nemc-cs1 { 59289a6139cSPaul Cercueil function = "nemc-cs1"; 59389a6139cSPaul Cercueil groups = "nemc-cs1"; 59489a6139cSPaul Cercueil bias-disable; 59589a6139cSPaul Cercueil }; 5968fec5539SHarvey Hunt 5978fec5539SHarvey Hunt pins_nemc_cs6: nemc-cs6 { 5988fec5539SHarvey Hunt function = "nemc-cs6"; 5998fec5539SHarvey Hunt groups = "nemc-cs6"; 6008fec5539SHarvey Hunt bias-disable; 6018fec5539SHarvey Hunt }; 602671963bbSEzequiel Garcia 603671963bbSEzequiel Garcia pins_mmc0: mmc0 { 604671963bbSEzequiel Garcia function = "mmc0"; 605671963bbSEzequiel Garcia groups = "mmc0-1bit-e", "mmc0-4bit-e"; 606671963bbSEzequiel Garcia bias-disable; 607671963bbSEzequiel Garcia }; 608671963bbSEzequiel Garcia 609671963bbSEzequiel Garcia pins_mmc1: mmc1 { 610671963bbSEzequiel Garcia function = "mmc1"; 611671963bbSEzequiel Garcia groups = "mmc1-1bit-d", "mmc1-4bit-d"; 612671963bbSEzequiel Garcia bias-disable; 613671963bbSEzequiel Garcia }; 61489a6139cSPaul Cercueil}; 615ae1b8d2cSPaul Boddie 616ae1b8d2cSPaul Boddie&hdmi { 617ae1b8d2cSPaul Boddie status = "okay"; 618ae1b8d2cSPaul Boddie 619ae1b8d2cSPaul Boddie pinctrl-names = "default"; 620ae1b8d2cSPaul Boddie pinctrl-0 = <&pins_hdmi_ddc>; 621ae1b8d2cSPaul Boddie 622ae1b8d2cSPaul Boddie ports { 623ae1b8d2cSPaul Boddie #address-cells = <1>; 624ae1b8d2cSPaul Boddie #size-cells = <0>; 625ae1b8d2cSPaul Boddie 626ae1b8d2cSPaul Boddie port@0 { 627ae1b8d2cSPaul Boddie reg = <0>; 628ae1b8d2cSPaul Boddie dw_hdmi_in: endpoint { 629ae1b8d2cSPaul Boddie remote-endpoint = <&lcd_out>; 630ae1b8d2cSPaul Boddie }; 631ae1b8d2cSPaul Boddie }; 632ae1b8d2cSPaul Boddie 633ae1b8d2cSPaul Boddie port@1 { 634ae1b8d2cSPaul Boddie reg = <1>; 635ae1b8d2cSPaul Boddie dw_hdmi_out: endpoint { 636ae1b8d2cSPaul Boddie remote-endpoint = <&hdmi_con>; 637ae1b8d2cSPaul Boddie }; 638ae1b8d2cSPaul Boddie }; 639ae1b8d2cSPaul Boddie }; 640ae1b8d2cSPaul Boddie}; 641ae1b8d2cSPaul Boddie 642ae1b8d2cSPaul Boddie&lcdc0 { 643ae1b8d2cSPaul Boddie status = "okay"; 644ae1b8d2cSPaul Boddie 645ae1b8d2cSPaul Boddie port { 646ae1b8d2cSPaul Boddie lcd_out: endpoint { 647ae1b8d2cSPaul Boddie remote-endpoint = <&dw_hdmi_in>; 648ae1b8d2cSPaul Boddie }; 649ae1b8d2cSPaul Boddie }; 650ae1b8d2cSPaul Boddie}; 651