1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+ 2*0e8011faSEmmanuel Vadot/* 3*0e8011faSEmmanuel Vadot * Copyright (C) 2024 Josua Mayer <josua@solid-run.com> 4*0e8011faSEmmanuel Vadot * 5*0e8011faSEmmanuel Vadot * DTS for SolidRun CN9130 Clearfog Base. 6*0e8011faSEmmanuel Vadot * 7*0e8011faSEmmanuel Vadot */ 8*0e8011faSEmmanuel Vadot 9*0e8011faSEmmanuel Vadot/dts-v1/; 10*0e8011faSEmmanuel Vadot 11*0e8011faSEmmanuel Vadot#include <dt-bindings/input/input.h> 12*0e8011faSEmmanuel Vadot#include <dt-bindings/leds/common.h> 13*0e8011faSEmmanuel Vadot 14*0e8011faSEmmanuel Vadot#include "cn9130.dtsi" 15*0e8011faSEmmanuel Vadot#include "cn9130-sr-som.dtsi" 16*0e8011faSEmmanuel Vadot#include "cn9130-cf.dtsi" 17*0e8011faSEmmanuel Vadot 18*0e8011faSEmmanuel Vadot/ { 19*0e8011faSEmmanuel Vadot model = "SolidRun CN9130 Clearfog Base"; 20*0e8011faSEmmanuel Vadot compatible = "solidrun,cn9130-clearfog-base", 21*0e8011faSEmmanuel Vadot "solidrun,cn9130-sr-som", "marvell,cn9130"; 22*0e8011faSEmmanuel Vadot 23*0e8011faSEmmanuel Vadot gpio-keys { 24*0e8011faSEmmanuel Vadot compatible = "gpio-keys"; 25*0e8011faSEmmanuel Vadot pinctrl-0 = <&rear_button_pins>; 26*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 27*0e8011faSEmmanuel Vadot 28*0e8011faSEmmanuel Vadot button-0 { 29*0e8011faSEmmanuel Vadot /* The rear SW3 button */ 30*0e8011faSEmmanuel Vadot label = "Rear Button"; 31*0e8011faSEmmanuel Vadot gpios = <&cp0_gpio1 31 GPIO_ACTIVE_LOW>; 32*0e8011faSEmmanuel Vadot linux,can-disable; 33*0e8011faSEmmanuel Vadot linux,code = <BTN_0>; 34*0e8011faSEmmanuel Vadot }; 35*0e8011faSEmmanuel Vadot }; 36*0e8011faSEmmanuel Vadot 37*0e8011faSEmmanuel Vadot rfkill-m2-gnss { 38*0e8011faSEmmanuel Vadot compatible = "rfkill-gpio"; 39*0e8011faSEmmanuel Vadot label = "m.2 GNSS"; 40*0e8011faSEmmanuel Vadot radio-type = "gps"; 41*0e8011faSEmmanuel Vadot /* rfkill-gpio inverts internally */ 42*0e8011faSEmmanuel Vadot shutdown-gpios = <&expander0 9 GPIO_ACTIVE_HIGH>; 43*0e8011faSEmmanuel Vadot }; 44*0e8011faSEmmanuel Vadot 45*0e8011faSEmmanuel Vadot /* M.2 is B-keyed, so w-disable is for WWAN */ 46*0e8011faSEmmanuel Vadot rfkill-m2-wwan { 47*0e8011faSEmmanuel Vadot compatible = "rfkill-gpio"; 48*0e8011faSEmmanuel Vadot label = "m.2 WWAN"; 49*0e8011faSEmmanuel Vadot radio-type = "wwan"; 50*0e8011faSEmmanuel Vadot /* rfkill-gpio inverts internally */ 51*0e8011faSEmmanuel Vadot shutdown-gpios = <&expander0 8 GPIO_ACTIVE_HIGH>; 52*0e8011faSEmmanuel Vadot }; 53*0e8011faSEmmanuel Vadot}; 54*0e8011faSEmmanuel Vadot 55*0e8011faSEmmanuel Vadot/* SRDS #3 - SGMII 1GE */ 56*0e8011faSEmmanuel Vadot&cp0_eth1 { 57*0e8011faSEmmanuel Vadot phy = <&phy1>; 58*0e8011faSEmmanuel Vadot phys = <&cp0_comphy3 1>; 59*0e8011faSEmmanuel Vadot phy-mode = "sgmii"; 60*0e8011faSEmmanuel Vadot status = "okay"; 61*0e8011faSEmmanuel Vadot}; 62*0e8011faSEmmanuel Vadot 63*0e8011faSEmmanuel Vadot&cp0_eth2_phy { 64*0e8011faSEmmanuel Vadot /* 65*0e8011faSEmmanuel Vadot * Configure LEDs default behaviour: 66*0e8011faSEmmanuel Vadot * - LED[0]: link/activity: On/blink (green) 67*0e8011faSEmmanuel Vadot * - LED[1]: link is 100/1000Mbps: On (yellow) 68*0e8011faSEmmanuel Vadot * - LED[2]: high impedance (floating) 69*0e8011faSEmmanuel Vadot */ 70*0e8011faSEmmanuel Vadot marvell,reg-init = <3 16 0xf000 0x0a61>; 71*0e8011faSEmmanuel Vadot 72*0e8011faSEmmanuel Vadot leds { 73*0e8011faSEmmanuel Vadot #address-cells = <1>; 74*0e8011faSEmmanuel Vadot #size-cells = <0>; 75*0e8011faSEmmanuel Vadot 76*0e8011faSEmmanuel Vadot led@0 { 77*0e8011faSEmmanuel Vadot reg = <0>; 78*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 79*0e8011faSEmmanuel Vadot function = LED_FUNCTION_WAN; 80*0e8011faSEmmanuel Vadot default-state = "keep"; 81*0e8011faSEmmanuel Vadot }; 82*0e8011faSEmmanuel Vadot 83*0e8011faSEmmanuel Vadot led@1 { 84*0e8011faSEmmanuel Vadot reg = <1>; 85*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_YELLOW>; 86*0e8011faSEmmanuel Vadot function = LED_FUNCTION_WAN; 87*0e8011faSEmmanuel Vadot default-state = "keep"; 88*0e8011faSEmmanuel Vadot }; 89*0e8011faSEmmanuel Vadot }; 90*0e8011faSEmmanuel Vadot}; 91*0e8011faSEmmanuel Vadot 92*0e8011faSEmmanuel Vadot&cp0_gpio1 { 93*0e8011faSEmmanuel Vadot sim-select-hog { 94*0e8011faSEmmanuel Vadot gpio-hog; 95*0e8011faSEmmanuel Vadot gpios = <27 GPIO_ACTIVE_HIGH>; 96*0e8011faSEmmanuel Vadot output-high; 97*0e8011faSEmmanuel Vadot line-name = "sim-select"; 98*0e8011faSEmmanuel Vadot }; 99*0e8011faSEmmanuel Vadot}; 100*0e8011faSEmmanuel Vadot 101*0e8011faSEmmanuel Vadot&cp0_mdio { 102*0e8011faSEmmanuel Vadot phy1: ethernet-phy@1 { 103*0e8011faSEmmanuel Vadot reg = <1>; 104*0e8011faSEmmanuel Vadot /* 105*0e8011faSEmmanuel Vadot * Configure LEDs default behaviour: 106*0e8011faSEmmanuel Vadot * - LED[0]: link/activity: On/blink (green) 107*0e8011faSEmmanuel Vadot * - LED[1]: link is 100/1000Mbps: On (yellow) 108*0e8011faSEmmanuel Vadot * - LED[2]: high impedance (floating) 109*0e8011faSEmmanuel Vadot * 110*0e8011faSEmmanuel Vadot * Configure LEDs electrical polarity 111*0e8011faSEmmanuel Vadot * - on-state: low 112*0e8011faSEmmanuel Vadot * - off-state: high (not hi-z, to avoid residual glow) 113*0e8011faSEmmanuel Vadot */ 114*0e8011faSEmmanuel Vadot marvell,reg-init = <3 16 0xf000 0x0a61>, 115*0e8011faSEmmanuel Vadot <3 17 0x003f 0x000a>; 116*0e8011faSEmmanuel Vadot 117*0e8011faSEmmanuel Vadot leds { 118*0e8011faSEmmanuel Vadot #address-cells = <1>; 119*0e8011faSEmmanuel Vadot #size-cells = <0>; 120*0e8011faSEmmanuel Vadot 121*0e8011faSEmmanuel Vadot led@0 { 122*0e8011faSEmmanuel Vadot reg = <0>; 123*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 124*0e8011faSEmmanuel Vadot function = LED_FUNCTION_LAN; 125*0e8011faSEmmanuel Vadot default-state = "keep"; 126*0e8011faSEmmanuel Vadot }; 127*0e8011faSEmmanuel Vadot 128*0e8011faSEmmanuel Vadot led@1 { 129*0e8011faSEmmanuel Vadot reg = <1>; 130*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_YELLOW>; 131*0e8011faSEmmanuel Vadot function = LED_FUNCTION_LAN; 132*0e8011faSEmmanuel Vadot default-state = "keep"; 133*0e8011faSEmmanuel Vadot }; 134*0e8011faSEmmanuel Vadot }; 135*0e8011faSEmmanuel Vadot }; 136*0e8011faSEmmanuel Vadot}; 137*0e8011faSEmmanuel Vadot 138*0e8011faSEmmanuel Vadot&cp0_pinctrl { 139*0e8011faSEmmanuel Vadot pinctrl-0 = <&sim_select_pins>; 140*0e8011faSEmmanuel Vadot pintrl-names = "default"; 141*0e8011faSEmmanuel Vadot 142*0e8011faSEmmanuel Vadot rear_button_pins: cp0-rear-button-pins { 143*0e8011faSEmmanuel Vadot marvell,pins = "mpp31"; 144*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 145*0e8011faSEmmanuel Vadot }; 146*0e8011faSEmmanuel Vadot 147*0e8011faSEmmanuel Vadot sim_select_pins: cp0-sim-select-pins { 148*0e8011faSEmmanuel Vadot marvell,pins = "mpp27"; 149*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 150*0e8011faSEmmanuel Vadot }; 151*0e8011faSEmmanuel Vadot}; 152*0e8011faSEmmanuel Vadot 153*0e8011faSEmmanuel Vadot/* 154*0e8011faSEmmanuel Vadot * SRDS #4 - USB 3.0 host on M.2 connector 155*0e8011faSEmmanuel Vadot * USB-2.0 Host on Type-A connector 156*0e8011faSEmmanuel Vadot */ 157*0e8011faSEmmanuel Vadot&cp0_usb3_1 { 158*0e8011faSEmmanuel Vadot phys = <&cp0_comphy4 1>, <&cp0_utmi1>; 159*0e8011faSEmmanuel Vadot phy-names = "comphy", "utmi"; 160*0e8011faSEmmanuel Vadot dr_mode = "host"; 161*0e8011faSEmmanuel Vadot status = "okay"; 162*0e8011faSEmmanuel Vadot}; 163*0e8011faSEmmanuel Vadot 164*0e8011faSEmmanuel Vadot&expander0 { 165*0e8011faSEmmanuel Vadot m2-full-card-power-off-hog { 166*0e8011faSEmmanuel Vadot gpio-hog; 167*0e8011faSEmmanuel Vadot gpios = <2 GPIO_ACTIVE_LOW>; 168*0e8011faSEmmanuel Vadot output-low; 169*0e8011faSEmmanuel Vadot line-name = "m2-full-card-power-off"; 170*0e8011faSEmmanuel Vadot }; 171*0e8011faSEmmanuel Vadot 172*0e8011faSEmmanuel Vadot m2-reset-hog { 173*0e8011faSEmmanuel Vadot gpio-hog; 174*0e8011faSEmmanuel Vadot gpios = <10 GPIO_ACTIVE_LOW>; 175*0e8011faSEmmanuel Vadot output-low; 176*0e8011faSEmmanuel Vadot line-name = "m2-reset"; 177*0e8011faSEmmanuel Vadot }; 178*0e8011faSEmmanuel Vadot}; 179