ath79: initial gl-ar300m support
Signed-off-by: Marty E. Plummer <hanetzer@startmail.com>
This commit is contained in:
		 Marty E. Plummer
					Marty E. Plummer
				
			
				
					committed by
					
						 John Crispin
						John Crispin
					
				
			
			
				
	
			
			
			 John Crispin
						John Crispin
					
				
			
						parent
						
							142477e751
						
					
				
				
					commit
					fe3b62bbdc
				
			| @@ -28,6 +28,11 @@ ath79_setup_interfaces() | |||||||
| 	"glinet,ar150") | 	"glinet,ar150") | ||||||
| 		ucidef_set_interfaces_lan_wan "eth1" "eth0" | 		ucidef_set_interfaces_lan_wan "eth1" "eth0" | ||||||
| 		;; | 		;; | ||||||
|  |  | ||||||
|  | 	"glinet,ar300m") | ||||||
|  | 		ucidef_set_interfaces_lan_wan "eth1" "eth0" | ||||||
|  | 		;; | ||||||
|  |  | ||||||
| 	"tplink,tl-mr3020-v1") | 	"tplink,tl-mr3020-v1") | ||||||
| 		ucidef_set_interface_lan "eth0.1" | 		ucidef_set_interface_lan "eth0.1" | ||||||
| 		ucidef_add_switch "switch0" "0@eth0" "1:lan" | 		ucidef_add_switch "switch0" "0@eth0" "1:lan" | ||||||
|   | |||||||
							
								
								
									
										235
									
								
								target/linux/ath79/dts/qca9533.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										235
									
								
								target/linux/ath79/dts/qca9533.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,235 @@ | |||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||||||
