aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/modules.mk
blob: 4530708de9139855734e624229972bfbb79a9993 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#
# Copyright (C) 2006-2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

define KernelPackage/leds-rb750
  SUBMENU:=$(LEDS_MENU)
  TITLE:=RouterBOARD 750 LED support
  DEPENDS:=@TARGET_ar71xx
  KCONFIG:=CONFIG_LEDS_RB750
  FILES:=$(LINUX_DIR)/drivers/leds/leds-rb750.ko
  AUTOLOAD:=$(call AutoLoad,60,leds-rb750)
endef

define KernelPackage/leds-rb750/description
 Kernel module for the LEDs on the MikroTik RouterBOARD 750.
endef

$(eval $(call KernelPackage,leds-rb750))


define KernelPackage/leds-wndr3700-usb
  SUBMENU:=$(LEDS_MENU)
  TITLE:=WNDR3700 USB LED support
  DEPENDS:=@TARGET_ar71xx
  KCONFIG:=CONFIG_LEDS_WNDR3700_USB
  FILES:=$(LINUX_DIR)/drivers/leds/leds-wndr3700-usb.ko
  AUTOLOAD:=$(call AutoLoad,60,leds-wndr3700-usb)
endef

define KernelPackage/leds-wndr3700-usb/description
 Kernel module for the USB LED on the NETGEAR WNDR3700 board.
endef

$(eval $(call KernelPackage,leds-wndr3700-usb))


define KernelPackage/nand-ar934x
  SUBMENU:=$(OTHER_MENU)
  TITLE:=Atheros AR934x NAND flash controller driver
  KCONFIG:=\
    CONFIG_MTD_NAND_AR934X \
    CONFIG_MTD_NAND_AR934X_HW_ECC=y
  DEPENDS:=@TARGET_ar71xx +kmod-nand
  FILES:=$(LINUX_DIR)/drivers/mtd/nand/ar934x_nfc.ko
  AUTOLOAD:=$(call AutoLoad,25,ar934x_nfc)
endef

define KernelPackage/nand-ar934x/description
  Atheros AR934x NAND flash controller driver.
endef

$(eval $(call KernelPackage,nand-ar934x))


define KernelPackage/spi-vsc7385
  SUBMENU:=$(SPI_MENU)
  TITLE:=Vitesse VSC7385 ethernet switch driver
  DEPENDS:=@TARGET_ar71xx
  KCONFIG:=CONFIG_SPI_VSC7385
  FILES:=$(LINUX_DIR)/drivers/spi/spi-vsc7385.ko
  AUTOLOAD:=$(call AutoLoad,93,spi-vsc7385)
endef

define KernelPackage/spi-vsc7385/description
  This package contains the SPI driver for the Vitesse VSC7385 ethernet switch.
endef

$(eval $(call KernelPackage,spi-vsc7385))
ref='#n323'>323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

/*
 * Device Tree Source for Linksys EA8300 (Dallas)
 *
 * Copyright (C) 2019 Jeff Kletsky
 *
 */

/dts-v1/;

#include "qcom-ipq4019.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/soc/qcom,tcsr.h>

/ {
	model = "Linksys EA8300 (Dallas)";
	compatible = "linksys,ea8300", "qcom,ipq4019";


	aliases {
		led-boot = &led_wps_amber;
		led-failsafe = &led_wps;
		led-running = &led_linksys;
		led-upgrade = &led_world;
		serial0 = &blsp1_uart1;
	};


	leds {
		compatible = "gpio-leds";

		// Retain node names from running OEM on EA8300

		// Front panel LEDs, top to bottom

		led_plug: diag {
			label = "ea8300:amber:plug";
			gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
		};

		led_world: internet {
			label = "ea8300:amber:world";
			gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
		};

		led_wps: wps {
			label = "ea8300:white:wps";
			gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>;
		};

		led_wps_amber: wps_amber {
			label = "ea8300:amber:wps";
			gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
			panic-indicator;
		};

		led_linksys: pwr {
			label = "ea8300:white:linksys";
			gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
		};

		// On back panel, above USB socket

		led_usb: usb {
			label = "ea8300:green:usb";
			gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
			trigger-sources = <&usb3_port1>, <&usb3_port2>,
					  <&usb2_port1>;
			linux,default-trigger = "usbport";
		};
	};


	keys {
		compatible = "gpio-keys";

		button@0 {
			label = "reset";
			linux,code = <KEY_RESTART>;
			gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
		};

		button@1 {
			label = "wps";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
		};
	};


	//
	// OEM U-Boot provides either
	// init=/sbin/init rootfstype=ubifs ubi.mtd=11,2048 \
	//                 root=ubi0:ubifs rootwait rw
	// or the same with ubi.mtd=13,2048
	//

	chosen {
		bootargs-append = " root=/dev/ubiblock0_0 rootfstype=squashfs ro";
	};


	memory {
		device_type = "memory";
		reg = <0x80000000 0x10000000>;
	};


	soc {
		rng@22000 {
			status = "okay";
		};

		mdio@90000 {
			status = "okay";
		};

		ess-psgmii@98000 {
			status = "okay";
		};

		tcsr@1949000 {
			compatible = "qcom,tcsr";
			reg = <0x1949000 0x100>;
			qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
		};

		tcsr@194b000 {
			compatible = "qcom,tcsr";
			reg = <0x194b000 0x100>;
			qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
		};

		ess_tcsr@1953000 {
			compatible = "qcom,tcsr";
			reg = <0x1953000 0x1000>;
			qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
		};

		tcsr@1957000 {
			compatible = "qcom,tcsr";
			reg = <0x1957000 0x100>;
			qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
		};

		usb2@60f8800 {
			status = "okay";

			dwc3@6000000 {
				#address-cells = <1>;
				#size-cells = <0>;

				usb2_port1: port@1 {
					reg = <1>;
					#trigger-source-cells = <0>;
				};
			};
		};

		usb3@8af8800 {
			status = "okay";

			dwc3@8a00000 {
				#address-cells = <1>;
				#size-cells = <0>;

				usb3_port1: port@1 {
					reg = <1>;
					#trigger-source-cells = <0>;
				};

				usb3_port2: port@2 {
					reg = <2>;
					#trigger-source-cells = <0>;
				};
			};
		};

		crypto@8e3a000 {
			status = "okay";
		};

		watchdog@b017000 {
			status = "okay";
		};

		ess-switch@c000000 {
			status = "okay";
		};

		edma@c080000 {
			status = "okay";
		};
	};
};


