Sparx5 DT updates for Linux 5.10

- Add public repo to MAINTAINERS
 - Add SPI controller and devices
 - Add eMMC controller and devices
 - Add temperature sensor
 -----BEGIN PGP SIGNATURE-----
 
 iJEEABYIADkWIQQaBzOicklHovJvajA3MaYaSgcc9AUCX2HdrxscbGFycy5wb3Zs
 c2VuQG1pY3JvY2hpcC5jb20ACgkQNzGmGkoHHPSyFgD8CeApRk+Nft2RMt72TyLW
 A/sGGCdqnhQqp7Sswpf625wA/idFqzcEfwQNVar29MBJ3A6Uu213DK4b/lnkw9cm
 Mg4E
 =Ln9n
 -----END PGP SIGNATURE-----

Merge tag 'sparx5-dt-5.10' of https://github.com/microchip-ung/linux-upstream into arm/dt

Sparx5 DT updates for Linux 5.10

- Add public repo to MAINTAINERS
- Add SPI controller and devices
- Add eMMC controller and devices
- Add temperature sensor

* tag 'sparx5-dt-5.10' of https://github.com/microchip-ung/linux-upstream:
  arm64: dts: sparx5: Add spi-nand devices
  arm64: dts: sparx5: Add spi-nor support
  arm64: dts: sparx5: Add SPI controller and associated mmio-mux
  MAINTAINERS: Add git tree for Sparx5
  arm64: dts: sparx5: Add hwmon temperature sensor
  arm64: dts: sparx5: Add Sparx5 eMMC support

Link: https://lore.kernel.org/r/878sda2dj0.fsf@microchip.com
Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2020-09-26 09:47:10 -07:00
commit 38c419037a
10 changed files with 278 additions and 0 deletions

View File

@ -2136,6 +2136,7 @@ M: Steen Hegelund <Steen.Hegelund@microchip.com>
M: Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Supported
T: git git://github.com/microchip-ung/linux-upstream.git
F: arch/arm64/boot/dts/microchip/
N: sparx5

View File

