// SPDX-License-Identifier: (GPL-2.0+ or MIT) // Copyright (C) 2021-2022 Samuel Holland <samuel@sholland.org> /* * gpio line names * * The Nezha-D1 has a 40-pin IO header. Some of these pins are routed * directly to pads on the SoC, others come from an 8-bit pcf857x IO * expander. Therefore, these line names are specified in two places: * one set for the pcf857x, and one set for the pio controller. * * Lines which are routed to the 40-pin header are named as follows: * <pin#> [<pin name>] * where: * <pin#> is the actual pin number of the 40-pin header * <pin name> is the name of the pin by function/gpio# * * For details regarding pin numbers and names see the schematics (under * "IO EXPAND"): * http://dl.linux-sunxi.org/D1/D1_Nezha_development_board_schematic_diagram_20210224.pdf */ #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> /dts-v1/; #include "sun20i-d1.dtsi" #include "sun20i-common-regulators.dtsi" / { model = "Allwinner D1 Nezha"; compatible = "allwinner,d1-nezha", "allwinner,sun20i-d1"; aliases { ethernet0 = &emac; ethernet1 = &xr829; serial0 = &uart0; }; chosen { stdout-path = "serial0:115200n8"; }; reg_usbvbus: usbvbus { compatible = "regulator-fixed"; regulator-name = "usbvbus"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; gpio = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */ enable-active-high; vin-supply = <®_vcc>; }; /* * This regulator is PWM-controlled, but the PWM controller is not * yet supported, so fix the regulator to its default voltage. */ reg_vdd_cpu: vdd-cpu { compatible = "regulator-fixed"; regulator-name = "vdd-cpu"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; vin-supply = <®_vcc>; }; wifi_pwrseq: wifi-pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&pio 6 12 GPIO_ACTIVE_LOW>; /* PG12 */ }; }; &cpu0 { cpu-supply = <®_vdd_cpu>; }; &dcxo { clock-frequency = <24000000>; }; &ehci0 { status = "okay"; }; &ehci1 { status = "okay"; }; &emac { pinctrl-0 = <&rgmii_pe_pins>; pinctrl-names = "default"; phy-handle = <&ext_rgmii_phy>; phy-mode = "rgmii-id"; phy-supply = <®_vcc_3v3>; status = "okay"; }; &i2c2 { pinctrl-0 = <&i2c2_pb0_pins>; pinctrl-names = "default"; status = "okay"; pcf8574a: gpio@38 { compatible = "nxp,pcf8574a"; reg = <0x38>; interrupt-parent = <&pio>; interrupts = <1 2 IRQ_TYPE_LEVEL_LOW>; /* PB2 */ interrupt-controller; gpio-controller; #gpio-cells = <2>; #interrupt-cells = <2>; gpio-line-names = "pin13 [gpio8]", "pin16 [gpio10]", "pin18 [gpio11]", "pin26 [gpio17]", "pin22 [gpio14]", "pin28 [gpio19]", "pin37 [gpio23]", "pin11 [gpio6]"; }; }; &mdio { ext_rgmii_phy: ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <1>; }; }; &mmc0 { bus-width = <4>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */ disable-wp; vmmc-supply = <®_vcc_3v3>; vqmmc-supply = <®_vcc_3v3>; pinctrl-0 = <&mmc0_pins>; pinctrl-names = "default"; status = "okay"; }; &mmc1 { bus-width = <4>; mmc-pwrseq = <&wifi_pwrseq>; non-removable; vmmc-supply = <®_vcc_3v3>; vqmmc-supply = <®_vcc_3v3>; pinctrl-0 = <&mmc1_pins>; pinctrl-names = "default"; status = "okay"; xr829: wifi@1 { reg = <1>; interrupt-parent = <&pio>; interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 */ interrupt-names = "host-wake"; }; }; &ohci0 { status = "okay"; }; &ohci1 { status = "okay"; }; &uart0 { pinctrl-0 = <&uart0_pb8_pins>; pinctrl-names = "default"; status = "okay"; }; &uart1 { uart-has-rtscts; pinctrl-0 = <&uart1_pg6_pins>, <&uart1_pg8_rts_cts_pins>; pinctrl-names = "default"; status = "okay"; /* XR829 bluetooth is connected here */ }; &usb_otg { dr_mode = "otg"; status = "okay"; }; &usbphy { usb0_id_det-gpios = <&pio 3 21 GPIO_ACTIVE_HIGH>; /* PD21 */ usb0_vbus_det-gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */ usb0_vbus-supply = <®_usbvbus>; usb1_vbus-supply = <®_vcc>; status = "okay"; }; &pio { gpio-line-names = /* Port A */ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", /* Port B */ "pin5 [gpio2/twi2-sck]", "pin3 [gpio1/twi2-sda]", "", "pin38 [gpio24/i2s2-din]", "pin40 [gpio25/i2s2-dout]", "pin12 [gpio7/i2s-clk]", "pin35 [gpio22/i2s2-lrck]", "", "pin8 [gpio4/uart0-txd]", "pin10 [gpio5/uart0-rxd]", "", "", "pin15 [gpio9]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", /* Port C */ "", "pin31 [gpio21]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", /* Port D */ "", "", "", "", "", "", "", "", "", "", "pin24 [gpio16/spi1-ce0]", "pin23 [gpio15/spi1-clk]", "pin19 [gpio12/spi1-mosi]", "pin21 [gpio13/spi1-miso]", "pin27 [gpio18/spi1-hold]", "pin29 [gpio20/spi1-wp]", "", "", "", "", "", "", "pin7 [gpio3/pwm]"; };