|  | #include <dt-bindings/clock/ath79-clk.h> | ||||||
|  | #include "ath79.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	compatible = "qca,qca9533"; | ||||||
|  |  | ||||||
|  | 	#address-cells = <1>; | ||||||
|  | 	#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 	cpus { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 		cpu@0 { | ||||||
|  | 			device_type = "cpu"; | ||||||
|  | 			compatible = "mips,mips24Kc"; | ||||||
|  | 			clocks = <&pll ATH79_CLK_CPU>; | ||||||
|  | 			reg = <0>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	ref: ref { | ||||||
|  | 		compatible = "fixed-clock"; | ||||||
|  | 		#clock-cells = <0>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	ahb { | ||||||
|  | 		apb { | ||||||
|  | 			ddr_ctrl: memory-controller@18000000 { | ||||||
|  | 				compatible = "qca,ar9530-ddr-controller", | ||||||
|  | 						"qca,ar7240-ddr-controller"; | ||||||
|  | 				reg = <0x18000000 0x128>; | ||||||
|  |  | ||||||
|  | 				#qca,ddr-wb-channel-cells = <1>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			uart: uart@18020000 { | ||||||
|  | 				compatible = "ns16550a"; | ||||||
|  | 				reg = <0x18020000 0x20>; | ||||||
|  |  | ||||||
|  | 				interrupts = <3>; | ||||||
|  |  | ||||||
|  | 				clocks = <&pll ATH79_CLK_REF>; | ||||||
|  | 				clock-names = "uart"; | ||||||
|  |  | ||||||
|  | 				reg-io-width = <4>; | ||||||
|  | 				reg-shift = <2>; | ||||||
|  | 				no-loopback-test; | ||||||
|  |  | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			usb_phy: usb-phy@18030000 { | ||||||
|  | 				compatible = "qca,ar7200-usb-phy"; | ||||||
|  | 				reg = <0x18030000 0x100>; | ||||||
|  | 				#phy-cells = <0>; | ||||||
|  |  | ||||||
|  | 				reset-names = "usb-phy", "usb-suspend-override"; | ||||||
|  | 				resets = <&rst 4>, <&rst 3>; | ||||||
|  |  | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			gpio: gpio@18040000 { | ||||||
|  | 				compatible = "qca,ar9530-gpio", | ||||||
|  | 						"qca,ar9340-gpio"; | ||||||
|  | 				reg = <0x18040000 0x28>; | ||||||
|  |  | ||||||
|  | 				interrupts = <2>; | ||||||
|  | 				ngpios = <20>; | ||||||
|  |  | ||||||
|  | 				gpio-controller; | ||||||
|  | 				#gpio-cells = <2>; | ||||||
|  |  | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <2>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			pinmux: pinmux@1804002c { | ||||||
|  | 				compatible = "pinctrl-single"; | ||||||
|  |  | ||||||
|  | 				reg = <0x1804002c 0x48>; | ||||||
|  |  | ||||||
|  | 				#size-cells = <0>; | ||||||
|  |  | ||||||
|  | 				pinctrl-single,bit-per-mux; | ||||||
|  | 				pinctrl-single,register-width = <32>; | ||||||
|  | 				pinctrl-single,function-mask = <0x1>; | ||||||
|  | 				#pinctrl-cells = <2>; | ||||||
|  |  | ||||||
|  | 				jtag_disable_pins: pinmux_jtag_disable_pins { | ||||||
|  | 					pinctrl-single,bits = < | ||||||
|  | 						0x40 0x2 0x2 | ||||||
|  | 						>; | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			pll: pll-controller@18050000 { | ||||||
|  | 				compatible = "qca,qca9530-pll", "syscon"; | ||||||
|  | 				reg = <0x18050000 0x48>; | ||||||
|  |  | ||||||
|  | 				#clock-cells = <1>; | ||||||
|  | 				clocks = <&ref>; | ||||||
|  | 				clock-names = "ref"; | ||||||
|  | 				clock-output-names = "cpu", "ddr", "ahb"; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			wdt: wdt@18060008 { | ||||||
|  | 				compatible = "qca,qca9530-wdt", "qca,ar7130-wdt"; | ||||||
|  | 				reg = <0x18060008 0x8>; | ||||||
|  |  | ||||||
|  | 				interrupts = <4>; | ||||||
|  |  | ||||||
|  | 				clocks = <&pll ATH79_CLK_AHB>; | ||||||
|  | 				clock-names = "wdt"; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			rst: reset-controller@1806001c { | ||||||
|  | 				compatible = "qca,qca9530-reset", | ||||||
|  | 						"qca,ar7100-reset"; | ||||||
|  | 				reg = <0x1806001c 0xac>; | ||||||
|  |  | ||||||
|  | 				#reset-cells = <1>; | ||||||
|  |  | ||||||
|  | 				intc2: interrupt-controller@2 { | ||||||
|  | 					compatible = "qcom,qca9556-intc"; | ||||||
|  |  | ||||||
|  | 					interrupts = <2>; | ||||||
|  |  | ||||||
|  | 					interrupt-controller; | ||||||
|  | 					#interrupt-cells = <1>; | ||||||
|  |  | ||||||
|  | 					qcom,pending-bits = <0x1f0>,	/* pcie rc1 */ | ||||||
|  | 							    <0xf>;	/* wmac */ | ||||||
|  | 				}; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			pcie0: pcie-controller@180c0000 { | ||||||
|  | 				compatible = "qcom,ar7240-pci"; | ||||||
|  | 				#address-cells = <3>; | ||||||
|  | 				#size-cells = <2>; | ||||||
|  | 				bus-range = <0x0 0x0>; | ||||||
|  | 				reg = <0x180c0000 0x1000>, /* CRP */ | ||||||
|  | 				      <0x180f0000 0x100>,  /* CTRL */ | ||||||
|  | 				      <0x14000000 0x1000>; /* CFG */ | ||||||
|  | 				reg-names = "crp_base", "ctrl_base", "cfg_base"; | ||||||
|  | 				ranges = <0x2000000 0 0x10000000 0x10000000 0 0x04000000	/* pci memory */ | ||||||
|  | 					  0x1000000 0 0x00000000 0x0000000 0 0x000001>;		/* io space */ | ||||||
|  | 				interrupt-parent = <&intc2>; | ||||||
|  | 				interrupts = <0>; | ||||||
|  |  | ||||||
|  | 				interrupt-controller; | ||||||
|  | 				#interrupt-cells = <1>; | ||||||
|  |  | ||||||
|  | 				interrupt-map-mask = <0 0 0 1>; | ||||||
|  | 				interrupt-map = <0 0 0 0 &pcie0 0>; | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			wmac: gmac@18100000 { | ||||||
|  | 				compatible = "qca,qca9530-wmac"; | ||||||
|  | 				reg = <0x18100000 0x230000>; | ||||||
|  |  | ||||||
|  | 				interrupt-parent = <&cpuintc>; | ||||||
|  | 				interrupts = <2>; | ||||||
|  |  | ||||||
|  | 				status = "disabled"; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		usb0: usb@1b000000 { | ||||||
|  | 			compatible = "generic-ehci"; | ||||||
|  | 			reg = <0x1b000000 0x1000>; | ||||||
|  |  | ||||||
|  | 			interrupts = <3>; | ||||||
|  | 			resets = <&rst 5>; | ||||||
|  | 			reset-names = "usb-host"; | ||||||
|  | 			dr_mode = "host"; | ||||||
|  |  | ||||||
|  | 			has-transaction-translator; | ||||||
|  | 			caps-offset = <0x100>; | ||||||
|  |  | ||||||
|  | 			phy-names = "usb-phy"; | ||||||
|  | 			phys = <&usb_phy>; | ||||||
|  |  | ||||||
|  | 			status = "disabled"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		spi: spi@1f000000 { | ||||||
|  | 			compatible = "qca,ar9530-spi", "qca,ar7100-spi"; | ||||||
|  | 			reg = <0x1f000000 0x10>; | ||||||
|  |  | ||||||
|  | 			clocks = <&pll ATH79_CLK_AHB>; | ||||||
|  | 			clock-names = "ahb"; | ||||||
|  |  | ||||||
|  | 			status = "disabled"; | ||||||
|  |  | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <0>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mdio0 { | ||||||
|  | 	resets = <&rst 22>; | ||||||
|  | 	reset-names = "mdio"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð0 { | ||||||
|  | 	compatible = "qca,qca9530-eth", "syscon"; | ||||||
|  | 	pll-data = <0x82000101 0x80000101 0x80001313>; | ||||||
|  | 	reg = <0x19000000 0x200 | ||||||
|  | 		0x18070000 0x4>; | ||||||
|  | 	pll-reg = <0x4 0x2c 17>; | ||||||
|  | 	pll-handle = <&pll>; | ||||||
|  |  | ||||||
|  | 	reset-names = "mac"; | ||||||
|  | 	resets = <&rst 9>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | &mdio1 { | ||||||
|  | 	resets = <&rst 23>; | ||||||
|  | 	reset-names = "mdio"; | ||||||
|  | 	builtin-switch; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð1 { | ||||||
|  | 	compatible = "qca,qca9530-eth", "syscon"; | ||||||
|  | 	resets = <&rst 13>; | ||||||
|  | 	reset-names = "mac"; | ||||||
|  | }; | ||||||
							
								
								
									
										141
									
								
								target/linux/ath79/dts/qca9533_glinet_ar300m.dtsi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								target/linux/ath79/dts/qca9533_glinet_ar300m.dtsi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,141 @@ | |||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  |  | ||||||
|  | #include "qca9533.dtsi" | ||||||
|  |  | ||||||
|  | / { | ||||||
|  | 	compatible = "glinet,ar300m", "qca,qca9533"; | ||||||
|  | 	model = "GL.iNet GL-AR300M"; | ||||||
|  |  | ||||||
|  | 	memory@0 { | ||||||
|  | 		device_type = "memory"; | ||||||
|  | 		reg = <0x0 0x8000000>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	extosc: ref { | ||||||
|  | 		compatible = "fixed-clock"; | ||||||
|  | 		#clock-cells = <0>; | ||||||
|  | 		clock-output-names = "ref"; | ||||||
|  | 		clock-frequency = <25000000>; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	keys { | ||||||
|  | 		compatible = "gpio-keys-polled"; | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <0>; | ||||||
|  | 		poll-interval = <20>; | ||||||
|  | 		pinctrl-names = "default"; | ||||||
|  | 		pinctrl-0 = <&jtag_disable_pins>; | ||||||
|  |  | ||||||
|  | 		button@0 { | ||||||
|  | 			label = "reset"; | ||||||
|  | 			linux,code = <KEY_RESTART>; | ||||||
|  | 			gpios = <&gpio 3 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		button@1 { | ||||||
|  | 			label = "button right"; | ||||||
|  | 			linux,code = <BTN_0>; | ||||||
|  | 			gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		button@3 { | ||||||
|  | 			label = "button left"; | ||||||
|  | 			linux,code = <BTN_1>; | ||||||
|  | 			gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	leds { | ||||||
|  | 		compatible = "gpio-leds"; | ||||||
|  |  | ||||||
|  | 		usb { | ||||||
|  | 			label = "gl-ar300m:green:usb"; | ||||||
|  | 			gpios = <&gpio 2 GPIO_ACTIVE_LOW>; | ||||||
|  | 			trigger-sources = <&hub_port>; | ||||||
|  | 			linux,default-trigger = "usbport"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		wlan { | ||||||
|  | 			label = "gl-ar300m:green:wlan"; | ||||||
|  | 			gpios = <&gpio 14 GPIO_ACTIVE_LOW>; | ||||||
|  | 			linux,default-trigger = "phy0tpt"; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		lan { | ||||||
|  | 			label = "gl-ar300m:green:lan"; | ||||||
|  | 			gpios = <&gpio 13 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		status { | ||||||
|  | 			label = "gl-ar300m:green:status"; | ||||||
|  | 			gpios = <&gpio 3 GPIO_ACTIVE_LOW>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pcie0 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &uart { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	hub_port: port@1 { | ||||||
|  | 		reg = <1>; | ||||||
|  | 		#trigger-soruce-cells = <0>; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &usb_phy { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &pll { | ||||||
|  | 	clocks = <&extosc>; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mdio0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	phy4: ethernet-phy@4 { | ||||||
|  | 		reg = <4>; | ||||||
|  | 		phy-mode = "mii"; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &mdio1 { | ||||||
|  | 	status = "okay"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð0 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	mtd-mac-address = <&art 0x0>; | ||||||
|  | 	phy-handle = <&phy4>; | ||||||
|  | 	phy-mode = "mii"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | ð1 { | ||||||
|  | 	status = "okay"; | ||||||
|  |  | ||||||
|  | 	mtd-mac-address = <&art 0x6>; | ||||||
|  | 	phy-mode = "gmii"; | ||||||
|  |  | ||||||
|  | 	fixed-link { | ||||||
|  | 		speed = <1000>; | ||||||
|  | 		full-duplex; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | &wmac { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	mtd-cal-data = <&art 0x1000>; | ||||||
|  | 	mtd-mac-address = <&art 0x1002>; | ||||||
|  | }; | ||||||
							
								
								
									
										46
									
								
								target/linux/ath79/dts/qca9533_glinet_ar300m_nor.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								target/linux/ath79/dts/qca9533_glinet_ar300m_nor.dts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  | /dts-v1/; | ||||||
|  |  | ||||||
|  | #include <dt-bindings/gpio/gpio.h> | ||||||
|  | #include <dt-bindings/input/input.h> | ||||||
|  |  | ||||||
|  | #include "qca9533_glinet_ar300m.dtsi" | ||||||
|  |  | ||||||
|  | &spi { | ||||||
|  | 	status = "okay"; | ||||||
|  | 	num-cs = <0>; | ||||||
|  |  | ||||||
|  | 	flash@0 { | ||||||
|  | 		#address-cells = <1>; | ||||||
|  | 		#size-cells = <1>; | ||||||
|  | 		compatible = "winbond,w25q128", "jedec,spi-nor"; | ||||||
|  | 		reg = <0>; | ||||||
|  | 		spi-max-frequency = <25000000>; | ||||||
|  |  | ||||||
|  | 		partitions { | ||||||
|  | 			compatible = "fixed-partitions"; | ||||||
|  | 			#address-cells = <1>; | ||||||
|  | 			#size-cells = <1>; | ||||||
|  |  | ||||||
|  | 			partition@0 { | ||||||
|  | 				label = "u-boot"; | ||||||
|  | 				reg = <0x000000 0x040000>; | ||||||
|  | 				read-only; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@1 { | ||||||
|  | 				label = "u-boot-env"; | ||||||
|  | 				reg = <0x040000 0x010000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			partition@2 { | ||||||
|  | 				label = "firmware"; | ||||||
|  | 				reg = <0x050000 0xfa0000>; | ||||||
|  | 			}; | ||||||
|  |  | ||||||
|  | 			art: partition@3 { | ||||||
|  | 				label = "art"; | ||||||
|  | 				reg = <0xff0000 0x010000>; | ||||||
|  | 			}; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
|  | }; | ||||||
| @@ -40,6 +40,15 @@ define Device/glinet_ar150 | |||||||
| endef | endef | ||||||
| TARGET_DEVICES += glinet_ar150 | TARGET_DEVICES += glinet_ar150 | ||||||
|  |  | ||||||
|  | define Device/glinet_ar300m_nor | ||||||
|  |   ATH_SOC := qca9533 | ||||||
|  |   DEVICE_TITLE := GL.iNet GL-AR300M | ||||||
|  |   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 | ||||||
|  |   IMAGE_SIZE := 16000k | ||||||
|  |   SUPPORTED_DEVICES += gl-ar300m | ||||||
|  | endef | ||||||
|  | TARGET_DEVICES += glinet_ar300m_nor | ||||||
|  |  | ||||||
| define Device/openmesh_om5p-ac-v2 | define Device/openmesh_om5p-ac-v2 | ||||||
|   ATH_SOC := qca9558 |   ATH_SOC := qca9558 | ||||||
|   DEVICE_TITLE := OpenMesh OM5P-AC v2 |   DEVICE_TITLE := OpenMesh OM5P-AC v2 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user