&blsp_dma {
	status = "okay";
};

&blsp1_uart1 {
	status = "okay";
	pinctrl-0 = <&serial_0_pins>;
	pinctrl-names = "default";

};

&cryptobam {
	status = "okay";
};

&nand {
	status = "okay";

	pinctrl-0 = <&nand_pins>;
	pinctrl-names = "default";

	nand@0 {
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			partition@0 {
				label = "sbl1";
				reg = <0x0 0x100000>;
				read-only;
			};

			partition@100000 {
				label = "mibib";
				reg = <0x100000 0x100000>;
				read-only;
			};

			partition@200000 {
				label = "qsee";
				reg = <0x200000 0x100000>;
				read-only;
			};

			partition@300000 {
				label = "cdt";
				reg = <0x300000 0x80000>;
				read-only;
			};

			partition@380000 {
				label = "appsblenv";
				reg = <0x380000 0x80000>;
				read-only;
			};

			partition@400000 {
				label = "ART";
				reg = <0x400000 0x80000>;
				read-only;
			};

			partition@480000 {
				label = "appsbl";
				reg = <0x480000 0x200000>;
				read-only;
			};

			partition@680000 {
				label = "u_env";
				reg = <0x680000 0x80000>;
				// writable -- U-Boot environment
			};

			partition@700000 {
				label = "s_env";
				reg = <0x700000 0x40000>;
				// writable -- Boot counter records
			};

			partition@740000 {
				label = "devinfo";
				reg = <0x740000 0x40000>;
				read-only;
			};

			partition@780000 {
				label = "kernel";
				reg = <0x780000 0x5800000>;
			};

			partition@a80000 {
				label = "rootfs";
				reg = <0xa80000 0x5500000>;
			};

			partition@5f80000 {
				label = "alt_kernel";
				reg = <0x5f80000 0x5800000>;
			};

			partition@6280000 {
				label = "alt_rootfs";
				reg = <0x6280000 0x5500000>;
			};

			partition@b780000 {
				label = "sysdiag";
				reg = <0xb780000 0x100000>;
				read-only;
			};

			partition@b880000 {
				label = "syscfg";
				reg = <0xb880000 0x4680000>;
				read-only;
			};
		};
	};
};

&pcie0 {
	status = "okay";

	perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>;
	wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;

	bridge@0,0 {
		reg = <0x00000000 0 0 0 0>;
		#address-cells = <3>;
		#size-cells = <2>;
		ranges;

		wifi2: wifi@1,0 {
			compatible = "qcom,ath10k";
			reg = <0x00010000 0 0 0 0>;
		};
	};
};

&qpic_bam {
	status = "okay";
};

&tlmm {
	serial_0_pins: serial0-pinmux {
		pins = "gpio16", "gpio17";
		function = "blsp_uart0";
		bias-disable;
	};

	nand_pins: nand_pins {
		pullups {
			pins = "gpio53", "gpio58", "gpio59";
			function = "qpic";
			bias-pull-up;
		};

		// gpio61 controls led_usb

		pulldowns {
			pins =  "gpio55", "gpio56", "gpio57",
				"gpio60", "gpio62", "gpio63",
				"gpio64", "gpio65", "gpio66",
				"gpio67", "gpio68", "gpio69";
			function = "qpic";
			bias-pull-down;
		};
	};
};

&usb2_hs_phy {
	status = "okay";
};

&usb3_hs_phy {
	status = "okay";
};

&usb3_ss_phy {
	status = "okay";
};

&wifi0 {
	status = "okay";
	qcom,ath10k-calibration-variant = "linksys-ea8300-fcc";
};

&wifi1 {
	status = "okay";
	ieee80211-freq-limit = <5170000 5330000>;
	qcom,ath10k-calibration-variant = "linksys-ea8300-fcc";
};

&wifi2 {
	status = "okay";
	ieee80211-freq-limit = <5490000 5835000>;
	qcom,ath10k-calibration-variant = "linksys-ea8300-fcc";
};