162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/dts-v1/; 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#include "jz4780.dtsi" 562306a36Sopenharmony_ci#include <dt-bindings/clock/ingenic,tcu.h> 662306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 762306a36Sopenharmony_ci#include <dt-bindings/input/input.h> 862306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 962306a36Sopenharmony_ci#include <dt-bindings/regulator/active-semi,8865-regulator.h> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/ { 1262306a36Sopenharmony_ci compatible = "img,ci20", "ingenic,jz4780"; 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci aliases { 1562306a36Sopenharmony_ci serial0 = &uart0; 1662306a36Sopenharmony_ci serial1 = &uart1; 1762306a36Sopenharmony_ci serial3 = &uart3; 1862306a36Sopenharmony_ci serial4 = &uart4; 1962306a36Sopenharmony_ci }; 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci chosen { 2262306a36Sopenharmony_ci stdout-path = &uart4; 2362306a36Sopenharmony_ci }; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci memory { 2662306a36Sopenharmony_ci device_type = "memory"; 2762306a36Sopenharmony_ci reg = <0x0 0x10000000 2862306a36Sopenharmony_ci 0x30000000 0x30000000>; 2962306a36Sopenharmony_ci }; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci gpio-keys { 3262306a36Sopenharmony_ci compatible = "gpio-keys"; 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci switch { 3562306a36Sopenharmony_ci label = "ci20:sw1"; 3662306a36Sopenharmony_ci linux,code = <KEY_F13>; 3762306a36Sopenharmony_ci gpios = <&gpd 17 GPIO_ACTIVE_HIGH>; 3862306a36Sopenharmony_ci wakeup-source; 3962306a36Sopenharmony_ci }; 4062306a36Sopenharmony_ci }; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci leds { 4362306a36Sopenharmony_ci compatible = "gpio-leds"; 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci led-0 { 4662306a36Sopenharmony_ci label = "ci20:red:led0"; 4762306a36Sopenharmony_ci gpios = <&gpc 3 GPIO_ACTIVE_HIGH>; 4862306a36Sopenharmony_ci linux,default-trigger = "none"; 4962306a36Sopenharmony_ci }; 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci led-1 { 5262306a36Sopenharmony_ci label = "ci20:red:led1"; 5362306a36Sopenharmony_ci gpios = <&gpc 2 GPIO_ACTIVE_HIGH>; 5462306a36Sopenharmony_ci linux,default-trigger = "nand-disk"; 5562306a36Sopenharmony_ci }; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci led-2 { 5862306a36Sopenharmony_ci label = "ci20:red:led2"; 5962306a36Sopenharmony_ci gpios = <&gpc 1 GPIO_ACTIVE_HIGH>; 6062306a36Sopenharmony_ci linux,default-trigger = "cpu1"; 6162306a36Sopenharmony_ci }; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci led-3 { 6462306a36Sopenharmony_ci label = "ci20:red:led3"; 6562306a36Sopenharmony_ci gpios = <&gpc 0 GPIO_ACTIVE_HIGH>; 6662306a36Sopenharmony_ci linux,default-trigger = "cpu0"; 6762306a36Sopenharmony_ci }; 6862306a36Sopenharmony_ci }; 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci eth0_power: fixedregulator-0 { 7162306a36Sopenharmony_ci compatible = "regulator-fixed"; 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci regulator-name = "eth0_power"; 7462306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 7562306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci gpio = <&gpb 25 0>; 7862306a36Sopenharmony_ci enable-active-high; 7962306a36Sopenharmony_ci }; 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci hdmi_out: connector { 8262306a36Sopenharmony_ci compatible = "hdmi-connector"; 8362306a36Sopenharmony_ci label = "HDMI OUT"; 8462306a36Sopenharmony_ci type = "a"; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci ddc-en-gpios = <&gpa 25 GPIO_ACTIVE_HIGH>; 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci port { 8962306a36Sopenharmony_ci hdmi_con: endpoint { 9062306a36Sopenharmony_ci remote-endpoint = <&dw_hdmi_out>; 9162306a36Sopenharmony_ci }; 9262306a36Sopenharmony_ci }; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci ir: ir { 9662306a36Sopenharmony_ci compatible = "gpio-ir-receiver"; 9762306a36Sopenharmony_ci gpios = <&gpe 3 GPIO_ACTIVE_LOW>; 9862306a36Sopenharmony_ci }; 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci bt_power: fixedregulator-1 { 10162306a36Sopenharmony_ci compatible = "regulator-fixed"; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci regulator-name = "bt_power"; 10462306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 10562306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 10662306a36Sopenharmony_ci regulator-settling-time-us = <1400>; 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci vin-supply = <&vcc_50>; 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci gpio = <&gpb 19 0>; 11162306a36Sopenharmony_ci enable-active-high; 11262306a36Sopenharmony_ci }; 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci otg_power: fixedregulator-2 { 11562306a36Sopenharmony_ci compatible = "regulator-fixed"; 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci regulator-name = "otg_power"; 11862306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 11962306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci gpio = <&gpf 15 0>; 12262306a36Sopenharmony_ci enable-active-high; 12362306a36Sopenharmony_ci }; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci wifi_power: fixedregulator-4 { 12662306a36Sopenharmony_ci compatible = "regulator-fixed"; 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci regulator-name = "wifi_power"; 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci /* 13162306a36Sopenharmony_ci * Technically it's 5V, the WiFi chip has its own internal 13262306a36Sopenharmony_ci * regulators; but the MMC/SD subsystem won't accept such a 13362306a36Sopenharmony_ci * value. 13462306a36Sopenharmony_ci */ 13562306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 13662306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 13762306a36Sopenharmony_ci regulator-settling-time-us = <150000>; 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci vin-supply = <&bt_power>; 14062306a36Sopenharmony_ci }; 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci vcc_33v: fixedregulator-5 { 14362306a36Sopenharmony_ci compatible = "regulator-fixed"; 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci regulator-name = "vcc_33v"; 14662306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 14762306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 14862306a36Sopenharmony_ci regulator-always-on; 14962306a36Sopenharmony_ci }; 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci wifi_pwrseq: pwrseq { 15262306a36Sopenharmony_ci compatible = "mmc-pwrseq-simple"; 15362306a36Sopenharmony_ci reset-gpios = <&gpf 7 GPIO_ACTIVE_LOW>; 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci clocks = <&rtc_dev>; 15662306a36Sopenharmony_ci clock-names = "ext_clock"; 15762306a36Sopenharmony_ci }; 15862306a36Sopenharmony_ci}; 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci&ext { 16162306a36Sopenharmony_ci clock-frequency = <48000000>; 16262306a36Sopenharmony_ci}; 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci&cgu { 16562306a36Sopenharmony_ci /* 16662306a36Sopenharmony_ci * Use the 32.768 kHz oscillator as the parent of the RTC for a higher 16762306a36Sopenharmony_ci * precision. 16862306a36Sopenharmony_ci */ 16962306a36Sopenharmony_ci assigned-clocks = <&cgu JZ4780_CLK_OTGPHY>, <&cgu JZ4780_CLK_RTC>, 17062306a36Sopenharmony_ci <&cgu JZ4780_CLK_SSIPLL>, <&cgu JZ4780_CLK_SSI>, 17162306a36Sopenharmony_ci <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_MSCMUX>; 17262306a36Sopenharmony_ci assigned-clock-parents = <0>, <&cgu JZ4780_CLK_RTCLK>, 17362306a36Sopenharmony_ci <&cgu JZ4780_CLK_MPLL>, 17462306a36Sopenharmony_ci <&cgu JZ4780_CLK_SSIPLL>, 17562306a36Sopenharmony_ci <0>, <&cgu JZ4780_CLK_MPLL>; 17662306a36Sopenharmony_ci assigned-clock-rates = <48000000>, <0>, <54000000>, <0>, <27000000>; 17762306a36Sopenharmony_ci}; 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci&tcu { 18062306a36Sopenharmony_ci /* 18162306a36Sopenharmony_ci * 750 kHz for the system timers and clocksource, 18262306a36Sopenharmony_ci * use channel #0 and #1 for the per cpu system timers, 18362306a36Sopenharmony_ci * and use channel #2 for the clocksource. 18462306a36Sopenharmony_ci * 18562306a36Sopenharmony_ci * 3000 kHz for the OST timer to provide a higher 18662306a36Sopenharmony_ci * precision clocksource. 18762306a36Sopenharmony_ci */ 18862306a36Sopenharmony_ci assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, 18962306a36Sopenharmony_ci <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_OST>; 19062306a36Sopenharmony_ci assigned-clock-rates = <750000>, <750000>, <750000>, <3000000>; 19162306a36Sopenharmony_ci}; 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_ci&mmc0 { 19462306a36Sopenharmony_ci status = "okay"; 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci bus-width = <4>; 19762306a36Sopenharmony_ci max-frequency = <50000000>; 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci pinctrl-names = "default"; 20062306a36Sopenharmony_ci pinctrl-0 = <&pins_mmc0>; 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci cd-gpios = <&gpf 20 GPIO_ACTIVE_LOW>; 20362306a36Sopenharmony_ci vmmc-supply = <&vcc_33v>; 20462306a36Sopenharmony_ci vqmmc-supply = <&vcc_33v>; 20562306a36Sopenharmony_ci}; 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ci&mmc1 { 20862306a36Sopenharmony_ci status = "okay"; 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci bus-width = <4>; 21162306a36Sopenharmony_ci max-frequency = <25000000>; 21262306a36Sopenharmony_ci mmc-pwrseq = <&wifi_pwrseq>; 21362306a36Sopenharmony_ci vmmc-supply = <&wifi_power>; 21462306a36Sopenharmony_ci vqmmc-supply = <&wifi_io>; 21562306a36Sopenharmony_ci non-removable; 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci pinctrl-names = "default"; 21862306a36Sopenharmony_ci pinctrl-0 = <&pins_mmc1>; 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci #address-cells = <1>; 22162306a36Sopenharmony_ci #size-cells = <0>; 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci wifi@1 { 22462306a36Sopenharmony_ci compatible = "brcm,bcm4329-fmac"; 22562306a36Sopenharmony_ci reg = <1>; 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci interrupt-parent = <&gpd>; 22862306a36Sopenharmony_ci interrupts = <9 IRQ_TYPE_EDGE_FALLING>; 22962306a36Sopenharmony_ci interrupt-names = "host-wake"; 23062306a36Sopenharmony_ci }; 23162306a36Sopenharmony_ci}; 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci&uart0 { 23462306a36Sopenharmony_ci status = "okay"; 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci pinctrl-names = "default"; 23762306a36Sopenharmony_ci pinctrl-0 = <&pins_uart0>; 23862306a36Sopenharmony_ci}; 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ci&uart1 { 24162306a36Sopenharmony_ci status = "okay"; 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci pinctrl-names = "default"; 24462306a36Sopenharmony_ci pinctrl-0 = <&pins_uart1>; 24562306a36Sopenharmony_ci}; 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ci&uart2 { 24862306a36Sopenharmony_ci status = "okay"; 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci pinctrl-names = "default"; 25162306a36Sopenharmony_ci pinctrl-0 = <&pins_uart2>; 25262306a36Sopenharmony_ci uart-has-rtscts; 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_ci bluetooth { 25562306a36Sopenharmony_ci compatible = "brcm,bcm4330-bt"; 25662306a36Sopenharmony_ci 25762306a36Sopenharmony_ci vbat-supply = <&bt_power>; 25862306a36Sopenharmony_ci vddio-supply = <&wifi_io>; 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci interrupt-parent = <&gpf>; 26162306a36Sopenharmony_ci interrupts = <6 IRQ_TYPE_EDGE_RISING>; 26262306a36Sopenharmony_ci interrupt-names = "host-wakeup"; 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ci clocks = <&rtc_dev>; 26562306a36Sopenharmony_ci clock-names = "lpo"; 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_ci reset-gpios = <&gpf 8 GPIO_ACTIVE_LOW>; 26862306a36Sopenharmony_ci device-wakeup-gpios = <&gpf 5 GPIO_ACTIVE_HIGH>; 26962306a36Sopenharmony_ci shutdown-gpios = <&gpf 4 GPIO_ACTIVE_HIGH>; 27062306a36Sopenharmony_ci }; 27162306a36Sopenharmony_ci}; 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci&uart3 { 27462306a36Sopenharmony_ci status = "okay"; 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ci pinctrl-names = "default"; 27762306a36Sopenharmony_ci pinctrl-0 = <&pins_uart3>; 27862306a36Sopenharmony_ci}; 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci&uart4 { 28162306a36Sopenharmony_ci status = "okay"; 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ci pinctrl-names = "default"; 28462306a36Sopenharmony_ci pinctrl-0 = <&pins_uart4>; 28562306a36Sopenharmony_ci}; 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ci&i2c0 { 28862306a36Sopenharmony_ci status = "okay"; 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci pinctrl-names = "default"; 29162306a36Sopenharmony_ci pinctrl-0 = <&pins_i2c0>; 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci clock-frequency = <400000>; 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci act8600: act8600@5a { 29662306a36Sopenharmony_ci compatible = "active-semi,act8600"; 29762306a36Sopenharmony_ci reg = <0x5a>; 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci regulators { 30062306a36Sopenharmony_ci vddcore: DCDC1 { 30162306a36Sopenharmony_ci regulator-min-microvolt = <1125000>; 30262306a36Sopenharmony_ci regulator-max-microvolt = <1125000>; 30362306a36Sopenharmony_ci vp1-supply = <&vcc_33v>; 30462306a36Sopenharmony_ci regulator-always-on; 30562306a36Sopenharmony_ci }; 30662306a36Sopenharmony_ci vddmem: DCDC2 { 30762306a36Sopenharmony_ci regulator-min-microvolt = <1500000>; 30862306a36Sopenharmony_ci regulator-max-microvolt = <1500000>; 30962306a36Sopenharmony_ci vp2-supply = <&vcc_33v>; 31062306a36Sopenharmony_ci regulator-always-on; 31162306a36Sopenharmony_ci }; 31262306a36Sopenharmony_ci vcc_33: DCDC3 { 31362306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 31462306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 31562306a36Sopenharmony_ci vp3-supply = <&vcc_33v>; 31662306a36Sopenharmony_ci regulator-always-on; 31762306a36Sopenharmony_ci }; 31862306a36Sopenharmony_ci vcc_50: SUDCDC_REG4 { 31962306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 32062306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 32162306a36Sopenharmony_ci regulator-always-on; 32262306a36Sopenharmony_ci }; 32362306a36Sopenharmony_ci vcc_25: LDO5 { 32462306a36Sopenharmony_ci regulator-min-microvolt = <2500000>; 32562306a36Sopenharmony_ci regulator-max-microvolt = <2500000>; 32662306a36Sopenharmony_ci inl-supply = <&vcc_33v>; 32762306a36Sopenharmony_ci regulator-always-on; 32862306a36Sopenharmony_ci }; 32962306a36Sopenharmony_ci wifi_io: LDO6 { 33062306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 33162306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 33262306a36Sopenharmony_ci regulator-settling-time-us = <150000>; 33362306a36Sopenharmony_ci inl-supply = <&vcc_33v>; 33462306a36Sopenharmony_ci }; 33562306a36Sopenharmony_ci cim_io_28: LDO7 { 33662306a36Sopenharmony_ci regulator-min-microvolt = <2800000>; 33762306a36Sopenharmony_ci regulator-max-microvolt = <2800000>; 33862306a36Sopenharmony_ci inl-supply = <&vcc_33v>; 33962306a36Sopenharmony_ci }; 34062306a36Sopenharmony_ci cim_io_15: LDO8 { 34162306a36Sopenharmony_ci regulator-min-microvolt = <1500000>; 34262306a36Sopenharmony_ci regulator-max-microvolt = <1500000>; 34362306a36Sopenharmony_ci inl-supply = <&vcc_33v>; 34462306a36Sopenharmony_ci }; 34562306a36Sopenharmony_ci vrtc_18: LDO_REG9 { 34662306a36Sopenharmony_ci /* Despite the datasheet stating 3.3V 34762306a36Sopenharmony_ci * for REG9 and the driver expecting that, 34862306a36Sopenharmony_ci * REG9 outputs 1.8V. 34962306a36Sopenharmony_ci * Likely the CI20 uses a proprietary 35062306a36Sopenharmony_ci * factory programmed chip variant. 35162306a36Sopenharmony_ci * Since this is a simple on/off LDO the 35262306a36Sopenharmony_ci * exact values do not matter. 35362306a36Sopenharmony_ci */ 35462306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 35562306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 35662306a36Sopenharmony_ci regulator-always-on; 35762306a36Sopenharmony_ci }; 35862306a36Sopenharmony_ci vcc_11: LDO_REG10 { 35962306a36Sopenharmony_ci regulator-min-microvolt = <1200000>; 36062306a36Sopenharmony_ci regulator-max-microvolt = <1200000>; 36162306a36Sopenharmony_ci regulator-always-on; 36262306a36Sopenharmony_ci }; 36362306a36Sopenharmony_ci }; 36462306a36Sopenharmony_ci }; 36562306a36Sopenharmony_ci}; 36662306a36Sopenharmony_ci 36762306a36Sopenharmony_ci&i2c1 { 36862306a36Sopenharmony_ci status = "okay"; 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_ci pinctrl-names = "default"; 37162306a36Sopenharmony_ci pinctrl-0 = <&pins_i2c1>; 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci}; 37462306a36Sopenharmony_ci 37562306a36Sopenharmony_ci&i2c2 { 37662306a36Sopenharmony_ci status = "okay"; 37762306a36Sopenharmony_ci 37862306a36Sopenharmony_ci pinctrl-names = "default"; 37962306a36Sopenharmony_ci pinctrl-0 = <&pins_i2c2>; 38062306a36Sopenharmony_ci 38162306a36Sopenharmony_ci}; 38262306a36Sopenharmony_ci 38362306a36Sopenharmony_ci&i2c3 { 38462306a36Sopenharmony_ci status = "okay"; 38562306a36Sopenharmony_ci 38662306a36Sopenharmony_ci pinctrl-names = "default"; 38762306a36Sopenharmony_ci pinctrl-0 = <&pins_i2c3>; 38862306a36Sopenharmony_ci 38962306a36Sopenharmony_ci}; 39062306a36Sopenharmony_ci 39162306a36Sopenharmony_ci&i2c4 { 39262306a36Sopenharmony_ci status = "okay"; 39362306a36Sopenharmony_ci 39462306a36Sopenharmony_ci pinctrl-names = "default"; 39562306a36Sopenharmony_ci pinctrl-0 = <&pins_i2c4>; 39662306a36Sopenharmony_ci 39762306a36Sopenharmony_ci clock-frequency = <400000>; 39862306a36Sopenharmony_ci 39962306a36Sopenharmony_ci rtc@51 { 40062306a36Sopenharmony_ci compatible = "nxp,pcf8563"; 40162306a36Sopenharmony_ci reg = <0x51>; 40262306a36Sopenharmony_ci 40362306a36Sopenharmony_ci interrupt-parent = <&gpf>; 40462306a36Sopenharmony_ci interrupts = <30 IRQ_TYPE_LEVEL_LOW>; 40562306a36Sopenharmony_ci }; 40662306a36Sopenharmony_ci}; 40762306a36Sopenharmony_ci 40862306a36Sopenharmony_ci&nemc { 40962306a36Sopenharmony_ci status = "okay"; 41062306a36Sopenharmony_ci 41162306a36Sopenharmony_ci nandc: nand-controller@1 { 41262306a36Sopenharmony_ci compatible = "ingenic,jz4780-nand"; 41362306a36Sopenharmony_ci reg = <1 0 0x1000000>; 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ci #address-cells = <1>; 41662306a36Sopenharmony_ci #size-cells = <0>; 41762306a36Sopenharmony_ci 41862306a36Sopenharmony_ci ecc-engine = <&bch>; 41962306a36Sopenharmony_ci 42062306a36Sopenharmony_ci ingenic,nemc-tAS = <10>; 42162306a36Sopenharmony_ci ingenic,nemc-tAH = <5>; 42262306a36Sopenharmony_ci ingenic,nemc-tBP = <10>; 42362306a36Sopenharmony_ci ingenic,nemc-tAW = <15>; 42462306a36Sopenharmony_ci ingenic,nemc-tSTRV = <100>; 42562306a36Sopenharmony_ci 42662306a36Sopenharmony_ci /* 42762306a36Sopenharmony_ci * Only CLE/ALE are needed for the devices that are connected, rather 42862306a36Sopenharmony_ci * than the full address line set. 42962306a36Sopenharmony_ci */ 43062306a36Sopenharmony_ci pinctrl-names = "default"; 43162306a36Sopenharmony_ci pinctrl-0 = <&pins_nemc>; 43262306a36Sopenharmony_ci 43362306a36Sopenharmony_ci nand@1 { 43462306a36Sopenharmony_ci reg = <1>; 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ci nand-ecc-step-size = <1024>; 43762306a36Sopenharmony_ci nand-ecc-strength = <24>; 43862306a36Sopenharmony_ci nand-ecc-mode = "hw"; 43962306a36Sopenharmony_ci nand-on-flash-bbt; 44062306a36Sopenharmony_ci 44162306a36Sopenharmony_ci pinctrl-names = "default"; 44262306a36Sopenharmony_ci pinctrl-0 = <&pins_nemc_cs1>; 44362306a36Sopenharmony_ci 44462306a36Sopenharmony_ci partitions { 44562306a36Sopenharmony_ci compatible = "fixed-partitions"; 44662306a36Sopenharmony_ci #address-cells = <2>; 44762306a36Sopenharmony_ci #size-cells = <2>; 44862306a36Sopenharmony_ci 44962306a36Sopenharmony_ci partition@0 { 45062306a36Sopenharmony_ci label = "u-boot-spl"; 45162306a36Sopenharmony_ci reg = <0x0 0x0 0x0 0x800000>; 45262306a36Sopenharmony_ci }; 45362306a36Sopenharmony_ci 45462306a36Sopenharmony_ci partition@800000 { 45562306a36Sopenharmony_ci label = "u-boot"; 45662306a36Sopenharmony_ci reg = <0x0 0x800000 0x0 0x200000>; 45762306a36Sopenharmony_ci }; 45862306a36Sopenharmony_ci 45962306a36Sopenharmony_ci partition@a00000 { 46062306a36Sopenharmony_ci label = "u-boot-env"; 46162306a36Sopenharmony_ci reg = <0x0 0xa00000 0x0 0x200000>; 46262306a36Sopenharmony_ci }; 46362306a36Sopenharmony_ci 46462306a36Sopenharmony_ci partition@c00000 { 46562306a36Sopenharmony_ci label = "boot"; 46662306a36Sopenharmony_ci reg = <0x0 0xc00000 0x0 0x4000000>; 46762306a36Sopenharmony_ci }; 46862306a36Sopenharmony_ci 46962306a36Sopenharmony_ci partition@4c00000 { 47062306a36Sopenharmony_ci label = "system"; 47162306a36Sopenharmony_ci reg = <0x0 0x4c00000 0x1 0xfb400000>; 47262306a36Sopenharmony_ci }; 47362306a36Sopenharmony_ci }; 47462306a36Sopenharmony_ci }; 47562306a36Sopenharmony_ci }; 47662306a36Sopenharmony_ci 47762306a36Sopenharmony_ci dm9000@6 { 47862306a36Sopenharmony_ci compatible = "davicom,dm9000"; 47962306a36Sopenharmony_ci davicom,no-eeprom; 48062306a36Sopenharmony_ci 48162306a36Sopenharmony_ci pinctrl-names = "default"; 48262306a36Sopenharmony_ci pinctrl-0 = <&pins_nemc_cs6>; 48362306a36Sopenharmony_ci 48462306a36Sopenharmony_ci reg = <6 0 1>, /* addr */ 48562306a36Sopenharmony_ci <6 2 1>; /* data */ 48662306a36Sopenharmony_ci 48762306a36Sopenharmony_ci ingenic,nemc-tAS = <15>; 48862306a36Sopenharmony_ci ingenic,nemc-tAH = <10>; 48962306a36Sopenharmony_ci ingenic,nemc-tBP = <20>; 49062306a36Sopenharmony_ci ingenic,nemc-tAW = <50>; 49162306a36Sopenharmony_ci ingenic,nemc-tSTRV = <100>; 49262306a36Sopenharmony_ci 49362306a36Sopenharmony_ci reset-gpios = <&gpf 12 GPIO_ACTIVE_LOW>; 49462306a36Sopenharmony_ci vcc-supply = <ð0_power>; 49562306a36Sopenharmony_ci 49662306a36Sopenharmony_ci interrupt-parent = <&gpe>; 49762306a36Sopenharmony_ci interrupts = <19 IRQ_TYPE_EDGE_RISING>; 49862306a36Sopenharmony_ci 49962306a36Sopenharmony_ci nvmem-cells = <ð0_addr>; 50062306a36Sopenharmony_ci nvmem-cell-names = "mac-address"; 50162306a36Sopenharmony_ci }; 50262306a36Sopenharmony_ci}; 50362306a36Sopenharmony_ci 50462306a36Sopenharmony_ci&bch { 50562306a36Sopenharmony_ci status = "okay"; 50662306a36Sopenharmony_ci}; 50762306a36Sopenharmony_ci 50862306a36Sopenharmony_ci&otg_phy { 50962306a36Sopenharmony_ci status = "okay"; 51062306a36Sopenharmony_ci 51162306a36Sopenharmony_ci vcc-supply = <&otg_power>; 51262306a36Sopenharmony_ci}; 51362306a36Sopenharmony_ci 51462306a36Sopenharmony_ci&otg { 51562306a36Sopenharmony_ci status = "okay"; 51662306a36Sopenharmony_ci}; 51762306a36Sopenharmony_ci 51862306a36Sopenharmony_ci&pinctrl { 51962306a36Sopenharmony_ci pins_uart0: uart0 { 52062306a36Sopenharmony_ci function = "uart0"; 52162306a36Sopenharmony_ci groups = "uart0-data"; 52262306a36Sopenharmony_ci bias-disable; 52362306a36Sopenharmony_ci }; 52462306a36Sopenharmony_ci 52562306a36Sopenharmony_ci pins_uart1: uart1 { 52662306a36Sopenharmony_ci function = "uart1"; 52762306a36Sopenharmony_ci groups = "uart1-data"; 52862306a36Sopenharmony_ci bias-disable; 52962306a36Sopenharmony_ci }; 53062306a36Sopenharmony_ci 53162306a36Sopenharmony_ci pins_uart2: uart2 { 53262306a36Sopenharmony_ci function = "uart2"; 53362306a36Sopenharmony_ci groups = "uart2-data", "uart2-hwflow"; 53462306a36Sopenharmony_ci bias-disable; 53562306a36Sopenharmony_ci }; 53662306a36Sopenharmony_ci 53762306a36Sopenharmony_ci pins_uart3: uart3 { 53862306a36Sopenharmony_ci function = "uart3"; 53962306a36Sopenharmony_ci groups = "uart3-data", "uart3-hwflow"; 54062306a36Sopenharmony_ci bias-disable; 54162306a36Sopenharmony_ci }; 54262306a36Sopenharmony_ci 54362306a36Sopenharmony_ci pins_uart4: uart4 { 54462306a36Sopenharmony_ci function = "uart4"; 54562306a36Sopenharmony_ci groups = "uart4-data"; 54662306a36Sopenharmony_ci bias-disable; 54762306a36Sopenharmony_ci }; 54862306a36Sopenharmony_ci 54962306a36Sopenharmony_ci pins_i2c0: i2c0 { 55062306a36Sopenharmony_ci function = "i2c0"; 55162306a36Sopenharmony_ci groups = "i2c0-data"; 55262306a36Sopenharmony_ci bias-disable; 55362306a36Sopenharmony_ci }; 55462306a36Sopenharmony_ci 55562306a36Sopenharmony_ci pins_i2c1: i2c1 { 55662306a36Sopenharmony_ci function = "i2c1"; 55762306a36Sopenharmony_ci groups = "i2c1-data"; 55862306a36Sopenharmony_ci bias-disable; 55962306a36Sopenharmony_ci }; 56062306a36Sopenharmony_ci 56162306a36Sopenharmony_ci pins_i2c2: i2c2 { 56262306a36Sopenharmony_ci function = "i2c2"; 56362306a36Sopenharmony_ci groups = "i2c2-data"; 56462306a36Sopenharmony_ci bias-disable; 56562306a36Sopenharmony_ci }; 56662306a36Sopenharmony_ci 56762306a36Sopenharmony_ci pins_i2c3: i2c3 { 56862306a36Sopenharmony_ci function = "i2c3"; 56962306a36Sopenharmony_ci groups = "i2c3-data"; 57062306a36Sopenharmony_ci bias-disable; 57162306a36Sopenharmony_ci }; 57262306a36Sopenharmony_ci 57362306a36Sopenharmony_ci pins_i2c4: i2c4 { 57462306a36Sopenharmony_ci function = "i2c4"; 57562306a36Sopenharmony_ci groups = "i2c4-data-e"; 57662306a36Sopenharmony_ci bias-disable; 57762306a36Sopenharmony_ci }; 57862306a36Sopenharmony_ci 57962306a36Sopenharmony_ci pins_hdmi_ddc: hdmi_ddc { 58062306a36Sopenharmony_ci function = "hdmi-ddc"; 58162306a36Sopenharmony_ci groups = "hdmi-ddc"; 58262306a36Sopenharmony_ci bias-disable; 58362306a36Sopenharmony_ci }; 58462306a36Sopenharmony_ci 58562306a36Sopenharmony_ci pins_nemc: nemc { 58662306a36Sopenharmony_ci function = "nemc"; 58762306a36Sopenharmony_ci groups = "nemc-data", "nemc-cle-ale", "nemc-rd-we", "nemc-frd-fwe"; 58862306a36Sopenharmony_ci bias-disable; 58962306a36Sopenharmony_ci }; 59062306a36Sopenharmony_ci 59162306a36Sopenharmony_ci pins_nemc_cs1: nemc-cs1 { 59262306a36Sopenharmony_ci function = "nemc-cs1"; 59362306a36Sopenharmony_ci groups = "nemc-cs1"; 59462306a36Sopenharmony_ci bias-disable; 59562306a36Sopenharmony_ci }; 59662306a36Sopenharmony_ci 59762306a36Sopenharmony_ci pins_nemc_cs6: nemc-cs6 { 59862306a36Sopenharmony_ci function = "nemc-cs6"; 59962306a36Sopenharmony_ci groups = "nemc-cs6"; 60062306a36Sopenharmony_ci bias-disable; 60162306a36Sopenharmony_ci }; 60262306a36Sopenharmony_ci 60362306a36Sopenharmony_ci pins_mmc0: mmc0 { 60462306a36Sopenharmony_ci function = "mmc0"; 60562306a36Sopenharmony_ci groups = "mmc0-1bit-e", "mmc0-4bit-e"; 60662306a36Sopenharmony_ci bias-disable; 60762306a36Sopenharmony_ci }; 60862306a36Sopenharmony_ci 60962306a36Sopenharmony_ci pins_mmc1: mmc1 { 61062306a36Sopenharmony_ci function = "mmc1"; 61162306a36Sopenharmony_ci groups = "mmc1-1bit-d", "mmc1-4bit-d"; 61262306a36Sopenharmony_ci bias-disable; 61362306a36Sopenharmony_ci }; 61462306a36Sopenharmony_ci}; 61562306a36Sopenharmony_ci 61662306a36Sopenharmony_ci&hdmi { 61762306a36Sopenharmony_ci status = "okay"; 61862306a36Sopenharmony_ci 61962306a36Sopenharmony_ci pinctrl-names = "default"; 62062306a36Sopenharmony_ci pinctrl-0 = <&pins_hdmi_ddc>; 62162306a36Sopenharmony_ci 62262306a36Sopenharmony_ci ports { 62362306a36Sopenharmony_ci #address-cells = <1>; 62462306a36Sopenharmony_ci #size-cells = <0>; 62562306a36Sopenharmony_ci 62662306a36Sopenharmony_ci port@0 { 62762306a36Sopenharmony_ci reg = <0>; 62862306a36Sopenharmony_ci dw_hdmi_in: endpoint { 62962306a36Sopenharmony_ci remote-endpoint = <&lcd_out>; 63062306a36Sopenharmony_ci }; 63162306a36Sopenharmony_ci }; 63262306a36Sopenharmony_ci 63362306a36Sopenharmony_ci port@1 { 63462306a36Sopenharmony_ci reg = <1>; 63562306a36Sopenharmony_ci dw_hdmi_out: endpoint { 63662306a36Sopenharmony_ci remote-endpoint = <&hdmi_con>; 63762306a36Sopenharmony_ci }; 63862306a36Sopenharmony_ci }; 63962306a36Sopenharmony_ci }; 64062306a36Sopenharmony_ci}; 64162306a36Sopenharmony_ci 64262306a36Sopenharmony_ci&lcdc0 { 64362306a36Sopenharmony_ci status = "okay"; 64462306a36Sopenharmony_ci 64562306a36Sopenharmony_ci port { 64662306a36Sopenharmony_ci lcd_out: endpoint { 64762306a36Sopenharmony_ci remote-endpoint = <&dw_hdmi_in>; 64862306a36Sopenharmony_ci }; 64962306a36Sopenharmony_ci }; 65062306a36Sopenharmony_ci}; 651