| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| /* |
| * Roseapple Pi |
| * |
| * Copyright (C) 2020-2021 Cristian Ciocaltea <cristian.ciocaltea@gmail.com> |
| */ |
| |
| /dts-v1/; |
| |
| #include "owl-s500.dtsi" |
| |
| / { |
| compatible = "roseapplepi,roseapplepi", "actions,s500"; |
| model = "Roseapple Pi"; |
| |
| aliases { |
| mmc0 = &mmc0; |
| serial2 = &uart2; |
| }; |
| |
| chosen { |
| stdout-path = "serial2:115200n8"; |
| }; |
| |
| memory@0 { |
| device_type = "memory"; |
| reg = <0x0 0x80000000>; /* 2GB */ |
| }; |
| |
| syspwr: regulator-5v0 { |
| compatible = "regulator-fixed"; |
| regulator-name = "SYSPWR"; |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| regulator-always-on; |
| }; |
| }; |
| |
| &cpu0 { |
| cpu0-supply = <&vdd_cpu>; |
| }; |
| |
| &i2c0 { |
| status = "okay"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2c0_pins>; |
| |
| atc260x: pmic@65 { |
| compatible = "actions,atc2603c"; |
| reg = <0x65>; |
| interrupt-parent = <&sirq>; |
| interrupts = <2 IRQ_TYPE_LEVEL_HIGH>; |
| |
| reset-time-sec = <6>; |
| |
| regulators { |
| compatible = "actions,atc2603c-regulator"; |
| |
| dcdc1-supply = <&syspwr>; |
| dcdc2-supply = <&syspwr>; |
| dcdc3-supply = <&syspwr>; |
| ldo1-supply = <&syspwr>; |
| ldo2-supply = <&syspwr>; |
| ldo3-supply = <&syspwr>; |
| ldo5-supply = <&syspwr>; |
| ldo6-supply = <&syspwr>; |
| ldo7-supply = <&syspwr>; |
| ldo8-supply = <&syspwr>; |
| ldo11-supply = <&syspwr>; |
| ldo12-supply = <&syspwr>; |
| switchldo1-supply = <&vcc>; |
| |
| vdd_cpu: dcdc1 { |
| regulator-name = "VDD_CPU"; |
| regulator-min-microvolt = <700000>; |
| regulator-max-microvolt = <1400000>; |
| regulator-always-on; |
| }; |
| |
| vddq: dcdc2 { |
| regulator-name = "VDDQ"; |
| regulator-min-microvolt = <1300000>; |
| regulator-max-microvolt = <2150000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| vcc: dcdc3 { |
| regulator-name = "VCC"; |
| regulator-min-microvolt = <2600000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| }; |
| |
| vcc_3v3: ldo1 { |
| regulator-name = "VCC_3V3"; |
| regulator-min-microvolt = <2600000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| }; |
| |
| avcc: ldo2 { |
| regulator-name = "AVCC"; |
| regulator-min-microvolt = <2600000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| }; |
| |
| vdd_1v8: ldo3 { |
| regulator-name = "VDD_1V8"; |
| regulator-min-microvolt = <1500000>; |
| regulator-max-microvolt = <2000000>; |
| regulator-always-on; |
| }; |
| |
| vcc_3v1: ldo5 { |
| regulator-name = "VCC_3V1"; |
| regulator-min-microvolt = <2600000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| avdd: ldo6 { |
| regulator-name = "AVDD"; |
| regulator-min-microvolt = <700000>; |
| regulator-max-microvolt = <1400000>; |
| regulator-always-on; |
| }; |
| |
| sens_1v8: ldo7 { |
| regulator-name = "SENS_1V8"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| ldo8: ldo8 { |
| regulator-name = "LDO8"; |
| regulator-min-microvolt = <2300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| svcc: ldo11 { |
| regulator-name = "SVCC"; |
| regulator-min-microvolt = <2600000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| }; |
| |
| rtc_vdd: ldo12 { |
| regulator-name = "RTC_VDD"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| }; |
| |
| sd_vcc: switchldo1 { |
| regulator-name = "SD_VCC"; |
| regulator-min-microvolt = <3000000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| }; |
| }; |
| }; |
| |
| &i2c1 { |
| status = "disabled"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2c1_pins>; |
| }; |
| |
| &i2c2 { |
| status = "disabled"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2c2_pins>; |
| }; |
| |
| &pinctrl { |
| i2c0_pins: i2c0-pins { |
| pinmux { |
| groups = "i2c0_mfp"; |
| function = "i2c0"; |
| }; |
| |
| pinconf { |
| pins = "i2c0_sclk", "i2c0_sdata"; |
| bias-pull-up; |
| }; |
| }; |
| |
| i2c1_pins: i2c1-pins { |
| pinconf { |
| pins = "i2c1_sclk", "i2c1_sdata"; |
| bias-pull-up; |
| }; |
| }; |
| |
| i2c2_pins: i2c2-pins { |
| pinconf { |
| pins = "i2c2_sclk", "i2c2_sdata"; |
| bias-pull-up; |
| }; |
| }; |
| |
| mmc0_pins: mmc0-pins { |
| pinmux { |
| groups = "sd0_d0_mfp", "sd0_d1_mfp", "sd0_d2_d3_mfp", |
| "sd0_cmd_mfp", "sd0_clk_mfp"; |
| function = "sd0"; |
| }; |
| |
| drv-pinconf { |
| groups = "sd0_d0_d3_drv", "sd0_cmd_drv", "sd0_clk_drv"; |
| drive-strength = <8>; |
| }; |
| |
| bias0-pinconf { |
| pins = "sd0_d0", "sd0_d1", "sd0_d2", |
| "sd0_d3", "sd0_cmd"; |
| bias-pull-up; |
| }; |
| |
| bias1-pinconf { |
| pins = "sd0_clk"; |
| bias-pull-down; |
| }; |
| }; |
| |
| ethernet_pins: ethernet-pins { |
| eth_rmii-pinmux { |
| groups = "rmii_txd0_mfp", "rmii_txd1_mfp", |
| "rmii_rxd0_mfp", "rmii_rxd1_mfp", |
| "rmii_txen_mfp", "rmii_rxen_mfp", |
| "rmii_crs_dv_mfp", "rmii_ref_clk_mfp"; |
| function = "eth_rmii"; |
| }; |
| |
| phy_clk-pinmux { |
| groups = "clko_25m_mfp"; |
| function = "clko_25m"; |
| }; |
| |
| ref_clk-pinconf { |
| groups = "rmii_ref_clk_drv"; |
| drive-strength = <2>; |
| }; |
| |
| }; |
| }; |
| |
| /* uSD */ |
| &mmc0 { |
| status = "okay"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&mmc0_pins>; |
| no-sdio; |
| no-mmc; |
| no-1-8-v; |
| cd-gpios = <&pinctrl 117 GPIO_ACTIVE_LOW>; |
| bus-width = <4>; |
| vmmc-supply = <&sd_vcc>; |
| vqmmc-supply = <&sd_vcc>; |
| }; |
| |
| ðernet { |
| pinctrl-names = "default"; |
| pinctrl-0 = <ðernet_pins>; |
| phy-mode = "rmii"; |
| phy-handle = <ð_phy>; |
| status = "okay"; |
| |
| mdio { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| reset-gpios = <&pinctrl 88 GPIO_ACTIVE_LOW>; /* GPIOC24 */ |
| reset-delay-us = <10000>; |
| reset-post-delay-us = <150000>; |
| |
| eth_phy: ethernet-phy@3 { |
| reg = <0x3>; |
| max-speed = <100>; |
| interrupt-parent = <&sirq>; |
| interrupts = <0 IRQ_TYPE_LEVEL_LOW>; |
| }; |
| }; |
| }; |
| |
| &twd_timer { |
| status = "okay"; |
| }; |
| |
| &timer { |
| clocks = <&hosc>; |
| }; |
| |
| &uart2 { |
| status = "okay"; |
| }; |