Merge pull request #1 from easytarget/36generic

new build script, latest kermels, still WIP
This commit is contained in:
Owen Carter 2024-08-22 16:21:35 +02:00 committed by GitHub
commit 901d437201
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 41 additions and 1577 deletions

3
.gitignore vendored
View File

@ -1,5 +1,6 @@
# specific to this repo
device-tree/dtspp/*.dts*
device-tree/*/*.dts*
source/*
# Byte-compiled / optimized / DLL files
__pycache__/

View File

@ -1,5 +0,0 @@
rm -f dtbs/*
for file in `ls ../{*.dts,*.dtsi}`; do
echo "Processing $file to ${file##*/}"
cpp -I/usr/src/linux-headers-6.8.0-31-generic/include/ -nostdinc -undef -x assembler-with-cpp $file > ${file##*/}
done

27
device-tree/make_dtb.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
# Takes a list of dts files for the specified architecture and emits appropriate compiled dtb files for use in customised deviceTree setups.
#
dtc=/usr/bin/dtc
revision=`/usr/bin/uname -r`
echo "Compiling against headers for $revision"
if [ -d "$revision" ]; then
echo "Using existing build directory"
else
echo "Creating new build directory"
mkdir "$revision"
fi
for file in `ls {*.dts,*.dtsi}`; do
echo "Processing $file to $revision/${file##*/}"
cpp -I/usr/src/linux-headers-$revision/include/ -nostdinc -undef -x assembler-with-cpp $file > $revision/${file##*/}
done
cd $revision
for file in `ls *.dts`; do
out=${file/.dts/.dtb}
echo "Compiling: $revision/$file > $revision/$out"
$dtc $file > $out
done

View File

@ -0,0 +1 @@
../source/linux-riscv-6.8.0/arch/riscv/boot/dts/allwinner/sun20i-common-regulators.dtsi

View File

@ -1,64 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ or MIT)
// Copyright (C) 2021-2022 Samuel Holland <samuel@sholland.org>
/ {
reg_vcc: vcc {
compatible = "regulator-fixed";
regulator-name = "vcc";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
reg_vcc_3v3: vcc-3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&reg_vcc>;
};
};
&codec {
avcc-supply = <&reg_aldo>;
hpvcc-supply = <&reg_hpldo>;
};
&hdmi {
hvcc-supply = <&reg_ldoa>;
};
&lradc {
vref-supply = <&reg_aldo>;
};
&pio {
vcc-pb-supply = <&reg_vcc_3v3>;
vcc-pc-supply = <&reg_vcc_3v3>;
vcc-pd-supply = <&reg_vcc_3v3>;
vcc-pe-supply = <&reg_vcc_3v3>;
vcc-pf-supply = <&reg_vcc_3v3>;
vcc-pg-supply = <&reg_vcc_3v3>;
};
&reg_aldo {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
vdd33-supply = <&reg_vcc_3v3>;
};
&reg_hpldo {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
hpldoin-supply = <&reg_vcc_3v3>;
};
&reg_ldoa {
regulator-always-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
ldo-in-supply = <&reg_vcc_3v3>;
};
&ths {
vref-supply = <&reg_aldo>;
};

View File

@ -0,0 +1 @@
../source/linux-riscv-6.8.0/arch/riscv/boot/dts/allwinner/sun20i-d1-mangopi-mq-pro.dts

File diff suppressed because it is too large Load Diff

1
device-tree/sun20i-d1.dtsi Symbolic link
View File

@ -0,0 +1 @@
../source/linux-riscv-6.8.0/arch/riscv/boot/dts/allwinner/sun20i-d1.dtsi

1
device-tree/sun20i-d1s.dtsi Symbolic link
View File

@ -0,0 +1 @@
../source/linux-riscv-6.8.0/arch/riscv/boot/dts/allwinner/sun20i-d1s.dtsi

View File

@ -0,0 +1 @@
../source/linux-riscv-6.8.0/arch/riscv/boot/dts/allwinner/sunxi-d1-t113.dtsi

View File

@ -0,0 +1 @@
../source/linux-riscv-6.8.0/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi

View File

@ -2,8 +2,8 @@
Each folder contains a `.dtb` file, which is the compiled device tree itself, plus a `.dts` with the original source and a `.gpio` file showing the GPIO pin mappings.
## Generic
[The generic device tree I will use in my project, suitable for many occasions](./generic)
## Common
[The common (generic) device tree I will use in my project, suitable for many occasions](./common)
* Has 2x UART (plus the console uart), 2x I2C. 1xSPI
* 12 unassigned GPIO pins
@ -37,7 +37,7 @@ $ cd MQ-Pro-IO
```
# Install the Device Tree
Installing is, in principle, simple.
Installing is, in principle, simple.
* Clone this repo on to the MQ pro and, as root, copy the desired `.dtb` file to the `/boot/dbts` folder.
* Then make a soft link in the root of the /boot folder named `dtb-mqpro` that points to the file you just copied.
```console

View File

@ -0,0 +1 @@
6.8.0-31-common.gpio

View File

@ -1,231 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ or MIT)
// Copyright (C) 2022 Samuel Holland <samuel@sholland.org>
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pwm/pwm.h>
#include "sun20i-d1.dtsi"
#include "sun20i-d1-common-regulators.dtsi"
/ {
model = "MangoPi MQ Pro";
compatible = "widora,mangopi-mq-pro", "allwinner,sun20i-d1";
aliases {
ethernet0 = &rtl8723ds;
mmc0 = &mmc0;
};
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 = <LED_COLOR_ID_BLUE>;
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 = <&reg_vcc_3v3>;
};
reg_dvdd: dvdd {
compatible = "regulator-fixed";
regulator-name = "dvdd";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
vin-supply = <&reg_vcc_3v3>;
};
reg_vdd_cpu: vdd-cpu {
compatible = "regulator-fixed";
regulator-name = "vdd-cpu";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
vin-supply = <&reg_vcc>;
};
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&pio 6 17 GPIO_ACTIVE_LOW>; /* PG17 */
};
};
&cpu0 {
cpu-supply = <&reg_vdd_cpu>;
};
&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 = <&reg_vcc_3v3>;
vqmmc-supply = <&reg_vcc_3v3>;
pinctrl-0 = <&mmc0_pins>;
pinctrl-names = "default";
status = "okay";
};
&mmc1 {
bus-width = <4>;
mmc-pwrseq = <&wifi_pwrseq>;
non-removable;
vmmc-supply = <&reg_vcc_3v3>;
vqmmc-supply = <&reg_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 = <&reg_avdd2v8>;
};
&spi1 {
pinctrl-0 = <&spi1_pd_pins>;
pinctrl-names = "default";
status = "okay";
};
&i2c0 {
pinctrl-0 = <&i2c0_pg12_pins>;
pinctrl-names = "default";
status = "okay";
};
/*&i2c1 {
pinctrl-0 = <&i2c1_pb4_pins>;
pinctrl-names = "default";
status = "okay";
};*/
/*&i2c2 {
pinctrl-0 = <&i2c2_pc0_pins>;
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 */
};
};
&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>;
pinctrl-names = "default";
status = "okay";
};*/
&uart4 {
pinctrl-0 = <&uart4_pb2_pins>;
pinctrl-names = "default";
status = "okay";
};
/*&uart5 {
pinctrl-0 = <&uart5_pb4_pins>;
pinctrl-names = "default";
status = "okay";
};*/
&pwm {
//pinctrl-0 = <&pwm0_pb12_pin>, <&pwm2_pd18_pin>;
pinctrl-0 = <&pwm0_pb12_pin>;
pinctrl-names = "default";
status = "okay";
};
&usb_otg {
dr_mode = "peripheral";
status = "okay";
};
&usbphy {
usb0_vbus-supply = <&reg_vcc>;
status = "okay";
};

View File

@ -1 +0,0 @@
6.8.0-31-generic.gpio

2
source/README.md Normal file
View File

@ -0,0 +1,2 @@
# Download the sources here if desired