mvebu dt64 for 5.13 (part 1)

Add DT for fan control on SolidRun Clearfog GT8k platform
 
 Add syscon compatible to NB clk node allowing improving cpufreq
 support on Armada 37xx
 
 Add support for UTMI PHY allowing removing kernel dependency from the
 boot loader for UBS port connected to this PHY (Armada 7K, 8K and
 CN91xx)
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCYGeE7AAKCRALBhiOFHI7
 1RLbAJ9PYflp+wQ8QZRza75fOOsvfY9m2ACfRe+U9StkSx9+wD6lxiTcUiYbjfc=
 =OYlz
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-dt64-5.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/dt

mvebu dt64 for 5.13 (part 1)

Add DT for fan control on SolidRun Clearfog GT8k platform

Add syscon compatible to NB clk node allowing improving cpufreq
support on Armada 37xx

Add support for UTMI PHY allowing removing kernel dependency from the
boot loader for UBS port connected to this PHY (Armada 7K, 8K and
CN91xx)

* tag 'mvebu-dt64-5.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  arm64: dts: marvell: enable CP110 UTMI PHY usage
  arm64: dts: marvell: add support for Marvell CP110 UTMI PHY
  arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node
  arm64: dts: marvell: clearfog-gt-8k: add cooling maps
  arm64: dts: marvell: clearfog-gt-8k: add pwm-fan

Link: https://lore.kernel.org/r/874kgocs7t.fsf@BL-laptop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2021-04-07 13:59:50 +02:00
commit d1e3a9efb2
9 changed files with 222 additions and 17 deletions

View File

@ -156,7 +156,8 @@
};
nb_periph_clk: nb-periph-clk@13000 {
compatible = "marvell,armada-3700-periph-clock-nb";
compatible = "marvell,armada-3700-periph-clock-nb",
"syscon";
reg = <0x13000 0x100>;
clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
<&tbg 3>, <&xtalclk>;

View File

@ -218,6 +218,10 @@
};
};
&cp0_utmi {
status = "okay";
};
&cp0_comphy1 {
cp0_usbh0_con: connector {
compatible = "usb-a-connector";
@ -226,8 +230,9 @@
};
&cp0_usb3_0 {
phys = <&cp0_comphy1 0>;
phy-names = "cp0-usb3h0-comphy";
phys = <&cp0_comphy1 0>, <&cp0_utmi0>;
phy-names = "cp0-usb3h0-comphy", "utmi";
dr_mode = "host";
status = "okay";
};
@ -239,8 +244,9 @@
};
&cp0_usb3_1 {
phys = <&cp0_comphy4 1>;
phy-names = "cp0-usb3h1-comphy";
phys = <&cp0_comphy4 1>, <&cp0_utmi1>;
phy-names = "cp0-usb3h1-comphy", "utmi";
dr_mode = "host";
status = "okay";
};

View File

@ -31,6 +31,16 @@
ethernet2 = &cp1_eth2;
};
fan: pwm {
compatible = "pwm-fan";
/* 20% steps */
cooling-levels = <0 51 102 153 204 255>;
#cooling-cells = <2>;
pinctrl-names = "default";
pinctrl-0 = <&cp0_fan_pwm_pins>;
pwms = <&cp0_gpio2 16 40000>;
};
v_3_3: regulator-3-3v {
compatible = "regulator-fixed";
regulator-name = "v_3_3";
@ -102,6 +112,123 @@
};
};
&ap_thermal_ic {
polling-delay = <1000>; /* milliseconds */
trips {
ap_active: trip-active {
temperature = <40000>; /* millicelsius */
hysteresis = <4000>; /* millicelsius */
type = "active";
};
};
cooling-maps {
map0 {
trip = <&ap_active>;
cooling-device = <&fan THERMAL_NO_LIMIT 4>;
};
map1 {
trip = <&ap_crit>;
cooling-device = <&fan 4 5>;
};
};
};
&cp0_thermal_ic {
polling-delay = <1000>; /* milliseconds */
trips {
cp0_active0: trip-active0 {
temperature = <40000>; /* millicelsius */
hysteresis = <2500>; /* millicelsius */
type = "active";
};
cp0_active1: trip-active1 {
temperature = <45000>; /* millicelsius */
hysteresis = <2500>; /* millicelsius */
type = "active";
};
cp0_active2: trip-active2 {
temperature = <50000>; /* millicelsius */
hysteresis = <2500>; /* millicelsius */
type = "active";
};
cp0_active3: trip-active3 {
temperature = <60000>; /* millicelsius */
hysteresis = <2500>; /* millicelsius */
type = "active";
};
};
cooling-maps {
map0 {
trip = <&cp0_active0>;
cooling-device = <&fan 0 1>;
};
map1 {
trip = <&cp0_active1>;
cooling-device = <&fan 1 2>;
};
map2 {
trip = <&cp0_active2>;
cooling-device = <&fan 2 3>;
};
map3 {
trip = <&cp0_active3>;
cooling-device = <&fan 3 4>;
};
map4 {
trip = <&cp0_crit>;
cooling-device = <&fan 4 5>;
};
};
};
&cp1_thermal_ic {
polling-delay = <1000>; /* milliseconds */
trips {
cp1_active0: trip-active0 {
temperature = <40000>; /* millicelsius */
hysteresis = <2500>; /* millicelsius */
type = "active";
};
cp1_active1: trip-active1 {
temperature = <45000>; /* millicelsius */
hysteresis = <2500>; /* millicelsius */
type = "active";
};
cp1_active2: trip-active2 {
temperature = <50000>; /* millicelsius */
hysteresis = <2500>; /* millicelsius */
type = "active";
};
cp1_active3: trip-active3 {
temperature = <60000>; /* millicelsius */
hysteresis = <2500>; /* millicelsius */
type = "active";
};
};
cooling-maps {
map0 {
trip = <&cp1_active0>;
cooling-device = <&fan 0 1>;
};
map1 {
trip = <&cp1_active1>;
cooling-device = <&fan 1 2>;
};
map2 {
trip = <&cp1_active2>;
cooling-device = <&fan 2 3>;
};
map3 {
trip = <&cp1_active3>;
cooling-device = <&fan 3 4>;
};
map4 {
trip = <&cp1_crit>;
cooling-device = <&fan 4 5>;
};
};
};
&uart0 {
status = "okay";
pinctrl-0 = <&uart0_pins>;

View File

@ -154,8 +154,15 @@
};
/* CON9 on CP0 expansion */
&cp0_utmi {
status = "okay";
};
&cp0_usb3_0 {
usb-phy = <&cp0_usb3_0_phy>;
phys = <&cp0_utmi0>;
phy-names = "utmi";
dr_mode = "host";
status = "okay";
};
@ -168,8 +175,9 @@
/* CON10 on CP0 expansion */
&cp0_usb3_1 {
phys = <&cp0_comphy4 1>;
phy-names = "cp0-usb3h1-comphy";
phys = <&cp0_comphy4 1>, <&cp0_utmi1>;
phy-names = "usb", "utmi";
dr_mode = "host";
status = "okay";
};
@ -306,14 +314,23 @@
};
};
&cp1_utmi {
status = "okay";
};
/* CON9 on CP1 expansion */
&cp1_usb3_0 {
usb-phy = <&cp1_usb3_0_phy>;
phys = <&cp1_utmi0>;
phy-names = "utmi";
dr_mode = "host";
status = "okay";
};
/* CON10 on CP1 expansion */
&cp1_usb3_1 {
phys = <&cp1_utmi1>;
phy-names = "utmi";
status = "okay";
};

