Hi Horatiu, On mer., janv. 09 2019, Horatiu Vultur <horatiu.vul...@microchip.com> wrote:
> Add device tree based on evaluation board pcb110. > > Signed-off-by: Horatiu Vultur <horatiu.vul...@microchip.com> > --- > MAINTAINERS | 1 + > arch/mips/dts/jr2_pcb110.dts | 74 +++++++++++++++++ > arch/mips/dts/mscc,jr2.dtsi | 187 > +++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 262 insertions(+) > create mode 100644 arch/mips/dts/jr2_pcb110.dts > create mode 100644 arch/mips/dts/mscc,jr2.dtsi > > diff --git a/MAINTAINERS b/MAINTAINERS > index 495d3e5..f05c36b 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -521,6 +521,7 @@ F: arch/mips/mach-mscc/ > F: arch/mips/dts/luton* > F: arch/mips/dts/mscc* > F: arch/mips/dts/ocelot* > +F: arch/mips/dts/jr2* > F: board/mscc/ > F: configs/mscc* > F: drivers/gpio/mscc_sgpio.c > diff --git a/arch/mips/dts/jr2_pcb110.dts b/arch/mips/dts/jr2_pcb110.dts > new file mode 100644 > index 0000000..54b8988 > --- /dev/null > +++ b/arch/mips/dts/jr2_pcb110.dts > @@ -0,0 +1,74 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2018 Microsemi Corporation > + */ > + > +/dts-v1/; > +#include "mscc,jr2.dtsi" > + > +/ { > + model = "Jaguar2 Cu8-Sfp16 PCB110 Reference Board"; > + compatible = "mscc,jr2-pcb110", "mscc,jr2"; > + > + aliases { > + spi0 = &spi0; > + serial0 = &uart0; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + gpio-leds { > + compatible = "gpio-leds"; > + > + status_green { > + label = "pcb110:green:status"; > + gpios = <&gpio 12 0>; > + default-state = "on"; > + }; > + > + status_red { > + label = "pcb110:red:status"; > + gpios = <&gpio 13 0>; > + default-state = "off"; > + }; > + }; > +}; > + > +&uart0 { > + status = "okay"; > +}; > + > +&spi0 { > + status = "okay"; > + spi-flash@0 { > + compatible = "spi-flash"; > + spi-max-frequency = <18000000>; /* input clock */ > + reg = <0>; /* CS0 */ > + }; > +}; > + > +&gpio { > + /* SPIO only use DO, CLK, no inputs */ > + sgpio1_pins: sgpio1-pins { > + pins = "GPIO_4", "GPIO_5"; > + function = "sio1"; > + }; > +}; > + > +&sgpio { > + status = "okay"; > + sgpio-ports = <0x00ffffff>; > +}; > + > +&sgpio1 { > + status = "okay"; > + sgpio-ports = <0x00ff0000>; > +}; > + > +&sgpio2 { > + status = "okay"; > + sgpio-ports = <0x3f00ffff>; > + gpio-ranges = <&sgpio2 0 0 96>; > +}; > diff --git a/arch/mips/dts/mscc,jr2.dtsi b/arch/mips/dts/mscc,jr2.dtsi > new file mode 100644 > index 0000000..1ae7873 > --- /dev/null > +++ b/arch/mips/dts/mscc,jr2.dtsi > @@ -0,0 +1,187 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2018 Microsemi Corporation > + */ > + > +/ { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "mscc,jr2"; > + > + cpus { > + #address-cells = <1>; > + #size-cells = <0>; > + > + cpu@0 { > + compatible = "mips,mips24KEc"; > + device_type = "cpu"; > + clocks = <&cpu_clk>; > + reg = <0>; > + }; > + }; > + > + aliases { > + serial0 = &uart0; > + }; > + > + cpuintc: interrupt-controller@0 { > + #address-cells = <0>; > + #interrupt-cells = <1>; > + interrupt-controller; > + compatible = "mti,cpu-interrupt-controller"; > + }; > + > + cpu_clk: cpu-clock { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <500000000>; > + }; > + > + ahb_clk: ahb-clk { > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <250000000>; > + }; > + > + ahb { > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0 0x70000000 0x2000000>; > + > + interrupt-parent = <&intc>; > + > + cpu_ctrl: syscon@0 { > + compatible = "mscc,jr2-cpu-syscon", "syscon"; > + reg = <0x0 0x2c>; > + }; > + > + intc: interrupt-controller@70 { > + compatible = "mscc,jr2-icpu-intr"; > + reg = <0x70 0x94>; > + #interrupt-cells = <1>; > + interrupt-controller; > + interrupt-parent = <&cpuintc>; > + interrupts = <2>; > + }; > + > + uart0: serial@100000 { > + pinctrl-0 = <&uart_pins>; > + pinctrl-names = "default"; > + compatible = "ns16550a"; > + reg = <0x100000 0x20>; > + interrupts = <6>; > + clocks = <&ahb_clk>; > + reg-io-width = <4>; > + reg-shift = <2>; > + > + status = "disabled"; > + }; > + > + uart2: serial@100800 { > + pinctrl-0 = <&uart2_pins>; > + pinctrl-names = "default"; > + compatible = "ns16550a"; > + reg = <0x100800 0x20>; > + interrupts = <7>; > + clocks = <&ahb_clk>; > + reg-io-width = <4>; > + reg-shift = <2>; > + > + status = "disabled"; > + }; > + > + spi0: spi-master@101000 { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "snps,dw-apb-ssi"; > + reg = <0x101000 0x40>; > + num-chipselect = <4>; > + bus-num = <0>; > + reg-io-width = <4>; > + reg-shift = <2>; > + spi-max-frequency = <18000000>; /* input clock */ > + clocks = <&ahb_clk>; > + > + status = "disabled"; > + }; > + > + reset@1010008 { > + compatible = "mscc,jr2-chip-reset"; > + reg = <0x1010008 0x4>; > + }; > + > + gpio: pinctrl@1070034 { > + compatible = "mscc,jr2-pinctrl"; Actually the binding for the pin controller of the Jaguar 2 had already been posted for the Linux kernel. So in order to be able to use the same dts between Linux and U-Boot and should be good to use the same binding: https://elixir.bootlin.com/linux/v5.0-rc1/source/Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.txt#L6 Gregory > + reg = <0x1010038 0x90>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&gpio 0 0 64>; > + > + sgpio_pins: sgpio-pins { > + pins = "GPIO_0", "GPIO_1", "GPIO_2", "GPIO_3"; > + function = "sio"; > + }; > + > + sgpio1_pins: sgpio1-pins { > + pins = "GPIO_4", "GPIO_5", "GPIO_12", "GPIO_13"; > + function = "sio1"; > + }; > + > + sgpio2_pins: sgpio2-pins { > + pins = "GPIO_30", "GPIO_31", > + "GPIO_32", "GPIO_33"; > + function = "sio2"; > + }; > + > + uart_pins: uart-pins { > + pins = "GPIO_10", "GPIO_11"; > + function = "uart"; > + }; > + > + uart2_pins: uart2-pins { > + pins = "GPIO_24", "GPIO_25"; > + function = "uart2"; > + }; > + }; > + > + sgpio: gpio@1010150 { > + compatible = "mscc,ocelot-sgpio"; > + status = "disabled"; > + pinctrl-0 = <&sgpio_pins>; > + pinctrl-names = "default"; > + reg = <0x1010150 0x100>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&sgpio 0 0 64>; > + gpio-bank-name = "sgpio0_"; > + sgpio-clock = <0x14>; > + }; > + > + sgpio1: gpio@101025c { > + compatible = "mscc,ocelot-sgpio"; > + status = "disabled"; > + pinctrl-0 = <&sgpio1_pins>; > + pinctrl-names = "default"; > + reg = <0x101025c 0x100>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&sgpio1 0 0 64>; > + gpio-bank-name = "sgpio1_"; > + sgpio-clock = <0x14>; > + }; > + > + sgpio2: gpio@1010368 { > + compatible = "mscc,ocelot-sgpio"; > + status = "disabled"; > + pinctrl-0 = <&sgpio2_pins>; > + pinctrl-names = "default"; > + reg = <0x1010368 0x100>; > + gpio-controller; > + #gpio-cells = <2>; > + gpio-ranges = <&sgpio2 0 0 64>; > + gpio-bank-name = "sgpio2_"; > + sgpio-clock = <0x14>; > + }; > + }; > +}; > -- > 2.7.4 > -- Gregory Clement, Bootlin Embedded Linux and Kernel engineering http://bootlin.com _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot