diff --git a/alt-trees/lora/README.md b/alt-trees/lora/README.md new file mode 100644 index 0000000..921163e --- /dev/null +++ b/alt-trees/lora/README.md @@ -0,0 +1,38 @@ +# A device tree for my LORA hat.. +* Brings a UART out for talking to the HAT +* Has the SPI interface in case I add a screen, and an I2C interface for talking to peripherals. +* Otherwise unassigned.. + +nb: screen is https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A) + + MangoPI MQ Pro GPIO header (dtb name: MangoPi MQ Pro) + +Gpio Header: + func des pin pin des func + 3v3 1 --o o-- 2 5v + i2c0 (2502000.i2c:205) PG13 3 --o o-- 4 5v + i2c0 (2502000.i2c:204) PG12 5 --o o-- 6 gnd + free (39) PB7 7 --o o-- 8 PB8 uart0 (2500000.serial:40) + gnd 9 --o o-- 10 PB9 uart0 (2500000.serial:41) + free (117) PD21 11 --o o-- 12 PB5 free (37) + free (118) PD22 13 --o o-- 14 gnd + free (32) PB0 15 --o o-- 16 PB1 free (33) + 3v3 17 --o o-- 18 PD14 spi1 (4026000.spi:110) + spi1 (4026000.spi:108) PD12 19 --o o-- 20 gnd + spi1 (4026000.spi:109) PD13 21 --o o-- 22 PC1 free (65) + spi1 (4026000.spi:107) PD11 23 --o o-- 24 PD10 spi1 (4026000.spi:106) + gnd 25 --o o-- 26 PD15 spi1 (4026000.spi:111) + free (145) PE17 27 --o o-- 28 PE16 free (144) + free (42) PB10 29 --o o-- 30 gnd + free (43) PB11 31 --o o-- 32 PC0 free (64) + free (44) PB12 33 --o o-- 34 gnd + free (38) PB6 35 --o o-- 36 PB2 uart4 (2501000.serial:34) + free (113) PD17 37 --o o-- 38 PB3 uart4 (2501000.serial:35) + gnd 39 --o o-- 40 PB4 free (36) + +Other gpio outputs of interest: +-- PD18: Blue Status Led - gpio (2000000.pinctrl:114) + +Notes: +- I2C pins 3,5,27 and 28 (PG13, PG12, PE17 and PE16) have 10K pullup resistors to 3v3 +- The Status LED (PD18) is common with the LED_PWM pin on the DSI/LVDS output diff --git a/alt-trees/lora/mqpro-lora-hat.dts b/alt-trees/lora/mqpro-lora-hat.dts new file mode 100644 index 0000000..e31736c --- /dev/null +++ b/alt-trees/lora/mqpro-lora-hat.dts @@ -0,0 +1,317 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +// Copyright (C) 2022 Samuel Holland + +#include +#include + +/dts-v1/; + +#include "sun20i-d1.dtsi" +#include "sun20i-common-regulators.dtsi" + +/ { + model = "MangoPi MQ Pro"; + compatible = "widora,mangopi-mq-pro", "allwinner,sun20i-d1"; + + aliases { + ethernet0 = &rtl8723ds; + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + hdmi_connector: connector { + compatible = "hdmi-connector"; + type = "c"; + + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&hdmi_out_connector>; + }; + }; + }; + + leds { + compatible = "gpio-leds"; + + led-0 { + color = ; + function = LED_FUNCTION_STATUS; + gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */ + }; + }; + + reg_avdd2v8: avdd2v8 { + compatible = "regulator-fixed"; + regulator-name = "avdd2v8"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + vin-supply = <®_vcc_3v3>; + }; + + reg_dvdd: dvdd { + compatible = "regulator-fixed"; + regulator-name = "dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + vin-supply = <®_vcc_3v3>; + }; + + 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 17 GPIO_ACTIVE_LOW>; /* PG17 */ + }; +}; + +&cpu0 { + cpu-supply = <®_vdd_cpu>; +}; + +&dcxo { + clock-frequency = <24000000>; +}; + +&codec { + routing = "Internal Speaker", "HPOUTL", + "Internal Speaker", "HPOUTR"; + widgets = "Speaker", "Internal Speaker"; + status = "okay"; +}; + +&de { + status = "okay"; +}; + +&ehci1 { + status = "okay"; +}; + +&hdmi { + status = "okay"; +}; + +&hdmi_out { + hdmi_out_connector: endpoint { + remote-endpoint = <&hdmi_connector_in>; + }; +}; + +&hdmi_phy { + status = "okay"; +}; + +&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"; + + rtl8723ds: wifi@1 { + reg = <1>; + interrupt-parent = <&pio>; + interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 */ + interrupt-names = "host-wake"; + }; +}; + +&ohci1 { + status = "okay"; +}; + +&pio { + vcc-pe-supply = <®_avdd2v8>; + + /omit-if-no-ref/ + i2c0_pg12_pins: i2c0-pg12-pins { + pins = "PG12", "PG13"; + function = "i2c0"; + }; + + /omit-if-no-ref/ + i2c1_pb4_pins: i2c1-pb4-pins { + pins = "PB4", "PB5"; + function = "i2c1"; + }; + + /omit-if-no-ref/ + i2c2_pb0_pins: i2c2-pb0-pins { + pins = "PB0", "PB1"; + function = "i2c2"; + }; + + /omit-if-no-ref/ + i2c2_pc0_pins: i2c2-pc0-pins { + pins = "PC0", "PC1"; + function = "i2c2"; + }; + + /omit-if-no-ref/ + i2c3_pe16_pins: i2c3-pe16-pins { + pins = "PE16", "PE17"; + function = "i2c3"; + }; + + /omit-if-no-ref/ + uart2_pc0_pins: uart2-pc0-pins { + pins = "PC0", "PC1"; + function = "uart2"; + }; + + /omit-if-no-ref/ + uart3_pd10_pins: uart3-pd10-pins { + pins = "PD10", "PD11"; + function = "uart3"; + }; + + /omit-if-no-ref/ + uart3_pd13_rts_cts_pins: uart3-pd13-rts-cts-pins { + pins = "PD13", "PD14"; + function = "uart3"; + }; + + /omit-if-no-ref/ + uart3_pb6_pins: uart3-pb6-pins { + pins = "PB6", "PB7"; + function = "uart3"; + }; + + /omit-if-no-ref/ + uart4_pb2_pins: uart4-pb2-pins { + pins = "PB2", "PB3"; + function = "uart4"; + }; + + /omit-if-no-ref/ + uart5_pb4_pins: uart5-pb4-pins { + pins = "PB4", "PB5"; + function = "uart5"; + }; +}; + +&spi1 { + pinctrl-0 = <&spi1_pd_pins>; // conflicts uart3 + pinctrl-names = "default"; + status = "okay"; +}; + +&i2c0 { + pinctrl-0 = <&i2c0_pg12_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +/* disabled +&i2c1 { + pinctrl-0 = <&i2c1_pb4_pins>; // conflicts uart5 + pinctrl-names = "default"; + status = "okay"; +}; + +&i2c2 { + pinctrl-0 = <&i2c2_pb0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&i2c2 { + pinctrl-0 = <&i2c2_pc0_pins>; // conflicts uart2 + pinctrl-names = "default"; + status = "okay"; +}; + +&i2c3 { + pinctrl-0 = <&i2c3_pe16_pins>; + pinctrl-names = "default"; + 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"; + + bluetooth { + compatible = "realtek,rtl8723ds-bt"; + device-wake-gpios = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18 */ + enable-gpios = <&pio 6 15 GPIO_ACTIVE_HIGH>; /* PG15 */ + host-wake-gpios = <&pio 6 14 GPIO_ACTIVE_HIGH>; /* PG14 */ + }; +}; + +/* Disabled +&uart2 { + pinctrl-0 = <&uart2_pc0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&uart3 { + uart-has-rtscts; + pinctrl-0 = <&uart3_pd10_pins>, <&uart3_pd13_rts_cts_pins>; // conflicts spi1 + pinctrl-names = "default"; + status = "okay"; +}; + +&uart3 { + pinctrl-0 = <&uart3_pb6_pins>; + pinctrl-names = "default"; + status = "okay"; +}; +*/ + +&uart4 { + pinctrl-0 = <&uart4_pb2_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +/* Disabled +&uart5 { + pinctrl-0 = <&uart5_pb4_pins>; // conflicts i2c1 + pinctrl-names = "default"; + status = "okay"; +}; +*/ + +&usb_otg { + dr_mode = "peripheral"; + status = "okay"; +}; + +&usbphy { + usb1_vbus-supply = <®_vcc>; + status = "okay"; +}; diff --git a/reference/waveshare_3.5_tftA/3.5inch-RPi-LCD-A-Schematic.pdf b/reference/waveshare_3.5_tftA/3.5inch-RPi-LCD-A-Schematic.pdf new file mode 100644 index 0000000..6dfeff8 Binary files /dev/null and b/reference/waveshare_3.5_tftA/3.5inch-RPi-LCD-A-Schematic.pdf differ