View File

@ -259,13 +259,23 @@
vqmmc-supply = <&v_3_3>;
};
&cp0_utmi {
status = "okay";
};
&cp0_usb3_0 {
/* J38? - USB2.0 only */
phys = <&cp0_utmi0>;
phy-names = "utmi";
dr_mode = "host";
status = "okay";
};
&cp0_usb3_1 {
/* J38? - USB2.0 only */
phys = <&cp0_utmi1>;
phy-names = "utmi";
dr_mode = "host";
status = "okay";
};
@ -364,9 +374,14 @@
};
};
&cp1_usb3_0 {
/* CPS Lane 2 - CON7 */
phys = <&cp1_comphy2 0>;
phy-names = "cp1-usb3h0-comphy";
&cp1_utmi {
status = "okay";
};
&cp1_usb3_0 {
/* CPS Lane 2 - CON7 */
phys = <&cp1_comphy2 0>, <&cp1_utmi0>;
phy-names = "cp1-usb3h0-comphy", "utmi";
dr_mode = "host";
status = "okay";
};

View File

@ -285,6 +285,25 @@
};
};
CP11X_LABEL(utmi): utmi@580000 {
compatible = "marvell,cp110-utmi-phy";
reg = <0x580000 0x2000>;
marvell,system-controller = <&CP11X_LABEL(syscon0)>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
CP11X_LABEL(utmi0): usb-phy@0 {
reg = <0>;
#phy-cells = <0>;
};
CP11X_LABEL(utmi1): usb-phy@1 {
reg = <1>;
#phy-cells = <0>;
};
};
CP11X_LABEL(usb3_0): usb@500000 {
compatible = "marvell,armada-8k-xhci",
"generic-xhci";

View File

@ -392,14 +392,22 @@
};
};
&cp0_utmi {
status = "okay";
};
&cp0_usb3_0 {
status = "okay";
usb-phy = <&cp0_usb3_0_phy0>;
phy-names = "usb";
phys = <&cp0_utmi0>;
phy-names = "utmi";
dr_mode = "host";
};
&cp0_usb3_1 {
status = "okay";
usb-phy = <&cp0_usb3_0_phy1>;
phy-names = "usb";
phys = <&cp0_utmi1>;
phy-names = "utmi";
dr_mode = "host";
};

View File

@ -193,10 +193,15 @@
};
/* CON58 */
&cp1_utmi {
status = "okay";
};
&cp1_usb3_1 {
status = "okay";
usb-phy = <&cp1_usb3_0_phy0>;
/* Generic PHY, providing serdes lanes */
phys = <&cp1_comphy3 1>;
phy-names = "usb";
phys = <&cp1_comphy3 1>, <&cp1_utmi1>;
phy-names = "usb", "utmi";
dr_mode = "host";
};

View File

@ -205,17 +205,24 @@
};
};
&cp2_utmi {
status = "okay";
};
&cp2_usb3_0 {
status = "okay";
usb-phy = <&cp2_usb3_0_phy0>;
phys = <&cp2_utmi0>;
phy-names = "usb";
dr_mode = "host";
};
/* SLM-1521-V2, CON11 */
&cp2_usb3_1 {
status = "okay";
usb-phy = <&cp2_usb3_0_phy1>;
phy-names = "usb";
/* Generic PHY, providing serdes lanes */
phys = <&cp2_comphy3 1>;
phys = <&cp2_comphy3 1>, <&cp2_utmi1>;
phy-names = "usb", "utmi";
dr_mode = "host";
};