Index: head/sys/boot/fdt/dts/mips/fbsd-mt7620a.dtsi =================================================================== --- head/sys/boot/fdt/dts/mips/fbsd-mt7620a.dtsi +++ head/sys/boot/fdt/dts/mips/fbsd-mt7620a.dtsi @@ -0,0 +1,52 @@ +/* $FreeBSD$ */ + +/ { + + /* + * FreeBSD's stdin and stdout, so we can have a console + */ + chosen { + stdin = &uartlite; + stdout = &uartlite; + }; + + /* + * OpenWRT doesn't define a clock controller, but we currently need one + */ + clkctrl: cltctrl { + compatible = "ralink,rt2880-clock"; + #clock-cells = <1>; + }; + + palmbus@10000000 { + /* + * Make palmbus compatible to our simplebus + */ + compatible = "simple-bus"; + + /* + * Reference uartlite@c00 as uartlite, so we can address it + * within the chosen node above + */ + uartlite: uartlite@c00 {}; + }; + + usbphy: usbphy { + clocks = <&clkctrl 22 &clkctrl 25>; + clock-names = "host", "device"; + }; + + pcie@10140000 { + /* + * Our driver is different that OpenWRT's, so we need slightly + * different values for the reg property + */ + reg = <0x10140000 0x10000>; + + /* + * Also, we need resets and clocks defined, so we can properly + * initialize the PCIe + */ + clocks = <&clkctrl 26>; + }; +}; Index: head/sys/boot/fdt/dts/mips/fbsd-mt7620n.dtsi =================================================================== --- head/sys/boot/fdt/dts/mips/fbsd-mt7620n.dtsi +++ head/sys/boot/fdt/dts/mips/fbsd-mt7620n.dtsi @@ -0,0 +1,38 @@ +/* $FreeBSD$ */ + +/ { + + /* + * FreeBSD's stdin and stdout, so we can have a console + */ + chosen { + stdin = &uartlite; + stdout = &uartlite; + }; + + /* + * OpenWRT doesn't define a clock controller, but we currently need one + */ + clkctrl: cltctrl { + compatible = "ralink,rt2880-clock"; + #clock-cells = <1>; + }; + + palmbus@10000000 { + /* + * Make palmbus compatible to our simplebus + */ + compatible = "simple-bus"; + + /* + * Reference uartlite@c00 as uartlite, so we can address it + * within the chosen node above + */ + uartlite: uartlite@c00 {}; + }; + + usbphy: usbphy { + clocks = <&clkctrl 22 &clkctrl 25>; + clock-names = "host", "device"; + }; +}; Index: head/sys/boot/fdt/dts/mips/fbsd-mt7621.dtsi =================================================================== --- head/sys/boot/fdt/dts/mips/fbsd-mt7621.dtsi +++ head/sys/boot/fdt/dts/mips/fbsd-mt7621.dtsi @@ -0,0 +1,102 @@ +/* $FreeBSD$ */ + +/ { + + /* + * FreeBSD's stdin and stdout, so we can have a console + */ + chosen { + stdin = &uartlite; + stdout = &uartlite; + }; + + /* + * OpenWRT doesn't define a clock controller, but we currently need one + */ + clkctrl: cltctrl { + compatible = "ralink,rt2880-clock"; + #clock-cells = <1>; + }; + + gic: interrupt-controller@1fbc0000 { + /* + * OpenWRT does not define the GIC interrupt, but we need it + * for now, at least until we re-work our GIC driver + */ + interrupt-parent = <&cpuintc>; + interrupts = <2>; + }; + + palmbus@1E000000 { + /* + * Make palmbus compatible to our simplebus + */ + compatible = "simple-bus"; + + /* + * Reference uartlite@c00 as uartlite, so we can address it + * within the chosen node above + */ + uartlite: uartlite@c00 { + /* + * Mark uartlite as compatible to mtk,ns16550a instead + * of simply ns16550a so we can autodetect the UART + * clock + */ + compatible = "mtk,ns16550a"; + }; + + gpio@600 { + /* + * Mark gpio as compatible to simple-bus and override + * its #size-cells and provide a default ranges property + * so we can attach instances of our mtk_gpio_v2 driver + * to it for now. Provide exactly the same resources to + * the instances of mtk_gpio_v2. + */ + compatible = "simple-bus"; + ranges = <0x0 0x600 0x100>; + #size-cells = <1>; + + interrupt-parent = <&gic>; + + gpio0: bank@0 { + reg = <0x0 0x100>; + interrupts = ; + }; + + gpio1: bank@1 { + reg = <0x0 0x100>; + interrupts = ; + }; + + gpio2: bank@2 { + reg = <0x0 0x100>; + interrupts = ; + }; + }; + }; + + xhci@1E1C0000 { + /* + * A slightly different value for reg size is needed by our + * driver for the moment + */ + reg = <0x1e1c0000 0x20000>; + }; + + pcie@1e140000 { + /* + * Our driver is different that OpenWRT's, so we need slightly + * different values for the reg property + */ + reg = <0x1e140000 0x10000>; + + /* + * Also, we need resets and clocks defined, so we can properly + * initialize the PCIe + */ + resets = <&rstctrl 24>, <&rstctrl 25>, <&rstctrl 26>; + clocks = <&clkctrl 24>, <&clkctrl 25>, <&clkctrl 26>; + }; +}; Index: head/sys/boot/fdt/dts/mips/fbsd-mt7628an.dtsi =================================================================== --- head/sys/boot/fdt/dts/mips/fbsd-mt7628an.dtsi +++ head/sys/boot/fdt/dts/mips/fbsd-mt7628an.dtsi @@ -0,0 +1,88 @@ +/* $FreeBSD$ */ + +/ { + + /* + * FreeBSD's stdin and stdout, so we can have a console + */ + chosen { + stdin = &uartlite; + stdout = &uartlite; + }; + + /* + * OpenWRT doesn't define a clock controller, but we currently need one + */ + clkctrl: cltctrl { + compatible = "ralink,rt2880-clock"; + #clock-cells = <1>; + }; + + palmbus@10000000 { + /* + * Make palmbus compatible to our simplebus + */ + compatible = "simple-bus"; + + /* + * Reference uart2@e00 as uartlite, so we can address it + * within the chosen node above + */ + uartlite: uart2@e00 { + /* + * Mark uartlite as compatible to mtk,ns16550a instead + * of simply ns16550a so we can autodetect the UART + * clock + */ + compatible = "mtk,ns16550a"; + }; + + gpio@600 { + /* + * Mark gpio as compatible to simple-bus and override + * its #size-cells and provide a default ranges property + * so we can attach instances of our mtk_gpio_v2 driver + * to it for now. Provide exactly the same resources to + * the instances of mtk_gpio_v2. + */ + compatible = "simple-bus"; + ranges = <0x0 0x600 0x100>; + #size-cells = <1>; + + gpio0: bank@0 { + reg = <0x0 0x100>; + interrupts = <6>; + }; + + gpio1: bank@1 { + reg = <0x0 0x100>; + interrupts = <6>; + }; + + gpio2: bank@2 { + reg = <0x0 0x100>; + interrupts = <6>; + }; + }; + }; + + usbphy: usbphy@10120000 { + clocks = <&clkctrl 22 &clkctrl 25>; + clock-names = "host", "device"; + }; + + pcie@10140000 { + /* + * Our driver is different that OpenWRT's, so we need slightly + * different values for the reg property + */ + reg = <0x10140000 0x10000>; + + /* + * Also, we need resets and clocks defined, so we can properly + * initialize the PCIe + */ + resets = <&rstctrl 26>, <&rstctrl 27>; + clocks = <&clkctrl 26>, <&clkctrl 27>; + }; +}; Index: head/sys/boot/fdt/dts/mips/fbsd-rt2880.dtsi =================================================================== --- head/sys/boot/fdt/dts/mips/fbsd-rt2880.dtsi +++ head/sys/boot/fdt/dts/mips/fbsd-rt2880.dtsi @@ -0,0 +1,33 @@ +/* $FreeBSD$ */ + +/ { + + /* + * FreeBSD's stdin and stdout, so we can have a console + */ + chosen { + stdin = &uartlite; + stdout = &uartlite; + }; + + /* + * OpenWRT doesn't define a clock controller, but we currently need one + */ + clkctrl: cltctrl { + compatible = "ralink,rt2880-clock"; + #clock-cells = <1>; + }; + + palmbus@300000 { + /* + * Make palmbus compatible to our simplebus + */ + compatible = "simple-bus"; + + /* + * Reference uartlite@c00 as uartlite, so we can address it + * within the chosen node above + */ + uartlite: uartlite@c00 {}; + }; +}; Index: head/sys/boot/fdt/dts/mips/fbsd-rt3050.dtsi =================================================================== --- head/sys/boot/fdt/dts/mips/fbsd-rt3050.dtsi +++ head/sys/boot/fdt/dts/mips/fbsd-rt3050.dtsi @@ -0,0 +1,41 @@ +/* $FreeBSD$ */ + +/ { + + /* + * FreeBSD's stdin and stdout, so we can have a console + */ + chosen { + stdin = &uartlite; + stdout = &uartlite; + }; + + /* + * OpenWRT doesn't define a clock controller, but we currently need one + */ + clkctrl: cltctrl { + compatible = "ralink,rt2880-clock"; + #clock-cells = <1>; + }; + + palmbus@10000000 { + /* + * Make palmbus compatible to our simplebus + */ + compatible = "simple-bus"; + + /* + * Reference uartlite@c00 as uartlite, so we can address it + * within the chosen node above + */ + uartlite: uartlite@c00 {}; + }; + + usbphy: usbphy { + compatible = "ralink,rt3050-usbphy"; + resets = <&rstctrl 22>; + reset-names = "otg"; + clocks = <&clkctrl 18>; + clock-names = "otg"; + }; +}; Index: head/sys/boot/fdt/dts/mips/fbsd-rt3352.dtsi =================================================================== --- head/sys/boot/fdt/dts/mips/fbsd-rt3352.dtsi +++ head/sys/boot/fdt/dts/mips/fbsd-rt3352.dtsi @@ -0,0 +1,38 @@ +/* $FreeBSD$ */ + +/ { + + /* + * FreeBSD's stdin and stdout, so we can have a console + */ + chosen { + stdin = &uartlite; + stdout = &uartlite; + }; + + /* + * OpenWRT doesn't define a clock controller, but we currently need one + */ + clkctrl: cltctrl { + compatible = "ralink,rt2880-clock"; + #clock-cells = <1>; + }; + + palmbus@10000000 { + /* + * Make palmbus compatible to our simplebus + */ + compatible = "simple-bus"; + + /* + * Reference uartlite@c00 as uartlite, so we can address it + * within the chosen node above + */ + uartlite: uartlite@c00 {}; + }; + + usbphy { + clocks = <&clkctrl 18 &clkctrl 20>; + clock-names = "host", "device"; + }; +}; Index: head/sys/boot/fdt/dts/mips/fbsd-rt3883.dtsi =================================================================== --- head/sys/boot/fdt/dts/mips/fbsd-rt3883.dtsi +++ head/sys/boot/fdt/dts/mips/fbsd-rt3883.dtsi @@ -0,0 +1,50 @@ +/* $FreeBSD$ */ + +/ { + + /* + * FreeBSD's stdin and stdout, so we can have a console + */ + chosen { + stdin = &uartlite; + stdout = &uartlite; + }; + + /* + * OpenWRT doesn't define a clock controller, but we currently need one + */ + clkctrl: cltctrl { + compatible = "ralink,rt2880-clock"; + #clock-cells = <1>; + }; + + palmbus@10000000 { + /* + * Make palmbus compatible to our simplebus + */ + compatible = "simple-bus"; + + /* + * Reference uartlite@c00 as uartlite, so we can address it + * within the chosen node above + */ + uartlite: uartlite@c00 {}; + }; + + usbphy: usbphy { + clocks = <&clkctrl 22 &clkctrl 25>; + clock-names = "host", "device"; + }; + + pci@10140000 { + #address-cells = <3>; + #size-cells = <2>; + ranges = < + 0x02000000 0 0x00000000 0x20000000 0 0x10000000 + 0x01000000 0 0x00000000 0x10160000 0 0x00010000 + >; + + interrupt-parent = <&cpuintc>; + interrupts = <4>; + }; +}; Index: head/sys/boot/fdt/dts/mips/fbsd-rt5350.dtsi =================================================================== --- head/sys/boot/fdt/dts/mips/fbsd-rt5350.dtsi +++ head/sys/boot/fdt/dts/mips/fbsd-rt5350.dtsi @@ -0,0 +1,38 @@ +/* $FreeBSD$ */ + +/ { + + /* + * FreeBSD's stdin and stdout, so we can have a console + */ + chosen { + stdin = &uartlite; + stdout = &uartlite; + }; + + /* + * OpenWRT doesn't define a clock controller, but we currently need one + */ + clkctrl: cltctrl { + compatible = "ralink,rt2880-clock"; + #clock-cells = <1>; + }; + + palmbus@10000000 { + /* + * Make palmbus compatible to our simplebus + */ + compatible = "simple-bus"; + + /* + * Reference uartlite@c00 as uartlite, so we can address it + * within the chosen node above + */ + uartlite: uartlite@c00 {}; + }; + + usbphy { + clocks = <&clkctrl 18>; + clock-names = "host"; + }; +};