From 999ca071ef0f492ccbebdc22251ea627c7423273 Mon Sep 17 00:00:00 2001 From: deooi Date: Tue, 26 May 2026 18:08:46 +0800 Subject: [PATCH] dts: Add device tree for fielddaq devices Device tree for FieldDAQ devices are for FD-11613, FD-11614 and FD-11637. The changes here is to update the model name, NIDEVCODE, addition of ref100 and si5351c chip, and some LED changes. Otherwise, the rest of the device tree remains the same as Bluefin. Signed-off-by: deooi --- arch/arm/boot/dts/xilinx/ni-fielddaq.dts | 232 +++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 arch/arm/boot/dts/xilinx/ni-fielddaq.dts diff --git a/arch/arm/boot/dts/xilinx/ni-fielddaq.dts b/arch/arm/boot/dts/xilinx/ni-fielddaq.dts new file mode 100644 index 0000000000000..f5efdea89e293 --- /dev/null +++ b/arch/arm/boot/dts/xilinx/ni-fielddaq.dts @@ -0,0 +1,232 @@ +/dts-v1/; +#include +/include/ "ni-zynq.dtsi" +/* NIDEVCODE 79FF */ +/* NIDEVCODE 7943 */ +/* NIDEVCODE 7941 */ + +/ { + model = "NI FieldDAQ"; + compatible = "ni,zynq", "xlnx,zynq-7000"; + + /* + * This 100MHz reference clock is actually the output of a Si514; + * However, we do not declare it in the device tree because it is + * steered in usermode, and therefore we don't want a kernel driver + * to attach to it. + */ + ref100: oscillator { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <100000000>; + }; + + leds { + compatible = "gpio-leds"; + + /* "LED_USER_RED" is on GPIO1 */ + status { + label = "nilrt:status:red"; + gpios = <&gpio0 1 0>; + default-state = "on"; + }; + + /* "LED_USER_GREEN" is on GPIO15 */ + active { + label = "nilrt:active:green"; + gpios = <&gpio0 15 0>; + default-state = "on"; + }; + + /* "ZYNQ_LED0_P1" is on GPIO47 */ + port1 { + label = "nilrt:port1:green"; + gpios = <&gpio0 47 0>; + linux,default-trigger = "dsa-0:00:01:link"; + }; + + /* "ZYNQ_LED0_P2" is on GPIO46 */ + port2 { + label = "nilrt:port2:green"; + gpios = <&gpio0 46 0>; + linux,default-trigger = "dsa-0:00:02:link"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + /* Reset switch is on GPIO48 */ + reset_sw@0 { + label = "reset_sw"; + gpios = <&gpio0 48 1 /* GPIO_ACTIVE_LOW */>; + linux,code = <408>; /* KEY_RESTART */ + gpio-key,wakeup; + }; + }; + + gpio_restart { + compatible = "gpio-restart"; + + /* ~PS_FORCE_RESET is on GPIO44 */ + gpios = <&gpio0 44 1 /* GPIO_ACTIVE_LOW */>; + priority = <200>; + }; + + si5351c: clock-generator@60 { + compatible = "silabs,si5351c"; + reg = <0x60>; + #address-cells = <1>; + #size-cells = <0>; + #clock-cells = <1>; + + clocks = <&ref100>; + clock-names = "clkin"; + + silabs,pll-source = <0 1>, <1 0>; + silabs,pll-frequency = <0 737280000>; + + umber-btsi0 { + reg = <0>; + silabs,drive-strength = <8>; + silabs,multisynth-source = <0>; + silabs,clock-source = <0>; + silabs,disable-state = <0>; + clock-frequency = <12800000>; + }; + + umber-sysclk { + reg = <1>; + silabs,drive-strength = <8>; + silabs,multisynth-source = <0>; + silabs,clock-source = <0>; + silabs,disable-state = <0>; + clock-frequency = <80000000>; + }; + + umber-btsi1 { + reg = <2>; + silabs,drive-strength = <8>; + silabs,multisynth-source = <0>; + silabs,clock-source = <0>; + silabs,disable-state = <0>; + clock-frequency = <13107200>; + }; + + umber-btsi3 { + reg = <4>; + silabs,drive-strength = <8>; + silabs,multisynth-source = <0>; + silabs,clock-source = <0>; + silabs,disable-state = <0>; + clock-frequency = <10240000>; + }; + + umber-btsi4 { + reg = <7>; + silabs,drive-strength = <8>; + silabs,multisynth-source = <0>; + silabs,clock-source = <0>; + silabs,disable-state = <0>; + clock-frequency = <12288000>; + }; + }; +}; + +&i2c0 { + /* Override ni-zynq.dtsi; we do not have a CPLD at 0x40. */ + nicpld@40 { + status = "disabled"; + }; + + tmp451@4C { + compatible = "ti,tmp451"; + reg = <0x4C>; + vcc-supply = <®ulator_vccpint>; + }; +}; + +&gem0 { + status = "okay"; + #address-cells = <0x1>; + #size-cells = <0x0>; + + fixed-link { + speed = <1000>; + full-duplex; + reg = <0>; + }; + + mdio0: mdio { + status = "okay"; + }; +}; + +&mdio0 { + #address-cells = <1>; + #size-cells = <0>; + + switch: switch@0 { + compatible = "marvell,mv88e6085"; + reg = <0x0>; + status = "okay"; + interrupt-parent = <&intc>; + interrupts = <45 IRQ_TYPE_LEVEL_LOW>; + interrupt-controller; + #interrupt-cells = <2>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + label = "cpu"; + phy-mode = "rgmii-id"; + ethernet = <&gem0>; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + + port@1 { + reg = <1>; + label = "sw0"; + phy-handle = <&swphy1>; + }; + + port@2 { + reg = <2>; + label = "sw1"; + phy-handle = <&swphy2>; + }; + }; + + mdio { + swphy1: ethernet-phy@11 { + reg = <0x11>; + }; + + swphy2: ethernet-phy@12 { + reg = <0x12>; + }; + }; + }; +}; + +&uart1 { + status = "okay"; +}; + +&usb0 { + status = "okay"; + dr_mode = "host"; +}; + +&watchdog0 { + status = "okay"; + reset-on-timeout; +};