@ -5,6 +5,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/microchip,sparx5.h>
/ {
compatible = "microchip,sparx5";
@ -13,6 +14,7 @@ / {
#size-cells = <1>;
aliases {
spi0 = &spi0;
serial0 = &uart0;
serial1 = &uart1;
};
@ -117,6 +119,22 @@ gic: interrupt-controller@600300000 {
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
};
cpu_ctrl: syscon@600000000 {
compatible = "microchip,sparx5-cpu-syscon", "syscon",
"simple-mfd";
reg = <0x6 0x00000000 0xd0>;
mux: mux-controller {
compatible = "mmio-mux";
#mux-control-cells = <0>;
/*
* SI_OWNER and SI2_OWNER in GENERAL_CTRL
* SPI: value 9 - (SIMC,SIBM) = 0b1001
* SPI2: value 6 - (SIBM,SIMC) = 0b0110
*/
mux-reg-masks = <0x88 0xf0>;
};
};
uart0: serial@600100000 {
pinctrl-0 = <&uart_pins>;
pinctrl-names = "default";
@ -143,6 +161,19 @@ uart1: serial@600102000 {
status = "disabled";
};
spi0: spi@600104000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "microchip,sparx5-spi";
reg = <0x6 0x00104000 0x40>;
num-cs = <16>;
reg-io-width = <4>;
reg-shift = <2>;
clocks = <&ahb_clk>;
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
timer1: timer@600105000 {
compatible = "snps,dw-apb-timer";
reg = <0x6 0x00105000 0x1000>;
@ -151,6 +182,20 @@ timer1: timer@600105000 {
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
};
sdhci0: mmc@600800000 {
compatible = "microchip,dw-sparx5-sdhci";
status = "disabled";
reg = <0x6 0x00800000 0x1000>;
pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default";
clocks = <&clks CLK_ID_AUX1>;
clock-names = "core";
assigned-clocks = <&clks CLK_ID_AUX1>;
assigned-clock-rates = <800000000>;
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
bus-width = <8>;
};
gpio: pinctrl@6110101e0 {
compatible = "microchip,sparx5-pinctrl";
reg = <0x6 0x110101e0 0x90>, <0x6 0x10508010 0x100>;
@ -161,6 +206,26 @@ gpio: pinctrl@6110101e0 {
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
#interrupt-cells = <2>;
cs1_pins: cs1-pins {
pins = "GPIO_16";
function = "si";
};
cs2_pins: cs2-pins {
pins = "GPIO_17";
function = "si";
};
cs3_pins: cs3-pins {
pins = "GPIO_18";
function = "si";
};
si2_pins: si2-pins {
pins = "GPIO_39", "GPIO_40", "GPIO_41";
function = "si2";
};
uart_pins: uart-pins {
pins = "GPIO_10", "GPIO_11";
function = "uart";
@ -180,6 +245,15 @@ i2c2_pins: i2c2-pins {
pins = "GPIO_28", "GPIO_29";
function = "twi2";
};
emmc_pins: emmc-pins {
pins = "GPIO_34", "GPIO_35", "GPIO_36",
"GPIO_37", "GPIO_38", "GPIO_39",
"GPIO_40", "GPIO_41", "GPIO_42",
"GPIO_43", "GPIO_44", "GPIO_45",
"GPIO_46", "GPIO_47";
function = "emmc";
};
};
i2c0: i2c@600101000 {
@ -209,5 +283,12 @@ i2c1: i2c@600103000 {
clock-frequency = <100000>;
clocks = <&ahb_clk>;
};
tmon0: tmon@610508110 {
compatible = "microchip,sparx5-temp";
reg = <0x6 0x10508110 0xc>;
#thermal-sensor-cells = <0>;
clocks = <&ahb_clk>;
};
};
};

View File

@ -0,0 +1,31 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2020 Microchip Technology Inc. and its subsidiaries.
*/
&gpio {
cs14_pins: cs14-pins {
pins = "GPIO_44";
function = "si";
};
};
&spi0 {
pinctrl-0 = <&si2_pins>;
pinctrl-names = "default";
spi@e {
compatible = "spi-mux";
mux-controls = <&mux>;
#address-cells = <1>;
#size-cells = <0>;
reg = <14>; /* CS14 */
spi-flash@6 {
compatible = "spi-nand";
pinctrl-0 = <&cs14_pins>;
pinctrl-names = "default";
reg = <0x6>; /* SPI2 */
spi-max-frequency = <42000000>;
rx-sample-delay-ns = <7>; /* Tune for speed */
};
};
};

View File

@ -16,6 +16,59 @@ memory@0 {
};
};
&gpio {
emmc_pins: emmc-pins {
/* NB: No "GPIO_35", "GPIO_36", "GPIO_37"
* (N/A: CARD_nDETECT, CARD_WP, CARD_LED)
*/
pins = "GPIO_34", "GPIO_38", "GPIO_39",
"GPIO_40", "GPIO_41", "GPIO_42",
"GPIO_43", "GPIO_44", "GPIO_45",
"GPIO_46", "GPIO_47";
drive-strength = <3>;
function = "emmc";
};
};
&sdhci0 {
status = "okay";
bus-width = <8>;
non-removable;
pinctrl-0 = <&emmc_pins>;
max-frequency = <8000000>;
microchip,clock-delay = <10>;
};
&spi0 {
status = "okay";
spi@0 {
compatible = "spi-mux";
mux-controls = <&mux>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0>; /* CS0 */
spi-flash@9 {
compatible = "jedec,spi-nor";
spi-max-frequency = <8000000>;
reg = <0x9>; /* SPI */
};
};
spi@1 {
compatible = "spi-mux";
mux-controls = <&mux 0>;
#address-cells = <1>;
#size-cells = <0>;
reg = <1>; /* CS1 */
spi-flash@9 {
compatible = "spi-nand";
pinctrl-0 = <&cs1_pins>;
pinctrl-names = "default";
spi-max-frequency = <8000000>;
reg = <0x9>; /* SPI */
};
};
};
&i2c1 {
status = "okay";
};

View File

@ -5,6 +5,7 @@
/dts-v1/;
#include "sparx5_pcb134_board.dtsi"
#include "sparx5_nand.dtsi"
/ {
model = "Sparx5 PCB134 Reference Board (NAND)";

View File

@ -38,6 +38,38 @@ gpio-restart {
};
};
&spi0 {
status = "okay";
spi@0 {
compatible = "spi-mux";
mux-controls = <&mux>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0>; /* CS0 */
spi-flash@9 {
compatible = "jedec,spi-nor";
spi-max-frequency = <8000000>;
reg = <0x9>; /* SPI */
};
};
};
&spi0 {
status = "okay";
spi@0 {
compatible = "spi-mux";
mux-controls = <&mux>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0>; /* CS0 */
spi-flash@9 {
compatible = "jedec,spi-nor";
spi-max-frequency = <8000000>;
reg = <0x9>; /* SPI */
};
};
};
&gpio {
i2cmux_pins_i: i2cmux-pins-i {
pins = "GPIO_16", "GPIO_17", "GPIO_18", "GPIO_19",

View File

@ -15,3 +15,26 @@ memory@0 {
reg = <0x00000000 0x00000000 0x10000000>;
};
};
&gpio {
emmc_pins: emmc-pins {
/* NB: No "GPIO_35", "GPIO_36", "GPIO_37"
* (N/A: CARD_nDETECT, CARD_WP, CARD_LED)
*/
pins = "GPIO_34", "GPIO_38", "GPIO_39",
"GPIO_40", "GPIO_41", "GPIO_42",
"GPIO_43", "GPIO_44", "GPIO_45",
"GPIO_46", "GPIO_47";
drive-strength = <3>;
function = "emmc";
};
};
&sdhci0 {
status = "okay";
pinctrl-0 = <&emmc_pins>;
non-removable;
max-frequency = <52000000>;
bus-width = <8>;
microchip,clock-delay = <10>;
};

View File

@ -5,6 +5,7 @@
/dts-v1/;
#include "sparx5_pcb135_board.dtsi"
#include "sparx5_nand.dtsi"
/ {
model = "Sparx5 PCB135 Reference Board (NAND)";

View File

@ -51,6 +51,38 @@ i2cmux_s32: i2cmux-3 {
};
};
&spi0 {
status = "okay";
spi@0 {
compatible = "spi-mux";
mux-controls = <&mux>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0>; /* CS0 */
spi-flash@9 {
compatible = "jedec,spi-nor";
spi-max-frequency = <8000000>;
reg = <0x9>; /* SPI */
};
};
};
&spi0 {
status = "okay";
spi@0 {
compatible = "spi-mux";
mux-controls = <&mux>;
#address-cells = <1>;
#size-cells = <0>;
reg = <0>; /* CS0 */
spi-flash@9 {
compatible = "jedec,spi-nor";
spi-max-frequency = <8000000>;
reg = <0x9>; /* SPI */
};
};
};
&axi {
i2c0_imux: i2c0-imux@0 {
compatible = "i2c-mux-pinctrl";

View File

@ -15,3 +15,26 @@ memory@0 {
reg = <0x00000000 0x00000000 0x10000000>;
};
};
&gpio {
emmc_pins: emmc-pins {
/* NB: No "GPIO_35", "GPIO_36", "GPIO_37"
* (N/A: CARD_nDETECT, CARD_WP, CARD_LED)
*/
pins = "GPIO_34", "GPIO_38", "GPIO_39",
"GPIO_40", "GPIO_41", "GPIO_42",
"GPIO_43", "GPIO_44", "GPIO_45",
"GPIO_46", "GPIO_47";
drive-strength = <3>;
function = "emmc";
};
};
&sdhci0 {
status = "okay";
pinctrl-0 = <&emmc_pins>;
non-removable;
max-frequency = <52000000>;
bus-width = <8>;
microchip,clock-delay = <10>;
};