mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-29 22:43:10 +00:00
48609d0789
Add support for accessing GPIOs using of-plata. This uses the same mechanism as for clocks, but allows use of the xlate() method so that the driver can interpret the parameters. Update the condition for GPIO_HOG so that it is not built into SPL, since it needs SPL_OF_REAL which is not enabled in sandbox_spl. Signed-off-by: Simon Glass <sjg@chromium.org>
449 lines
7.6 KiB
Text
449 lines
7.6 KiB
Text
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* This is the common sandbox device-tree nodes. This is shared between sandbox
|
|
* and sandbox64 builds.
|
|
*/
|
|
|
|
#define USB_CLASS_HUB 9
|
|
|
|
/ {
|
|
chosen {
|
|
stdout-path = "/serial";
|
|
};
|
|
|
|
audio: audio-codec {
|
|
compatible = "sandbox,audio-codec";
|
|
#sound-dai-cells = <1>;
|
|
};
|
|
|
|
buttons {
|
|
compatible = "gpio-keys";
|
|
|
|
btn1 {
|
|
gpios = <&gpio_a 3 0>;
|
|
label = "button1";
|
|
};
|
|
|
|
btn2 {
|
|
gpios = <&gpio_a 4 0>;
|
|
label = "button2";
|
|
};
|
|
};
|
|
|
|
clk_fixed: clk-fixed {
|
|
u-boot,dm-pre-reloc;
|
|
compatible = "sandbox,fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <1234>;
|
|
};
|
|
|
|
clk_sandbox: clk-sbox {
|
|
u-boot,dm-pre-reloc;
|
|
compatible = "sandbox,clk";
|
|
#clock-cells = <1>;
|
|
assigned-clocks = <&clk_sandbox 3>;
|
|
assigned-clock-rates = <321>;
|
|
};
|
|
|
|
clk-test {
|
|
u-boot,dm-pre-reloc;
|
|
compatible = "sandbox,clk-test";
|
|
clocks = <&clk_fixed>,
|
|
<&clk_sandbox 1>,
|
|
<&clk_sandbox 0>,
|
|
<&clk_sandbox 3>,
|
|
<&clk_sandbox 2>;
|
|
clock-names = "fixed", "i2c", "spi", "uart2", "uart1";
|
|
};
|
|
|
|
gpio_a: gpios@0 {
|
|
u-boot,dm-pre-proper;
|
|
gpio-controller;
|
|
compatible = "sandbox,gpio";
|
|
#gpio-cells = <1>;
|
|
gpio-bank-name = "a";
|
|
sandbox,gpio-count = <20>;
|
|
};
|
|
|
|
gpio_b: gpios@1 {
|
|
u-boot,dm-spl;
|
|
gpio-controller;
|
|
compatible = "sandbox,gpio";
|
|
#gpio-cells = <2>;
|
|
gpio-bank-name = "b";
|
|
sandbox,gpio-count = <10>;
|
|
};
|
|
|
|
gpio-test {
|
|
u-boot,dm-spl;
|
|
compatible = "sandbox,gpio-test";
|
|
test-gpios = <&gpio_b 3 0>;
|
|
};
|
|
|
|
hexagon {
|
|
compatible = "demo-simple";
|
|
colour = "white";
|
|
sides = <6>;
|
|
};
|
|
|
|
i2c_0: i2c@0 {
|
|
eeprom@2c {
|
|
reg = <0x2c>;
|
|
compatible = "i2c-eeprom";
|
|
sandbox,emul = <&emul_eeprom>;
|
|
};
|
|
|
|
rtc_0: rtc@43 {
|
|
reg = <0x43>;
|
|
compatible = "sandbox-rtc";
|
|
sandbox,emul = <&emul0>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
sandbox_pmic: sandbox_pmic {
|
|
reg = <0x40>;
|
|
};
|
|
|
|
mc34708: pmic@41 {
|
|
reg = <0x41>;
|
|
};
|
|
|
|
i2c_emul: emul {
|
|
u-boot,dm-pre-reloc;
|
|
reg = <0xff>;
|
|
compatible = "sandbox,i2c-emul-parent";
|
|
emul_eeprom: emul-eeprom {
|
|
compatible = "sandbox,i2c-eeprom";
|
|
sandbox,filename = "i2c.bin";
|
|
sandbox,size = <256>;
|
|
#emul-cells = <0>;
|
|
};
|
|
emul0: emul0 {
|
|
u-boot,dm-pre-reloc;
|
|
compatible = "sandbox,i2c-rtc-emul";
|
|
#emul-cells = <0>;
|
|
};
|
|
};
|
|
};
|
|
|
|
i2s: i2s {
|
|
compatible = "sandbox,i2s";
|
|
#sound-dai-cells = <1>;
|
|
};
|
|
|
|
irq_sandbox: irq-sbox {
|
|
u-boot,dm-spl;
|
|
compatible = "sandbox,irq";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
};
|
|
|
|
irq-test {
|
|
u-boot,dm-spl;
|
|
compatible = "sandbox,irq-test";
|
|
interrupts-extended = <&irq_sandbox 3 0>;
|
|
};
|
|
|
|
lcd {
|
|
u-boot,dm-pre-proper;
|
|
compatible = "sandbox,lcd-sdl";
|
|
xres = <1366>;
|
|
yres = <768>;
|
|
log2-depth = <5>;
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
iracibble {
|
|
gpios = <&gpio_a 1 0>;
|
|
label = "sandbox:red";
|
|
};
|
|
|
|
martinet {
|
|
gpios = <&gpio_a 2 0>;
|
|
label = "sandbox:green";
|
|
};
|
|
};
|
|
|
|
pci@0 {
|
|
pci@1e,0 {
|
|
compatible = "sandbox,pmc";
|
|
reg = <0xf000 0 0 0 0>;
|
|
sandbox,emul = <&pmc_emul>;
|
|
gpe0-dwx-mask = <0xf>;
|
|
gpe0-dwx-shift-base = <4>;
|
|
gpe0-dw = <6 7 9>;
|
|
gpe0-sts = <0x20>;
|
|
gpe0-en = <0x30>;
|
|
};
|
|
|
|
pci@1f,0 {
|
|
compatible = "pci-generic";
|
|
reg = <0xf800 0 0 0 0>;
|
|
sandbox,emul = <&swap_case_emul>;
|
|
};
|
|
};
|
|
|
|
emul {
|
|
compatible = "sandbox,pci-emul-parent";
|
|
pmc_emul: emul@1e,0 {
|
|
compatible = "sandbox,pmc-emul";
|
|
};
|
|
swap_case_emul: emul@1f,0 {
|
|
compatible = "sandbox,swap-case";
|
|
};
|
|
};
|
|
|
|
pinctrl {
|
|
compatible = "sandbox,pinctrl";
|
|
status = "okay";
|
|
|
|
pinctrl_i2c0: i2c0 {
|
|
groups = "i2c";
|
|
function = "i2c";
|
|
bias-pull-up;
|
|
};
|
|
|
|
pinctrl_serial0: uart0 {
|
|
groups = "serial_a";
|
|
function = "serial";
|
|
};
|
|
|
|
pinctrl_onewire0: onewire0 {
|
|
groups = "w1";
|
|
function = "w1";
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
|
|
reset@1 {
|
|
compatible = "sandbox,reset";
|
|
};
|
|
|
|
rng {
|
|
compatible = "sandbox,sandbox-rng";
|
|
};
|
|
|
|
sound {
|
|
compatible = "sandbox,sound";
|
|
cpu {
|
|
sound-dai = <&i2s 0>;
|
|
};
|
|
|
|
codec {
|
|
sound-dai = <&audio 0>;
|
|
};
|
|
};
|
|
|
|
spi@0 {
|
|
firmware_storage_spi: flash@0 {
|
|
u-boot,dm-pre-proper;
|
|
reg = <0>;
|
|
compatible = "spansion,m25p16", "jedec,spi-nor";
|
|
spi-max-frequency = <40000000>;
|
|
sandbox,filename = "spi.bin";
|
|
};
|
|
};
|
|
|
|
spl-test {
|
|
u-boot,dm-pre-reloc;
|
|
compatible = "sandbox,spl-test";
|
|
boolval;
|
|
intval = <1>;
|
|
intarray = <2 3 4>;
|
|
maybe-empty-int = <>;
|
|
byteval = [05];
|
|
bytearray = [06];
|
|
longbytearray = [09 0a 0b 0c 0d 0e 0f 10 11];
|
|
stringval = "message";
|
|
stringarray = "multi-word", "message";
|
|
};
|
|
|
|
spl-test2 {
|
|
u-boot,dm-pre-reloc;
|
|
compatible = "sandbox,spl-test";
|
|
intval = <3>;
|
|
intarray = <5>;
|
|
byteval = [08];
|
|
bytearray = [01 23 34];
|
|
longbytearray = [09 0a 0b 0c];
|
|
stringval = "message2";
|
|
stringarray = "another", "multi-word", "message";
|
|
};
|
|
|
|
spl-test3 {
|
|
u-boot,dm-pre-reloc;
|
|
compatible = "sandbox,spl-test";
|
|
stringarray = "one";
|
|
maybe-empty-int = <1>;
|
|
};
|
|
|
|
spl-test5 {
|
|
u-boot,dm-tpl;
|
|
compatible = "sandbox,spl-test";
|
|
stringarray = "tpl";
|
|
};
|
|
|
|
spl-test6 {
|
|
u-boot,dm-pre-proper;
|
|
compatible = "sandbox,spl-test";
|
|
stringarray = "pre-proper";
|
|
};
|
|
|
|
spl-test7 {
|
|
u-boot,dm-spl;
|
|
compatible = "sandbox,spl-test";
|
|
stringarray = "spl";
|
|
};
|
|
|
|
square {
|
|
compatible = "demo-shape";
|
|
colour = "blue";
|
|
sides = <4>;
|
|
};
|
|
|
|
timer {
|
|
compatible = "sandbox,timer";
|
|
clock-frequency = <1000000>;
|
|
};
|
|
|
|
tpm {
|
|
compatible = "google,sandbox-tpm";
|
|
};
|
|
|
|
tpm2 {
|
|
compatible = "sandbox,tpm2";
|
|
};
|
|
|
|
triangle {
|
|
compatible = "demo-shape";
|
|
colour = "cyan";
|
|
sides = <3>;
|
|
character = <83>;
|
|
light-gpios = <&gpio_a 2>, <&gpio_b 6 0>;
|
|
};
|
|
|
|
/* Needs to be available prior to relocation */
|
|
uart0: serial {
|
|
u-boot,dm-spl;
|
|
compatible = "sandbox,serial";
|
|
sandbox,text-colour = "cyan";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_serial0>;
|
|
};
|
|
|
|
usb@0 {
|
|
compatible = "sandbox,usb";
|
|
status = "disabled";
|
|
hub {
|
|
compatible = "sandbox,usb-hub";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
flash-stick {
|
|
reg = <0>;
|
|
compatible = "sandbox,usb-flash";
|
|
};
|
|
};
|
|
};
|
|
|
|
usb@1 {
|
|
compatible = "sandbox,usb";
|
|
hub {
|
|
compatible = "usb-hub";
|
|
usb,device-class = <USB_CLASS_HUB>;
|
|
hub-emul {
|
|
compatible = "sandbox,usb-hub";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
flash-stick {
|
|
reg = <0>;
|
|
compatible = "sandbox,usb-flash";
|
|
sandbox,filepath = "flash.bin";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
usb@2 {
|
|
compatible = "sandbox,usb";
|
|
status = "disabled";
|
|
};
|
|
|
|
spmi: spmi@0 {
|
|
compatible = "sandbox,spmi";
|
|
#address-cells = <0x1>;
|
|
#size-cells = <0x1>;
|
|
pm8916@0 {
|
|
compatible = "qcom,spmi-pmic";
|
|
reg = <0x0 0x1>;
|
|
#address-cells = <0x1>;
|
|
#size-cells = <0x1>;
|
|
|
|
spmi_gpios: gpios@c000 {
|
|
compatible = "qcom,pm8916-gpio";
|
|
reg = <0xc000 0x400>;
|
|
gpio-controller;
|
|
gpio-count = <4>;
|
|
#gpio-cells = <2>;
|
|
gpio-bank-name="spmi";
|
|
};
|
|
};
|
|
};
|
|
|
|
axi: axi@0 {
|
|
compatible = "sandbox,axi";
|
|
#address-cells = <0x1>;
|
|
#size-cells = <0x1>;
|
|
store@0 {
|
|
compatible = "sandbox,sandbox_store";
|
|
reg = <0x0 0x400>;
|
|
};
|
|
};
|
|
|
|
onewire0: onewire {
|
|
compatible = "w1-gpio";
|
|
gpios = <&gpio_a 8>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_onewire0>;
|
|
status = "okay";
|
|
|
|
sandbox_eeprom0: sandbox_eeprom@0 {
|
|
compatible = "sandbox,w1-eeprom";
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
sandbox_tee {
|
|
compatible = "sandbox,tee";
|
|
};
|
|
};
|
|
|
|
&cros_ec {
|
|
/*
|
|
* This describes the flash memory within the EC. Note
|
|
* that the STM32L flash erases to 0, not 0xff.
|
|
*/
|
|
flash {
|
|
image-pos = <0x08000000>;
|
|
size = <0x20000>;
|
|
erase-value = <0>;
|
|
|
|
/* Information for sandbox */
|
|
ro {
|
|
image-pos = <0>;
|
|
size = <0xf000>;
|
|
};
|
|
wp-ro {
|
|
image-pos = <0xf000>;
|
|
size = <0x1000>;
|
|
};
|
|
rw {
|
|
image-pos = <0x10000>;
|
|
size = <0x10000>;
|
|
};
|
|
};
|
|
|
|
keyboard-controller {
|
|
u-boot,dm-pre-proper;
|
|
};
|
|
};
|