forked from thesofproject/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request thesofproject#270 from TheSven73/rust-for-linux-pd…
…ev-pr1 Simple Rust driver that touches real hardware: PR 1/5
- Loading branch information
Showing
10 changed files
with
630 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
// SPDX-License-Identifier: GPL-2.0+ | ||
/* | ||
* Copyright (C) 2017 Stefan Wahren <stefan.wahren@i2se.com> | ||
*/ | ||
|
||
/dts-v1/; | ||
#include "bcm2835.dtsi" | ||
#include "bcm2835-rpi.dtsi" | ||
#include "bcm283x-rpi-usb-otg.dtsi" | ||
|
||
/ { | ||
compatible = "raspberrypi,model-zero-w", "brcm,bcm2835"; | ||
model = "Raspberry Pi Zero W"; | ||
|
||
bcm2835-rng-rust { | ||
compatible = "brcm,bcm2835-rng"; | ||
status = "okay"; | ||
}; | ||
|
||
memory@0 { | ||
device_type = "memory"; | ||
reg = <0 0x20000000>; | ||
}; | ||
|
||
chosen { | ||
/* 8250 auxiliary UART instead of pl011 */ | ||
stdout-path = "serial1:115200n8"; | ||
}; | ||
|
||
leds { | ||
act { | ||
gpios = <&gpio 47 GPIO_ACTIVE_LOW>; | ||
}; | ||
}; | ||
|
||
wifi_pwrseq: wifi-pwrseq { | ||
compatible = "mmc-pwrseq-simple"; | ||
reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>; | ||
}; | ||
}; | ||
|
||
&gpio { | ||
/* | ||
* This is based on the official GPU firmware DT blob. | ||
* | ||
* Legend: | ||
* "NC" = not connected (no rail from the SoC) | ||
* "FOO" = GPIO line named "FOO" on the schematic | ||
* "FOO_N" = GPIO line named "FOO" on schematic, active low | ||
*/ | ||
gpio-line-names = "ID_SDA", | ||
"ID_SCL", | ||
"SDA1", | ||
"SCL1", | ||
"GPIO_GCLK", | ||
"GPIO5", | ||
"GPIO6", | ||
"SPI_CE1_N", | ||
"SPI_CE0_N", | ||
"SPI_MISO", | ||
"SPI_MOSI", | ||
"SPI_SCLK", | ||
"GPIO12", | ||
"GPIO13", | ||
/* Serial port */ | ||
"TXD0", | ||
"RXD0", | ||
"GPIO16", | ||
"GPIO17", | ||
"GPIO18", | ||
"GPIO19", | ||
"GPIO20", | ||
"GPIO21", | ||
"GPIO22", | ||
"GPIO23", | ||
"GPIO24", | ||
"GPIO25", | ||
"GPIO26", | ||
"GPIO27", | ||
"SDA0", | ||
"SCL0", | ||
"NC", /* GPIO30 */ | ||
"NC", /* GPIO31 */ | ||
"NC", /* GPIO32 */ | ||
"NC", /* GPIO33 */ | ||
"NC", /* GPIO34 */ | ||
"NC", /* GPIO35 */ | ||
"NC", /* GPIO36 */ | ||
"NC", /* GPIO37 */ | ||
"NC", /* GPIO38 */ | ||
"NC", /* GPIO39 */ | ||
"CAM_GPIO1", /* GPIO40 */ | ||
"WL_ON", /* GPIO41 */ | ||
"NC", /* GPIO42 */ | ||
"WIFI_CLK", /* GPIO43 */ | ||
"CAM_GPIO0", /* GPIO44 */ | ||
"BT_ON", /* GPIO45 */ | ||
"HDMI_HPD_N", | ||
"STATUS_LED_N", | ||
/* Used by SD Card */ | ||
"SD_CLK_R", | ||
"SD_CMD_R", | ||
"SD_DATA0_R", | ||
"SD_DATA1_R", | ||
"SD_DATA2_R", | ||
"SD_DATA3_R"; | ||
|
||
pinctrl-0 = <&gpioout &alt0>; | ||
}; | ||
|
||
&hdmi { | ||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; | ||
power-domains = <&power RPI_POWER_DOMAIN_HDMI>; | ||
status = "okay"; | ||
}; | ||
|
||
&sdhci { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>; | ||
bus-width = <4>; | ||
mmc-pwrseq = <&wifi_pwrseq>; | ||
non-removable; | ||
status = "okay"; | ||
|
||
brcmf: wifi@1 { | ||
reg = <1>; | ||
compatible = "brcm,bcm4329-fmac"; | ||
}; | ||
}; | ||
|
||
&sdhost { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&sdhost_gpio48>; | ||
bus-width = <4>; | ||
status = "okay"; | ||
}; | ||
|
||
&uart0 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&uart0_gpio32 &uart0_ctsrts_gpio30>; | ||
status = "okay"; | ||
|
||
bluetooth { | ||
compatible = "brcm,bcm43438-bt"; | ||
max-speed = <2000000>; | ||
shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>; | ||
}; | ||
}; | ||
|
||
&uart1 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&uart1_gpio14>; | ||
status = "okay"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
/dts-v1/; | ||
#include "bcm2836.dtsi" | ||
#include "bcm2836-rpi.dtsi" | ||
#include "bcm283x-rpi-smsc9514.dtsi" | ||
#include "bcm283x-rpi-usb-host.dtsi" | ||
|
||
/ { | ||
compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; | ||
model = "Raspberry Pi 2 Model B"; | ||
|
||
memory@0 { | ||
device_type = "memory"; | ||
reg = <0 0x40000000>; | ||
}; | ||
|
||
bcm2835-rng-rust { | ||
compatible = "brcm,bcm2835-rng"; | ||
status = "okay"; | ||
}; | ||
|
||
leds { | ||
act { | ||
gpios = <&gpio 47 GPIO_ACTIVE_HIGH>; | ||
}; | ||
|
||
pwr { | ||
label = "PWR"; | ||
gpios = <&gpio 35 GPIO_ACTIVE_HIGH>; | ||
default-state = "keep"; | ||
linux,default-trigger = "default-on"; | ||
}; | ||
}; | ||
}; | ||
|
||
&gpio { | ||
/* | ||
* Taken from rpi_SCH_2b_1p2_reduced.pdf and | ||
* the official GPU firmware DT blob. | ||
* | ||
* Legend: | ||
* "NC" = not connected (no rail from the SoC) | ||
* "FOO" = GPIO line named "FOO" on the schematic | ||
* "FOO_N" = GPIO line named "FOO" on schematic, active low | ||
*/ | ||
gpio-line-names = "ID_SDA", | ||
"ID_SCL", | ||
"SDA1", | ||
"SCL1", | ||
"GPIO_GCLK", | ||
"GPIO5", | ||
"GPIO6", | ||
"SPI_CE1_N", | ||
"SPI_CE0_N", | ||
"SPI_MISO", | ||
"SPI_MOSI", | ||
"SPI_SCLK", | ||
"GPIO12", | ||
"GPIO13", | ||
/* Serial port */ | ||
"TXD0", | ||
"RXD0", | ||
"GPIO16", | ||
"GPIO17", | ||
"GPIO18", | ||
"GPIO19", | ||
"GPIO20", | ||
"GPIO21", | ||
"GPIO22", | ||
"GPIO23", | ||
"GPIO24", | ||
"GPIO25", | ||
"GPIO26", | ||
"GPIO27", | ||
"SDA0", | ||
"SCL0", | ||
"", /* GPIO30 */ | ||
"LAN_RUN", | ||
"CAM_GPIO1", | ||
"", /* GPIO33 */ | ||
"", /* GPIO34 */ | ||
"PWR_LOW_N", | ||
"", /* GPIO36 */ | ||
"", /* GPIO37 */ | ||
"USB_LIMIT", | ||
"", /* GPIO39 */ | ||
"PWM0_OUT", | ||
"CAM_GPIO0", | ||
"SMPS_SCL", | ||
"SMPS_SDA", | ||
"ETHCLK", | ||
"PWM1_OUT", | ||
"HDMI_HPD_N", | ||
"STATUS_LED", | ||
/* Used by SD Card */ | ||
"SD_CLK_R", | ||
"SD_CMD_R", | ||
"SD_DATA0_R", | ||
"SD_DATA1_R", | ||
"SD_DATA2_R", | ||
"SD_DATA3_R"; | ||
|
||
pinctrl-0 = <&gpioout &alt0 &i2s_alt0>; | ||
|
||
/* I2S interface */ | ||
i2s_alt0: i2s_alt0 { | ||
brcm,pins = <18 19 20 21>; | ||
brcm,function = <BCM2835_FSEL_ALT0>; | ||
}; | ||
}; | ||
|
||
&hdmi { | ||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; | ||
power-domains = <&power RPI_POWER_DOMAIN_HDMI>; | ||
status = "okay"; | ||
}; | ||
|
||
&pwm { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>; | ||
status = "okay"; | ||
}; | ||
|
||
&sdhost { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&sdhost_gpio48>; | ||
bus-width = <4>; | ||
status = "okay"; | ||
}; | ||
|
||
&uart0 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&uart0_gpio14>; | ||
status = "okay"; | ||
}; |
Oops, something went wrong.