ipq806x: 5:15: add testing kernel version
Refresh patch for 5.15 Rework tweak patch to sync with upstream ipq8064 dtsi and fix regression introduced. Rename nand_controller to nand in every dts. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
This commit is contained in:
		 Ansuel Smith
					Ansuel Smith
				
			
				
					committed by
					
						 Daniel Golle
						Daniel Golle
					
				
			
			
				
	
			
			
			 Daniel Golle
						Daniel Golle
					
				
			
						parent
						
							327677a71d
						
					
				
				
					commit
					8cc2caed58
				
			| @@ -11,6 +11,7 @@ CPU_SUBTYPE:=neon-vfpv4 | |||||||
| SUBTARGETS:=generic | SUBTARGETS:=generic | ||||||
|  |  | ||||||
| KERNEL_PATCHVER:=5.10 | KERNEL_PATCHVER:=5.10 | ||||||
|  | KERNEL_TESTING_PATCHVER:=5.15 | ||||||
|  |  | ||||||
| KERNELNAME:=zImage Image dtbs | KERNELNAME:=zImage Image dtbs | ||||||
|  |  | ||||||
|   | |||||||
| @@ -51,7 +51,7 @@ | |||||||
| 	max-link-speed = <1>; | 	max-link-speed = <1>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -63,7 +63,7 @@ | |||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -231,7 +231,7 @@ | |||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ | |||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -172,7 +172,7 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -166,7 +166,7 @@ | |||||||
| 	max-link-speed = <1>; | 	max-link-speed = <1>; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -228,7 +228,7 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -218,7 +218,7 @@ | |||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -103,7 +103,7 @@ | |||||||
| 	pinctrl-names = "default"; | 	pinctrl-names = "default"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -156,7 +156,7 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -220,7 +220,7 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -98,7 +98,7 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -137,7 +137,7 @@ | |||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -259,7 +259,7 @@ | |||||||
| 	}; | 	}; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| &nand_controller { | &nand { | ||||||
| 	status = "okay"; | 	status = "okay"; | ||||||
|  |  | ||||||
| 	pinctrl-0 = <&nand_pins>; | 	pinctrl-0 = <&nand_pins>; | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org> | |||||||
|  |  | ||||||
| --- a/arch/arm/Kconfig | --- a/arch/arm/Kconfig | ||||||
| +++ b/arch/arm/Kconfig | +++ b/arch/arm/Kconfig | ||||||
| @@ -322,7 +322,7 @@ config ARCH_MULTIPLATFORM | @@ -321,7 +321,7 @@ config ARCH_MULTIPLATFORM | ||||||
|  	select ARCH_SELECT_MEMORY_MODEL |  	select ARCH_SELECT_MEMORY_MODEL | ||||||
|  	select ARM_HAS_SG_CHAIN |  	select ARM_HAS_SG_CHAIN | ||||||
|  	select ARM_PATCH_PHYS_VIRT |  	select ARM_PATCH_PHYS_VIRT | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com> | |||||||
|  |  | ||||||
| --- a/arch/arm/Kconfig | --- a/arch/arm/Kconfig | ||||||
| +++ b/arch/arm/Kconfig | +++ b/arch/arm/Kconfig | ||||||
| @@ -1781,6 +1781,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN | @@ -1780,6 +1780,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN | ||||||
|  	  The command-line arguments provided by the boot loader will be |  	  The command-line arguments provided by the boot loader will be | ||||||
|  	  appended to the the device tree bootargs property. |  	  appended to the the device tree bootargs property. | ||||||
|   |   | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  |  | ||||||
| --- a/arch/arm/boot/dts/Makefile | --- a/arch/arm/boot/dts/Makefile | ||||||
| +++ b/arch/arm/boot/dts/Makefile | +++ b/arch/arm/boot/dts/Makefile | ||||||
| @@ -907,8 +907,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \ | @@ -955,8 +955,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \ | ||||||
|  	qcom-ipq4019-ap.dk04.1-c3.dtb \ |  	qcom-ipq4019-ap.dk04.1-c3.dtb \ | ||||||
|  	qcom-ipq4019-ap.dk07.1-c1.dtb \ |  	qcom-ipq4019-ap.dk07.1-c1.dtb \ | ||||||
|  	qcom-ipq4019-ap.dk07.1-c2.dtb \ |  	qcom-ipq4019-ap.dk07.1-c2.dtb \ | ||||||
| @@ -32,11 +32,11 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
| +	qcom-ipq8064-wxr-2533dhp.dtb \ | +	qcom-ipq8064-wxr-2533dhp.dtb \ | ||||||
| +	qcom-ipq8065-nbg6817.dtb \ | +	qcom-ipq8065-nbg6817.dtb \ | ||||||
| +	qcom-ipq8065-r7800.dtb \ | +	qcom-ipq8065-r7800.dtb \ | ||||||
| +	qcom-ipq8065-rt4230w-rev6.dtb \ |  | ||||||
| +	qcom-ipq8065-xr500.dtb \ | +	qcom-ipq8065-xr500.dtb \ | ||||||
|  | +	qcom-ipq8065-rt4230w-rev6.dtb \ | ||||||
| +	qcom-ipq8068-ecw5410.dtb \ | +	qcom-ipq8068-ecw5410.dtb \ | ||||||
| +	qcom-ipq8068-mr42.dtb \ | +	qcom-ipq8068-mr42.dtb \ | ||||||
| +	qcom-ipq8068-mr52.dtb \ | +	qcom-ipq8068-mr52.dtb \ | ||||||
|  |  	qcom-msm8226-samsung-s3ve3g.dtb \ | ||||||
|  	qcom-msm8660-surf.dtb \ |  	qcom-msm8660-surf.dtb \ | ||||||
|  	qcom-msm8960-cdp.dtb \ |  	qcom-msm8960-cdp.dtb \ | ||||||
|  	qcom-msm8974-fairphone-fp2.dtb \ |  | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| --- a/drivers/firmware/qcom_scm.c | --- a/drivers/firmware/qcom_scm.c | ||||||
| +++ b/drivers/firmware/qcom_scm.c | +++ b/drivers/firmware/qcom_scm.c | ||||||
| @@ -1275,6 +1275,7 @@ static const struct of_device_id qcom_sc | @@ -1339,6 +1339,7 @@ static const struct of_device_id qcom_sc | ||||||
|  							     SCM_HAS_BUS_CLK) |  							     SCM_HAS_BUS_CLK) | ||||||
|  	}, |  	}, | ||||||
|  	{ .compatible = "qcom,scm-ipq4019" }, |  	{ .compatible = "qcom,scm-ipq4019" }, | ||||||
| +	{ .compatible = "qcom,scm-ipq806x" }, | +	{ .compatible = "qcom,scm-ipq806x" }, | ||||||
|  	{ .compatible = "qcom,scm-msm8660", .data = (void *) SCM_HAS_CORE_CLK }, |  	{ .compatible = "qcom,scm-mdm9607", .data = (void *)(SCM_HAS_CORE_CLK | | ||||||
|  	{ .compatible = "qcom,scm-msm8960", .data = (void *) SCM_HAS_CORE_CLK }, |  							     SCM_HAS_IFACE_CLK | | ||||||
|  	{ .compatible = "qcom,scm-msm8916", .data = (void *)(SCM_HAS_CORE_CLK | |  							     SCM_HAS_BUS_CLK) }, | ||||||
|   | |||||||
| @@ -1,33 +1,6 @@ | |||||||
| --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi | --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi | ||||||
| +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi | +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi | ||||||
| @@ -20,7 +20,7 @@ | @@ -352,6 +352,7 @@ | ||||||
|  		#address-cells = <1>; |  | ||||||
|  		#size-cells = <0>; |  | ||||||
|   |  | ||||||
| -		cpu@0 { |  | ||||||
| +		cpu0: cpu@0 { |  | ||||||
|  			compatible = "qcom,krait"; |  | ||||||
|  			enable-method = "qcom,kpss-acc-v1"; |  | ||||||
|  			device_type = "cpu"; |  | ||||||
| @@ -30,7 +30,7 @@ |  | ||||||
|  			qcom,saw = <&saw0>; |  | ||||||
|  		}; |  | ||||||
|   |  | ||||||
| -		cpu@1 { |  | ||||||
| +		cpu1: cpu@1 { |  | ||||||
|  			compatible = "qcom,krait"; |  | ||||||
|  			enable-method = "qcom,kpss-acc-v1"; |  | ||||||
|  			device_type = "cpu"; |  | ||||||
| @@ -67,7 +67,7 @@ |  | ||||||
|  			no-map; |  | ||||||
|  		}; |  | ||||||
|   |  | ||||||
| -		smem@41000000 { |  | ||||||
| +		smem: smem@41000000 { |  | ||||||
|  			reg = <0x41000000 0x200000>; |  | ||||||
|  			no-map; |  | ||||||
|  		}; |  | ||||||
| @@ -128,6 +128,7 @@ |  | ||||||
|  			gpio-ranges = <&qcom_pinmux 0 0 69>; |  			gpio-ranges = <&qcom_pinmux 0 0 69>; | ||||||
|  			#gpio-cells = <2>; |  			#gpio-cells = <2>; | ||||||
|  			interrupt-controller; |  			interrupt-controller; | ||||||
| @@ -35,7 +8,7 @@ | |||||||
|  			#interrupt-cells = <2>; |  			#interrupt-cells = <2>; | ||||||
|  			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; |  			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|   |   | ||||||
| @@ -155,6 +156,7 @@ | @@ -379,6 +380,7 @@ | ||||||
|  					function = "pcie3_rst"; |  					function = "pcie3_rst"; | ||||||
|  					drive-strength = <12>; |  					drive-strength = <12>; | ||||||
|  					bias-disable; |  					bias-disable; | ||||||
| @@ -43,7 +16,40 @@ | |||||||
|  				}; |  				}; | ||||||
|  			}; |  			}; | ||||||
|   |   | ||||||
| @@ -190,6 +192,7 @@ | @@ -411,12 +413,9 @@ | ||||||
|  |  			}; | ||||||
|  |   | ||||||
|  |  			nand_pins: nand_pins { | ||||||
|  | -				mux { | ||||||
|  | +				disable { | ||||||
|  |  					pins = "gpio34", "gpio35", "gpio36", | ||||||
|  | -					       "gpio37", "gpio38", "gpio39", | ||||||
|  | -					       "gpio40", "gpio41", "gpio42", | ||||||
|  | -					       "gpio43", "gpio44", "gpio45", | ||||||
|  | -					       "gpio46", "gpio47"; | ||||||
|  | +					       "gpio37", "gpio38"; | ||||||
|  |  					function = "nand"; | ||||||
|  |  					drive-strength = <10>; | ||||||
|  |  					bias-disable; | ||||||
|  | @@ -424,6 +423,8 @@ | ||||||
|  |   | ||||||
|  |  				pullups { | ||||||
|  |  					pins = "gpio39"; | ||||||
|  | +					function = "nand"; | ||||||
|  | +					drive-strength = <10>; | ||||||
|  |  					bias-pull-up; | ||||||
|  |  				}; | ||||||
|  |   | ||||||
|  | @@ -431,6 +432,8 @@ | ||||||
|  |  					pins = "gpio40", "gpio41", "gpio42", | ||||||
|  |  					       "gpio43", "gpio44", "gpio45", | ||||||
|  |  					       "gpio46", "gpio47"; | ||||||
|  | +					function = "nand"; | ||||||
|  | +					drive-strength = <10>; | ||||||
|  |  					bias-bus-hold; | ||||||
|  |  				}; | ||||||
|  |  			}; | ||||||
|  | @@ -439,6 +442,7 @@ | ||||||
|  		intc: interrupt-controller@2000000 { |  		intc: interrupt-controller@2000000 { | ||||||
|  			compatible = "qcom,msm-qgic2"; |  			compatible = "qcom,msm-qgic2"; | ||||||
|  			interrupt-controller; |  			interrupt-controller; | ||||||
| @@ -51,7 +57,7 @@ | |||||||
|  			#interrupt-cells = <3>; |  			#interrupt-cells = <3>; | ||||||
|  			reg = <0x02000000 0x1000>, |  			reg = <0x02000000 0x1000>, | ||||||
|  			      <0x02002000 0x1000>; |  			      <0x02002000 0x1000>; | ||||||
| @@ -219,21 +222,23 @@ | @@ -468,11 +472,13 @@ | ||||||
|  		acc0: clock-controller@2088000 { |  		acc0: clock-controller@2088000 { | ||||||
|  			compatible = "qcom,kpss-acc-v1"; |  			compatible = "qcom,kpss-acc-v1"; | ||||||
|  			reg = <0x02088000 0x1000>, <0x02008000 0x1000>; |  			reg = <0x02088000 0x1000>, <0x02008000 0x1000>; | ||||||
| @@ -64,6 +70,10 @@ | |||||||
| +			clock-output-names = "acpu1_aux"; | +			clock-output-names = "acpu1_aux"; | ||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
|  |  		adm_dma: dma-controller@18300000 { | ||||||
|  | @@ -496,13 +502,13 @@ | ||||||
|  |  		}; | ||||||
|  |   | ||||||
|  		saw0: regulator@2089000 { |  		saw0: regulator@2089000 { | ||||||
| -			compatible = "qcom,saw2"; | -			compatible = "qcom,saw2"; | ||||||
| +			compatible = "qcom,saw2", "qcom,apq8064-saw2-v1.1-cpu", "syscon"; | +			compatible = "qcom,saw2", "qcom,apq8064-saw2-v1.1-cpu", "syscon"; | ||||||
| @@ -77,16 +87,7 @@ | |||||||
|  			reg = <0x02099000 0x1000>, <0x02009000 0x1000>; |  			reg = <0x02099000 0x1000>, <0x02009000 0x1000>; | ||||||
|  			regulator; |  			regulator; | ||||||
|  		}; |  		}; | ||||||
| @@ -251,7 +256,7 @@ | @@ -533,7 +533,7 @@ | ||||||
|   |  | ||||||
|  			syscon-tcsr = <&tcsr>; |  | ||||||
|   |  | ||||||
| -			serial@12490000 { |  | ||||||
| +			gsbi2_serial: serial@12490000 { |  | ||||||
|  				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; |  | ||||||
|  				reg = <0x12490000 0x1000>, |  | ||||||
|  				      <0x12480000 0x1000>; |  | ||||||
| @@ -261,7 +266,7 @@ |  | ||||||
|  				status = "disabled"; |  				status = "disabled"; | ||||||
|  			}; |  			}; | ||||||
|   |   | ||||||
| @@ -95,35 +96,20 @@ | |||||||
|  				compatible = "qcom,i2c-qup-v1.1.1"; |  				compatible = "qcom,i2c-qup-v1.1.1"; | ||||||
|  				reg = <0x124a0000 0x1000>; |  				reg = <0x124a0000 0x1000>; | ||||||
|  				interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>; |  				interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>; | ||||||
| @@ -326,7 +331,7 @@ | @@ -676,9 +682,6 @@ | ||||||
|  |  			compatible = "qcom,ipq806x-nand"; | ||||||
|  |  			reg = <0x1ac00000 0x800>; | ||||||
|   |   | ||||||
|  			syscon-tcsr = <&tcsr>; | -			pinctrl-0 = <&nand_pins>; | ||||||
|   | -			pinctrl-names = "default"; | ||||||
| -			serial@1a240000 { | - | ||||||
| +			gsbi5_serial: serial@1a240000 { |  			clocks = <&gcc EBI2_CLK>, | ||||||
|  				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; |  				 <&gcc EBI2_AON_CLK>; | ||||||
|  				reg = <0x1a240000 0x1000>, |  			clock-names = "core", "aon"; | ||||||
|  				      <0x1a200000 0x1000>; | @@ -733,10 +736,13 @@ | ||||||
| @@ -397,7 +402,7 @@ |  			tsens_calib_backup: calib_backup@410 { | ||||||
|  			status = "disabled"; |  				reg = <0x410 0xb>; | ||||||
|  			}; |  			}; | ||||||
|   |  | ||||||
| -		sata@29000000 { |  | ||||||
| +		sata: sata@29000000 { |  | ||||||
|  			compatible = "qcom,ipq806x-ahci", "generic-ahci"; |  | ||||||
|  			reg = <0x29000000 0x180>; |  | ||||||
|   |  | ||||||
| @@ -430,13 +435,35 @@ |  | ||||||
|  			reg = <0x00700000 0x1000>; |  | ||||||
|  			#address-cells = <1>; |  | ||||||
|  			#size-cells = <1>; |  | ||||||
| + |  | ||||||
| +			tsens_calib: calib@400 { |  | ||||||
| +				reg = <0x400 0xb>; |  | ||||||
| +			}; |  | ||||||
| +			tsens_backup: backup@410 { |  | ||||||
| +				reg = <0x410 0xb>; |  | ||||||
| +			}; |  | ||||||
| +			speedbin_efuse: speedbin@0c0 { | +			speedbin_efuse: speedbin@0c0 { | ||||||
| +				reg = <0x0c0 0x4>; | +				reg = <0x0c0 0x4>; | ||||||
| +			}; | +			}; | ||||||
| @@ -135,22 +121,53 @@ | |||||||
|  			reg = <0x00900000 0x4000>; |  			reg = <0x00900000 0x4000>; | ||||||
|  			#clock-cells = <1>; |  			#clock-cells = <1>; | ||||||
|  			#reset-cells = <1>; |  			#reset-cells = <1>; | ||||||
| +			#power-domain-cells = <1>; | @@ -768,10 +774,45 @@ | ||||||
|  |  			clocks = <&gcc RPM_MSG_RAM_H_CLK>; | ||||||
|  |  			clock-names = "ram"; | ||||||
|  |   | ||||||
|  | +			#address-cells = <1>; | ||||||
|  | +			#size-cells = <0>; | ||||||
| + | + | ||||||
| +			tsens: thermal-sensor@900000 { |  			rpmcc: clock-controller { | ||||||
| +				compatible = "qcom,ipq8064-tsens"; |  				compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc"; | ||||||
|  |  				#clock-cells = <1>; | ||||||
|  |  			}; | ||||||
| + | + | ||||||
| +				nvmem-cells = <&tsens_calib>, <&tsens_backup>; | +			regulators { | ||||||
| +				nvmem-cell-names = "calib", "calib_backup"; | +				compatible = "qcom,rpm-smb208-regulators"; | ||||||
| +				interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>; | + | ||||||
| +				interrupt-names = "uplow"; | +				smb208_s1a: s1a { | ||||||
| +				#thermal-sensor-cells = <1>; | +					regulator-min-microvolt = <1050000>; | ||||||
| +				#qcom,sensors = <11>; | +					regulator-max-microvolt = <1150000>; | ||||||
|  | + | ||||||
|  | +					qcom,switch-mode-frequency = <1200000>; | ||||||
|  | +				}; | ||||||
|  | + | ||||||
|  | +				smb208_s1b: s1b { | ||||||
|  | +					regulator-min-microvolt = <1050000>; | ||||||
|  | +					regulator-max-microvolt = <1150000>; | ||||||
|  | + | ||||||
|  | +					qcom,switch-mode-frequency = <1200000>; | ||||||
|  | +				}; | ||||||
|  | + | ||||||
|  | +				smb208_s2a: s2a { | ||||||
|  | +					regulator-min-microvolt = < 800000>; | ||||||
|  | +					regulator-max-microvolt = <1250000>; | ||||||
|  | + | ||||||
|  | +					qcom,switch-mode-frequency = <1200000>; | ||||||
|  | +				}; | ||||||
|  | + | ||||||
|  | +				smb208_s2b: s2b { | ||||||
|  | +					regulator-min-microvolt = < 800000>; | ||||||
|  | +					regulator-max-microvolt = <1250000>; | ||||||
|  | + | ||||||
|  | +					qcom,switch-mode-frequency = <1200000>; | ||||||
|  | +				}; | ||||||
| +			}; | +			}; | ||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
|  		tcsr: syscon@1a400000 { |  		tcsr: syscon@1a400000 { | ||||||
| @@ -622,7 +649,7 @@ | @@ -965,7 +1006,7 @@ | ||||||
|   |   | ||||||
|  		gmac0: ethernet@37000000 { |  		gmac0: ethernet@37000000 { | ||||||
|  			device_type = "network"; |  			device_type = "network"; | ||||||
| @@ -159,7 +176,7 @@ | |||||||
|  			reg = <0x37000000 0x200000>; |  			reg = <0x37000000 0x200000>; | ||||||
|  			interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>; |  			interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  			interrupt-names = "macirq"; |  			interrupt-names = "macirq"; | ||||||
| @@ -645,7 +672,7 @@ | @@ -989,7 +1030,7 @@ | ||||||
|   |   | ||||||
|  		gmac1: ethernet@37200000 { |  		gmac1: ethernet@37200000 { | ||||||
|  			device_type = "network"; |  			device_type = "network"; | ||||||
| @@ -168,7 +185,7 @@ | |||||||
|  			reg = <0x37200000 0x200000>; |  			reg = <0x37200000 0x200000>; | ||||||
|  			interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>; |  			interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  			interrupt-names = "macirq"; |  			interrupt-names = "macirq"; | ||||||
| @@ -668,7 +695,7 @@ | @@ -1013,7 +1054,7 @@ | ||||||
|   |   | ||||||
|  		gmac2: ethernet@37400000 { |  		gmac2: ethernet@37400000 { | ||||||
|  			device_type = "network"; |  			device_type = "network"; | ||||||
| @@ -177,7 +194,7 @@ | |||||||
|  			reg = <0x37400000 0x200000>; |  			reg = <0x37400000 0x200000>; | ||||||
|  			interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; |  			interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  			interrupt-names = "macirq"; |  			interrupt-names = "macirq"; | ||||||
| @@ -691,7 +718,7 @@ | @@ -1037,7 +1078,7 @@ | ||||||
|   |   | ||||||
|  		gmac3: ethernet@37600000 { |  		gmac3: ethernet@37600000 { | ||||||
|  			device_type = "network"; |  			device_type = "network"; | ||||||
| @@ -186,24 +203,34 @@ | |||||||
|  			reg = <0x37600000 0x200000>; |  			reg = <0x37600000 0x200000>; | ||||||
|  			interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>; |  			interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  			interrupt-names = "macirq"; |  			interrupt-names = "macirq"; | ||||||
| @@ -740,13 +767,13 @@ | @@ -1050,8 +1050,6 @@ | ||||||
|  			qcom,ee = <0>; |  			clocks = <&gcc USB30_0_UTMI_CLK>; | ||||||
|  |  			clock-names = "ref"; | ||||||
|  |  			#phy-cells = <0>; | ||||||
|  | - | ||||||
|  | -			status = "disabled"; | ||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
| -		amba { |  		ss_phy_0: usb3phy@100f8830 { | ||||||
|  | @@ -1055,8 +1055,6 @@ | ||||||
|  | 			clocks = <&gcc USB30_0_MASTER_CLK>; | ||||||
|  |  			clock-names = "ref"; | ||||||
|  |  			#phy-cells = <0>; | ||||||
|  | - | ||||||
|  | -			status = "disabled"; | ||||||
|  |  		}; | ||||||
|  |   | ||||||
|  |  		usb3_0: usb3@100f8800 { | ||||||
|  | @@ -1176,7 +1217,7 @@ | ||||||
|  |  		}; | ||||||
|  |   | ||||||
|  |  		amba: amba { | ||||||
| -			compatible = "simple-bus"; | -			compatible = "simple-bus"; | ||||||
| +		amba: amba { |  | ||||||
| +			compatible = "arm,amba-bus"; | +			compatible = "arm,amba-bus"; | ||||||
|  			#address-cells = <1>; |  			#address-cells = <1>; | ||||||
|  			#size-cells = <1>; |  			#size-cells = <1>; | ||||||
|  			ranges; |  			ranges; | ||||||
|   | @@ -1195,7 +1236,6 @@ | ||||||
| -			sdcc@12400000 { |  | ||||||
| +			sdcc1: sdcc@12400000 { |  | ||||||
|  				status          = "disabled"; |  | ||||||
|  				compatible      = "arm,pl18x", "arm,primecell"; |  | ||||||
|  				arm,primecell-periphid = <0x00051180>; |  | ||||||
| @@ -760,13 +787,12 @@ |  | ||||||
|  				non-removable; |  				non-removable; | ||||||
|  				cap-sd-highspeed; |  				cap-sd-highspeed; | ||||||
|  				cap-mmc-highspeed; |  				cap-mmc-highspeed; | ||||||
| @@ -211,10 +238,3 @@ | |||||||
|  				vmmc-supply = <&vsdcc_fixed>; |  				vmmc-supply = <&vsdcc_fixed>; | ||||||
|  				dmas = <&sdcc1bam 2>, <&sdcc1bam 1>; |  				dmas = <&sdcc1bam 2>, <&sdcc1bam 1>; | ||||||
|  				dma-names = "tx", "rx"; |  				dma-names = "tx", "rx"; | ||||||
|  			}; |  | ||||||
|   |  | ||||||
| -			sdcc@12180000 { |  | ||||||
| +			sdcc3: sdcc@12180000 { |  | ||||||
|  				compatible      = "arm,pl18x", "arm,primecell"; |  | ||||||
|  				arm,primecell-periphid = <0x00051180>; |  | ||||||
|  				status          = "disabled"; |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi | --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi | ||||||
| +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi | +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi | ||||||
| @@ -8,6 +8,8 @@ | @@ -10,6 +10,8 @@ | ||||||
|  #include <dt-bindings/reset/qcom,gcc-ipq806x.h> |  #include <dt-bindings/reset/qcom,gcc-ipq806x.h> | ||||||
|  #include <dt-bindings/soc/qcom,gsbi.h> |  #include <dt-bindings/soc/qcom,gsbi.h> | ||||||
|  #include <dt-bindings/interrupt-controller/arm-gic.h> |  #include <dt-bindings/interrupt-controller/arm-gic.h> | ||||||
| @@ -9,7 +9,7 @@ | |||||||
|   |   | ||||||
|  / { |  / { | ||||||
|  	#address-cells = <1>; |  	#address-cells = <1>; | ||||||
| @@ -28,6 +30,16 @@ | @@ -30,6 +32,16 @@ | ||||||
|  			next-level-cache = <&L2>; |  			next-level-cache = <&L2>; | ||||||
|  			qcom,acc = <&acc0>; |  			qcom,acc = <&acc0>; | ||||||
|  			qcom,saw = <&saw0>; |  			qcom,saw = <&saw0>; | ||||||
| @@ -26,7 +26,7 @@ | |||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
|  		cpu1: cpu@1 { |  		cpu1: cpu@1 { | ||||||
| @@ -38,14 +50,350 @@ | @@ -40,11 +52,125 @@ | ||||||
|  			next-level-cache = <&L2>; |  			next-level-cache = <&L2>; | ||||||
|  			qcom,acc = <&acc1>; |  			qcom,acc = <&acc1>; | ||||||
|  			qcom,saw = <&saw1>; |  			qcom,saw = <&saw1>; | ||||||
| @@ -155,232 +155,7 @@ | |||||||
|  		}; |  		}; | ||||||
|  	}; |  	}; | ||||||
|   |   | ||||||
| +	thermal-zones { | @@ -317,6 +443,15 @@ | ||||||
| +		tsens_tz_sensor0 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 0>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor1 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 1>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor2 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 2>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor3 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 3>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor4 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 4>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor5 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 5>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor6 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 6>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor7 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 7>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor8 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 8>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor9 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 9>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		tsens_tz_sensor10 { |  | ||||||
| +			polling-delay-passive = <0>; |  | ||||||
| +			polling-delay = <0>; |  | ||||||
| +			thermal-sensors = <&tsens 10>; |  | ||||||
| + |  | ||||||
| +			trips { |  | ||||||
| +				cpu-critical { |  | ||||||
| +					temperature = <105000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "critical"; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				cpu-hot { |  | ||||||
| +					temperature = <95000>; |  | ||||||
| +					hysteresis = <2000>; |  | ||||||
| +					type = "hot"; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| + 		}; |  | ||||||
| + 	}; |  | ||||||
| + |  | ||||||
|  	memory { |  | ||||||
|  		device_type = "memory"; |  | ||||||
|  		reg = <0x0 0x0>; |  | ||||||
| @@ -93,6 +441,15 @@ |  | ||||||
|  		}; |  		}; | ||||||
|  	}; |  	}; | ||||||
|   |   | ||||||
| @@ -396,86 +171,7 @@ | |||||||
|  	firmware { |  	firmware { | ||||||
|  		scm { |  		scm { | ||||||
|  			compatible = "qcom,scm-ipq806x", "qcom,scm"; |  			compatible = "qcom,scm-ipq806x", "qcom,scm"; | ||||||
| @@ -120,6 +477,78 @@ | @@ -384,6 +519,15 @@ | ||||||
|  			reg-names = "lpass-lpaif"; |  | ||||||
|  		}; |  | ||||||
|   |  | ||||||
| +		L2: l2-cache { |  | ||||||
| +			compatible = "qcom,krait-cache", "cache"; |  | ||||||
| +			cache-level = <2>; |  | ||||||
| +			qcom,saw = <&saw_l2>; |  | ||||||
| + |  | ||||||
| +			clocks = <&kraitcc 4>; |  | ||||||
| +			clock-names = "l2"; |  | ||||||
| +			l2-supply = <&smb208_s1a>; |  | ||||||
| +			operating-points-v2 = <&opp_table_l2>; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		rpm: rpm@108000 { |  | ||||||
| +			compatible = "qcom,rpm-ipq8064"; |  | ||||||
| +			reg = <0x108000 0x1000>; |  | ||||||
| +			qcom,ipc = <&l2cc 0x8 2>; |  | ||||||
| + |  | ||||||
| +			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, |  | ||||||
| +					 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, |  | ||||||
| +					 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| +			interrupt-names = "ack", "err", "wakeup"; |  | ||||||
| + |  | ||||||
| +			clocks = <&gcc RPM_MSG_RAM_H_CLK>; |  | ||||||
| +			clock-names = "ram"; |  | ||||||
| + |  | ||||||
| +			#address-cells = <1>; |  | ||||||
| +			#size-cells = <0>; |  | ||||||
| + |  | ||||||
| +			rpmcc: clock-controller { |  | ||||||
| +				compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc"; |  | ||||||
| +				#clock-cells = <1>; |  | ||||||
| +			}; |  | ||||||
| + |  | ||||||
| +			regulators { |  | ||||||
| +				compatible = "qcom,rpm-smb208-regulators"; |  | ||||||
| + |  | ||||||
| +				smb208_s1a: s1a { |  | ||||||
| +					regulator-min-microvolt = <1050000>; |  | ||||||
| +					regulator-max-microvolt = <1150000>; |  | ||||||
| + |  | ||||||
| +					qcom,switch-mode-frequency = <1200000>; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				smb208_s1b: s1b { |  | ||||||
| +					regulator-min-microvolt = <1050000>; |  | ||||||
| +					regulator-max-microvolt = <1150000>; |  | ||||||
| + |  | ||||||
| +					qcom,switch-mode-frequency = <1200000>; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				smb208_s2a: s2a { |  | ||||||
| +					regulator-min-microvolt = < 800000>; |  | ||||||
| +					regulator-max-microvolt = <1250000>; |  | ||||||
| + |  | ||||||
| +					qcom,switch-mode-frequency = <1200000>; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				smb208_s2b: s2b { |  | ||||||
| +					regulator-min-microvolt = < 800000>; |  | ||||||
| +					regulator-max-microvolt = <1250000>; |  | ||||||
| + |  | ||||||
| +					qcom,switch-mode-frequency = <1200000>; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		rng@1a500000 { |  | ||||||
| +			compatible = "qcom,prng"; |  | ||||||
| +			reg = <0x1a500000 0x200>; |  | ||||||
| +			clocks = <&gcc PRNG_CLK>; |  | ||||||
| +			clock-names = "core"; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
|  		qcom_pinmux: pinmux@800000 { |  | ||||||
|  			compatible = "qcom,ipq8064-pinctrl"; |  | ||||||
|  			reg = <0x800000 0x4000>; |  | ||||||
| @@ -160,6 +589,15 @@ |  | ||||||
|  				}; |  				}; | ||||||
|  			}; |  			}; | ||||||
|   |   | ||||||
| @@ -491,35 +187,10 @@ | |||||||
|  			spi_pins: spi_pins { |  			spi_pins: spi_pins { | ||||||
|  				mux { |  				mux { | ||||||
|  					pins = "gpio18", "gpio19", "gpio21"; |  					pins = "gpio18", "gpio19", "gpio21"; | ||||||
| @@ -169,6 +607,53 @@ | @@ -437,6 +581,27 @@ | ||||||
|  |  					bias-bus-hold; | ||||||
|  				}; |  				}; | ||||||
|  			}; |  			}; | ||||||
|   |  | ||||||
| +			nand_pins: nand_pins { |  | ||||||
| +				disable { |  | ||||||
| +					pins = "gpio34", "gpio35", "gpio36", |  | ||||||
| +					       "gpio37", "gpio38"; |  | ||||||
| +					function = "nand"; |  | ||||||
| +					drive-strength = <10>; |  | ||||||
| +					bias-disable; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				pullups { |  | ||||||
| +					pins = "gpio39"; |  | ||||||
| +					function = "nand"; |  | ||||||
| +					drive-strength = <10>; |  | ||||||
| +					bias-pull-up; |  | ||||||
| +				}; |  | ||||||
| + |  | ||||||
| +				hold { |  | ||||||
| +					pins = "gpio40", "gpio41", "gpio42", |  | ||||||
| +					       "gpio43", "gpio44", "gpio45", |  | ||||||
| +					       "gpio46", "gpio47"; |  | ||||||
| +					function = "nand"; |  | ||||||
| +					drive-strength = <10>; |  | ||||||
| +					bias-bus-hold; |  | ||||||
| +				}; |  | ||||||
| +			}; |  | ||||||
| + | + | ||||||
| +			mdio0_pins: mdio0_pins { | +			mdio0_pins: mdio0_pins { | ||||||
| +				mux { | +				mux { | ||||||
| @@ -541,29 +212,10 @@ | |||||||
| +					bias-disable; | +					bias-disable; | ||||||
| +				}; | +				}; | ||||||
| +			}; | +			}; | ||||||
| + |  | ||||||
|  			leds_pins: leds_pins { |  | ||||||
|  				mux { |  | ||||||
|  					pins = "gpio7", "gpio8", "gpio9", |  | ||||||
| @@ -231,6 +716,17 @@ |  | ||||||
|  			clock-output-names = "acpu1_aux"; |  | ||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
| +		l2cc: clock-controller@2011000 { |  		intc: interrupt-controller@2000000 { | ||||||
| +			compatible = "qcom,kpss-gcc", "syscon"; | @@ -513,6 +678,17 @@ | ||||||
| +			reg = <0x2011000 0x1000>; |  | ||||||
| +			clock-output-names = "acpu_l2_aux"; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		kraitcc: clock-controller { |  | ||||||
| +			compatible = "qcom,krait-cc-v1"; |  | ||||||
| +			#clock-cells = <1>; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
|  		saw0: regulator@2089000 { |  | ||||||
|  			compatible = "qcom,saw2", "qcom,apq8064-saw2-v1.1-cpu", "syscon"; |  | ||||||
|  			reg = <0x02089000 0x1000>, <0x02009000 0x1000>; |  | ||||||
| @@ -243,6 +739,52 @@ |  | ||||||
|  			regulator; |  			regulator; | ||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
| @@ -577,46 +229,11 @@ | |||||||
| +			compatible = "syscon"; | +			compatible = "syscon"; | ||||||
| +			reg = <0x12100000 0x10000>; | +			reg = <0x12100000 0x10000>; | ||||||
| +		}; | +		}; | ||||||
| + |  | ||||||
| +		gsbi1: gsbi@12440000 { |  | ||||||
| +			compatible = "qcom,gsbi-v1.0.0"; |  | ||||||
| +			cell-index = <1>; |  | ||||||
| +			reg = <0x12440000 0x100>; |  | ||||||
| +			clocks = <&gcc GSBI1_H_CLK>; |  | ||||||
| +			clock-names = "iface"; |  | ||||||
| +			#address-cells = <1>; |  | ||||||
| +			#size-cells = <1>; |  | ||||||
| +			ranges; |  | ||||||
| +			status = "disabled"; |  | ||||||
| + |  | ||||||
| +			syscon-tcsr = <&tcsr>; |  | ||||||
| + |  | ||||||
| +			gsbi1_serial: serial@12450000 { |  | ||||||
| +				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; |  | ||||||
| +				reg = <0x12450000 0x100>, |  | ||||||
| +				      <0x12400000 0x03>; |  | ||||||
| +				interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| +				clocks = <&gcc GSBI1_UART_CLK>, <&gcc GSBI1_H_CLK>; |  | ||||||
| +				clock-names = "core", "iface"; |  | ||||||
| +				status = "disabled"; |  | ||||||
| +			}; |  | ||||||
| + |  | ||||||
| +			gsbi1_i2c: i2c@12460000 { |  | ||||||
| +				compatible = "qcom,i2c-qup-v1.1.1"; |  | ||||||
| +				reg = <0x12460000 0x1000>; |  | ||||||
| +				interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| +				clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>; |  | ||||||
| +				clock-names = "core", "iface"; |  | ||||||
| +				#address-cells = <1>; |  | ||||||
| +				#size-cells = <0>; |  | ||||||
| +				status = "disabled"; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + | + | ||||||
|  		gsbi2: gsbi@12480000 { |  		gsbi2: gsbi@12480000 { | ||||||
|  			compatible = "qcom,gsbi-v1.0.0"; |  			compatible = "qcom,gsbi-v1.0.0"; | ||||||
|  			cell-index = <2>; |  			cell-index = <2>; | ||||||
| @@ -368,6 +910,33 @@ | @@ -568,6 +910,33 @@ | ||||||
|  			}; |  			}; | ||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
| @@ -650,7 +267,7 @@ | |||||||
|  		gsbi7: gsbi@16600000 { |  		gsbi7: gsbi@16600000 { | ||||||
|  			status = "disabled"; |  			status = "disabled"; | ||||||
|  			compatible = "qcom,gsbi-v1.0.0"; |  			compatible = "qcom,gsbi-v1.0.0"; | ||||||
| @@ -389,6 +958,19 @@ | @@ -589,6 +958,19 @@ | ||||||
|  				clock-names = "core", "iface"; |  				clock-names = "core", "iface"; | ||||||
|  				status = "disabled"; |  				status = "disabled"; | ||||||
|  			}; |  			}; | ||||||
| @@ -670,7 +287,37 @@ | |||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
|  		sata_phy: sata-phy@1b400000 { |  		sata_phy: sata-phy@1b400000 { | ||||||
| @@ -478,6 +1060,95 @@ | @@ -761,6 +937,17 @@ | ||||||
|  |  			}; | ||||||
|  |  		}; | ||||||
|  |   | ||||||
|  | +		L2: l2-cache { | ||||||
|  | +			compatible = "qcom,krait-cache", "cache"; | ||||||
|  | +			cache-level = <2>; | ||||||
|  | +			qcom,saw = <&saw_l2>; | ||||||
|  | + | ||||||
|  | +			clocks = <&kraitcc 4>; | ||||||
|  | +			clock-names = "l2"; | ||||||
|  | +			l2-supply = <&smb208_s1a>; | ||||||
|  | +			operating-points-v2 = <&opp_table_l2>; | ||||||
|  | +		}; | ||||||
|  | + | ||||||
|  |  		rpm: rpm@108000 { | ||||||
|  |  			compatible = "qcom,rpm-ipq8064"; | ||||||
|  |  			reg = <0x108000 0x1000>; | ||||||
|  | @@ -828,6 +1015,11 @@ | ||||||
|  |  			clock-output-names = "acpu_l2_aux"; | ||||||
|  |  		}; | ||||||
|  |   | ||||||
|  | +		kraitcc: clock-controller { | ||||||
|  | +			compatible = "qcom,krait-cc-v1"; | ||||||
|  | +			#clock-cells = <1>; | ||||||
|  | +		}; | ||||||
|  | + | ||||||
|  |  		lcc: clock-controller@28000000 { | ||||||
|  |  			compatible = "qcom,lcc-ipq8064"; | ||||||
|  |  			reg = <0x28000000 0x1000>; | ||||||
|  | @@ -835,6 +1027,11 @@ | ||||||
|  			#reset-cells = <1>; |  			#reset-cells = <1>; | ||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
| @@ -678,136 +325,14 @@ | |||||||
| +			compatible = "syscon"; | +			compatible = "syscon"; | ||||||
| +			reg = <0x01200600 0x100>; | +			reg = <0x01200600 0x100>; | ||||||
| +		}; | +		}; | ||||||
| + |  | ||||||
| +		hs_phy_0: hs_phy_0 { |  | ||||||
| +			compatible = "qcom,ipq806x-usb-phy-hs"; |  | ||||||
| +			reg = <0x110f8800 0x30>; |  | ||||||
| +			clocks = <&gcc USB30_0_UTMI_CLK>; |  | ||||||
| +			clock-names = "ref"; |  | ||||||
| +			#phy-cells = <0>; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		ss_phy_0: ss_phy_0 { |  | ||||||
| +			compatible = "qcom,ipq806x-usb-phy-ss"; |  | ||||||
| +			reg = <0x110f8830 0x30>; |  | ||||||
| +			clocks = <&gcc USB30_0_MASTER_CLK>; |  | ||||||
| +			clock-names = "ref"; |  | ||||||
| +			#phy-cells = <0>; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		usb3_0: usb3@110f8800 { |  | ||||||
| +			compatible = "qcom,dwc3", "syscon"; |  | ||||||
| +			#address-cells = <1>; |  | ||||||
| +			#size-cells = <1>; |  | ||||||
| +			reg = <0x110f8800 0x8000>; |  | ||||||
| +			clocks = <&gcc USB30_0_MASTER_CLK>; |  | ||||||
| +			clock-names = "core"; |  | ||||||
| + |  | ||||||
| +			ranges; |  | ||||||
| + |  | ||||||
| +			resets = <&gcc USB30_0_MASTER_RESET>; |  | ||||||
| +			reset-names = "master"; |  | ||||||
| + |  | ||||||
| +			status = "disabled"; |  | ||||||
| + |  | ||||||
| +			dwc3_0: dwc3@11000000 { |  | ||||||
| +				compatible = "snps,dwc3"; |  | ||||||
| +				reg = <0x11000000 0xcd00>; |  | ||||||
| +				interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| +				phys = <&hs_phy_0>, <&ss_phy_0>; |  | ||||||
| +				phy-names = "usb2-phy", "usb3-phy"; |  | ||||||
| +				dr_mode = "host"; |  | ||||||
| +				snps,dis_u3_susphy_quirk; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		hs_phy_1: hs_phy_1 { |  | ||||||
| +			compatible = "qcom,ipq806x-usb-phy-hs"; |  | ||||||
| +			reg = <0x100f8800 0x30>; |  | ||||||
| +			clocks = <&gcc USB30_1_UTMI_CLK>; |  | ||||||
| +			clock-names = "ref"; |  | ||||||
| +			#phy-cells = <0>; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		ss_phy_1: ss_phy_1 { |  | ||||||
| +			compatible = "qcom,ipq806x-usb-phy-ss"; |  | ||||||
| +			reg = <0x100f8830 0x30>; |  | ||||||
| +			clocks = <&gcc USB30_1_MASTER_CLK>; |  | ||||||
| +			clock-names = "ref"; |  | ||||||
| +			#phy-cells = <0>; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		usb3_1: usb3@100f8800 { |  | ||||||
| +			compatible = "qcom,dwc3", "syscon"; |  | ||||||
| +			#address-cells = <1>; |  | ||||||
| +			#size-cells = <1>; |  | ||||||
| +			reg = <0x100f8800 0x8000>; |  | ||||||
| +			clocks = <&gcc USB30_1_MASTER_CLK>; |  | ||||||
| +			clock-names = "core"; |  | ||||||
| + |  | ||||||
| +			ranges; |  | ||||||
| + |  | ||||||
| +			resets = <&gcc USB30_1_MASTER_RESET>; |  | ||||||
| +			reset-names = "master"; |  | ||||||
| + |  | ||||||
| +			status = "disabled"; |  | ||||||
| + |  | ||||||
| +			dwc3_1: dwc3@10000000 { |  | ||||||
| +				compatible = "snps,dwc3"; |  | ||||||
| +				reg = <0x10000000 0xcd00>; |  | ||||||
| +				interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| +				phys = <&hs_phy_1>, <&ss_phy_1>; |  | ||||||
| +				phy-names = "usb2-phy", "usb3-phy"; |  | ||||||
| +				dr_mode = "host"; |  | ||||||
| +				snps,dis_u3_susphy_quirk; |  | ||||||
| +			}; |  | ||||||
| +		}; |  | ||||||
| + | + | ||||||
|  		pcie0: pci@1b500000 { |  		pcie0: pci@1b500000 { | ||||||
|  			compatible = "qcom,pcie-ipq8064"; |  			compatible = "qcom,pcie-ipq8064"; | ||||||
|  			reg = <0x1b500000 0x1000 |  			reg = <0x1b500000 0x1000 | ||||||
| @@ -739,6 +1410,59 @@ | @@ -1188,6 +1385,21 @@ | ||||||
|  			status = "disabled"; |  			}; | ||||||
|  		}; |  		}; | ||||||
|   |   | ||||||
| +		adm_dma: dma@18300000 { |  | ||||||
| +			compatible = "qcom,adm"; |  | ||||||
| +			reg = <0x18300000 0x100000>; |  | ||||||
| +			interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>; |  | ||||||
| +			#dma-cells = <1>; |  | ||||||
| + |  | ||||||
| +			clocks = <&gcc ADM0_CLK>, <&gcc ADM0_PBUS_CLK>; |  | ||||||
| +			clock-names = "core", "iface"; |  | ||||||
| + |  | ||||||
| +			resets = <&gcc ADM0_RESET>, |  | ||||||
| +				 <&gcc ADM0_PBUS_RESET>, |  | ||||||
| +				 <&gcc ADM0_C0_RESET>, |  | ||||||
| +				 <&gcc ADM0_C1_RESET>, |  | ||||||
| +				 <&gcc ADM0_C2_RESET>; |  | ||||||
| +			reset-names = "clk", "pbus", "c0", "c1", "c2"; |  | ||||||
| +			qcom,ee = <0>; |  | ||||||
| + |  | ||||||
| +			status = "disabled"; |  | ||||||
| +		}; |  | ||||||
| + |  | ||||||
| +		nand_controller: nand-controller@1ac00000 { |  | ||||||
| +			compatible = "qcom,ipq806x-nand"; |  | ||||||
| +			reg = <0x1ac00000 0x800>; |  | ||||||
| + |  | ||||||
| +			clocks = <&gcc EBI2_CLK>, |  | ||||||
| +				 <&gcc EBI2_AON_CLK>; |  | ||||||
| +			clock-names = "core", "aon"; |  | ||||||
| + |  | ||||||
| +			dmas = <&adm_dma 3>; |  | ||||||
| +			dma-names = "rxtx"; |  | ||||||
| +			qcom,cmd-crci = <15>; |  | ||||||
| +			qcom,data-crci = <3>; |  | ||||||
| + |  | ||||||
| +			status = "disabled"; |  | ||||||
| + |  | ||||||
| +			#address-cells = <1>; |  | ||||||
| +			#size-cells = <0>; |  | ||||||
| +		}; |  | ||||||
| + | + | ||||||
| +		mdio0: mdio@37000000 { | +		mdio0: mdio@37000000 { | ||||||
| +			#address-cells = <1>; | +			#address-cells = <1>; | ||||||
| @@ -826,7 +351,7 @@ | |||||||
|  		vsdcc_fixed: vsdcc-regulator { |  		vsdcc_fixed: vsdcc-regulator { | ||||||
|  			compatible = "regulator-fixed"; |  			compatible = "regulator-fixed"; | ||||||
|  			regulator-name = "SDCC Power"; |  			regulator-name = "SDCC Power"; | ||||||
| @@ -814,4 +1538,17 @@ | @@ -1262,4 +1474,17 @@ | ||||||
|  			}; |  			}; | ||||||
|  		}; |  		}; | ||||||
|  	}; |  	}; | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ them differently anyway. | |||||||
|  		}; |  		}; | ||||||
| @@ -64,64 +54,5 @@ | @@ -64,64 +54,5 @@ | ||||||
|  			ports-implemented = <0x1>; |  			ports-implemented = <0x1>; | ||||||
|  			status = "ok"; |  			status = "okay"; | ||||||
|  		}; |  		}; | ||||||
| - | - | ||||||
| -		gpio_keys { | -		gpio_keys { | ||||||
|   | |||||||
| @@ -74,8 +74,8 @@ | |||||||
|  	mdio1: mdio-1 { |  	mdio1: mdio-1 { | ||||||
|  		status = "okay"; |  		status = "okay"; | ||||||
|  		compatible = "virtual,mdio-gpio"; |  		compatible = "virtual,mdio-gpio"; | ||||||
| @@ -216,6 +149,68 @@ | @@ -220,6 +153,68 @@ | ||||||
|  	}; |  	status = "okay"; | ||||||
|  }; |  }; | ||||||
|   |   | ||||||
| +&mdio0 { | +&mdio0 { | ||||||
|   | |||||||
| @@ -436,7 +436,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
| +} | +} | ||||||
| + | + | ||||||
| +static struct cpufreq_driver krait_cpufreq_driver = { | +static struct cpufreq_driver krait_cpufreq_driver = { | ||||||
| +	.flags = CPUFREQ_STICKY | CPUFREQ_NEED_INITIAL_FREQ_CHECK | | +	.flags = CPUFREQ_NEED_INITIAL_FREQ_CHECK | | ||||||
| +		 CPUFREQ_IS_COOLING_DEV, | +		 CPUFREQ_IS_COOLING_DEV, | ||||||
| +	.verify = cpufreq_generic_frequency_table_verify, | +	.verify = cpufreq_generic_frequency_table_verify, | ||||||
| +	.target_index = set_target, | +	.target_index = set_target, | ||||||
|   | |||||||
| @@ -52,10 +52,10 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  /* |  /* | ||||||
| @@ -460,12 +475,14 @@ struct qcom_nand_host { | @@ -475,13 +490,15 @@ struct qcom_nand_host { | ||||||
|   * @ecc_modes - ecc mode for NAND |  | ||||||
|   * @is_bam - whether NAND controller is using BAM |   * @is_bam - whether NAND controller is using BAM | ||||||
|   * @is_qpic - whether NAND CTRL is part of qpic IP |   * @is_qpic - whether NAND CTRL is part of qpic IP | ||||||
|  |   * @qpic_v2 - flag to indicate QPIC IP version 2 | ||||||
| + * @has_boot_pages - whether NAND has different ecc settings for boot pages | + * @has_boot_pages - whether NAND has different ecc settings for boot pages | ||||||
|   * @dev_cmd_reg_start - NAND_DEV_CMD_* registers starting offset |   * @dev_cmd_reg_start - NAND_DEV_CMD_* registers starting offset | ||||||
|   */ |   */ | ||||||
| @@ -63,6 +63,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  	u32 ecc_modes; |  	u32 ecc_modes; | ||||||
|  	bool is_bam; |  	bool is_bam; | ||||||
|  	bool is_qpic; |  	bool is_qpic; | ||||||
|  |  	bool qpic_v2; | ||||||
| +	bool has_boot_pages; | +	bool has_boot_pages; | ||||||
|  	u32 dev_cmd_reg_start; |  	u32 dev_cmd_reg_start; | ||||||
|  }; |  }; | ||||||
| @@ -71,8 +72,8 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  	data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1); |  	data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1); | ||||||
|  	oob_size1 = host->bbm_size; |  	oob_size1 = host->bbm_size; | ||||||
|   |   | ||||||
| -	if (cw == (ecc->steps - 1)) { | -	if (qcom_nandc_is_last_cw(ecc, cw)) { | ||||||
| +	if (cw == (ecc->steps - 1) && !host->boot_pages_conf) { | +	if (qcom_nandc_is_last_cw(ecc, cw) && !host->boot_pages_conf) { | ||||||
|  		data_size2 = ecc->size - data_size1 - |  		data_size2 = ecc->size - data_size1 - | ||||||
|  			     ((ecc->steps - 1) * 4); |  			     ((ecc->steps - 1) * 4); | ||||||
|  		oob_size2 = (ecc->steps * 4) + host->ecc_bytes_hw + |  		oob_size2 = (ecc->steps * 4) + host->ecc_bytes_hw + | ||||||
| @@ -80,8 +81,8 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	for_each_set_bit(cw, &uncorrectable_cws, ecc->steps) { |  	for_each_set_bit(cw, &uncorrectable_cws, ecc->steps) { | ||||||
| -		if (cw == (ecc->steps - 1)) { | -		if (qcom_nandc_is_last_cw(ecc, cw)) { | ||||||
| +		if (cw == (ecc->steps - 1) && !host->boot_pages_conf) { | +		if (qcom_nandc_is_last_cw(ecc, cw) && !host->boot_pages_conf) { | ||||||
|  			data_size = ecc->size - ((ecc->steps - 1) * 4); |  			data_size = ecc->size - ((ecc->steps - 1) * 4); | ||||||
|  			oob_size = (ecc->steps * 4) + host->ecc_bytes_hw; |  			oob_size = (ecc->steps * 4) + host->ecc_bytes_hw; | ||||||
|  		} else { |  		} else { | ||||||
| @@ -89,8 +90,8 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  	for (i = 0; i < ecc->steps; i++) { |  	for (i = 0; i < ecc->steps; i++) { | ||||||
|  		int data_size, oob_size; |  		int data_size, oob_size; | ||||||
|   |   | ||||||
| -		if (i == (ecc->steps - 1)) { | -		if (qcom_nandc_is_last_cw(ecc, i)) { | ||||||
| +		if (i == (ecc->steps - 1) && !host->boot_pages_conf) { | +		if (qcom_nandc_is_last_cw(ecc, i) && !host->boot_pages_conf) { | ||||||
|  			data_size = ecc->size - ((ecc->steps - 1) << 2); |  			data_size = ecc->size - ((ecc->steps - 1) << 2); | ||||||
|  			oob_size = (ecc->steps << 2) + host->ecc_bytes_hw + |  			oob_size = (ecc->steps << 2) + host->ecc_bytes_hw + | ||||||
|  				   host->spare_bytes; |  				   host->spare_bytes; | ||||||
| @@ -169,8 +170,8 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  	for (i = 0; i < ecc->steps; i++) { |  	for (i = 0; i < ecc->steps; i++) { | ||||||
|  		int data_size, oob_size; |  		int data_size, oob_size; | ||||||
|   |   | ||||||
| -		if (i == (ecc->steps - 1)) { | -		if (qcom_nandc_is_last_cw(ecc, i)) { | ||||||
| +		if (i == (ecc->steps - 1) && !host->boot_pages_conf) { | +		if (qcom_nandc_is_last_cw(ecc, i) && !host->boot_pages_conf) { | ||||||
|  			data_size = ecc->size - ((ecc->steps - 1) << 2); |  			data_size = ecc->size - ((ecc->steps - 1) << 2); | ||||||
|  			oob_size = (ecc->steps << 2) + host->ecc_bytes_hw + |  			oob_size = (ecc->steps << 2) + host->ecc_bytes_hw + | ||||||
|  				   host->spare_bytes; |  				   host->spare_bytes; | ||||||
| @@ -188,8 +189,8 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
|  		data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1); |  		data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1); | ||||||
|  		oob_size1 = host->bbm_size; |  		oob_size1 = host->bbm_size; | ||||||
|   |   | ||||||
| -		if (i == (ecc->steps - 1)) { | -		if (qcom_nandc_is_last_cw(ecc, i)) { | ||||||
| +		if (i == (ecc->steps - 1) && !host->boot_pages_conf) { | +		if (qcom_nandc_is_last_cw(ecc, i) && !host->boot_pages_conf) { | ||||||
|  			data_size2 = ecc->size - data_size1 - |  			data_size2 = ecc->size - data_size1 - | ||||||
|  				     ((ecc->steps - 1) << 2); |  				     ((ecc->steps - 1) << 2); | ||||||
|  			oob_size2 = (ecc->steps << 2) + host->ecc_bytes_hw + |  			oob_size2 = (ecc->steps << 2) + host->ecc_bytes_hw + | ||||||
|   | |||||||
| @@ -9,28 +9,27 @@ read/write confituation to boots partitions. | |||||||
|  |  | ||||||
| Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | ||||||
| --- | --- | ||||||
|  Documentation/devicetree/bindings/mtd/qcom_nandc.txt | 11 +++++++++++ |  Documentation/devicetree/bindings/mtd/qcom,nandc.yaml | 11 +++++++++++ | ||||||
|  1 file changed, 11 insertions(+) |  1 file changed, 11 insertions(+) | ||||||
|  |  | ||||||
| --- a/Documentation/devicetree/bindings/mtd/qcom_nandc.txt | --- a/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml | ||||||
| +++ b/Documentation/devicetree/bindings/mtd/qcom_nandc.txt | +++ b/Documentation/devicetree/bindings/mtd/qcom,nandc.yaml | ||||||
| @@ -52,6 +52,15 @@ Optional properties: | @@ -77,6 +77,14 @@ Optional properties: | ||||||
|  			be used according to chip requirement and available |            description: | ||||||
|  			OOB size. |              Must contain the ADM data type CRCI block instance number | ||||||
|   |              specified for the NAND controller on the given platform | ||||||
| +EBI2 specific properties: | + | ||||||
| +- nand-is-boot-medium:	nand contains boot partitions and different ecc configuration | +        qcom,boot_pages_size: | ||||||
| +			should be used for these partitions. | +          description: | ||||||
| +- qcom,boot_pages_size:	should contain the size of the total boot partitions | +            Should contain the size of the total boot partitions | ||||||
| +            where the boot layout read/write specific configuration | +            where the boot layout read/write specific configuration | ||||||
| +            should be used. The boot layout is considered from the | +            should be used. The boot layout is considered from the | ||||||
| +            start of the nand to the value set in this binding. | +            start of the nand to the value set in this binding. | ||||||
| +            Only used in combination with 'nand-is-boot-medium'. | +            Only used in combination with 'nand-is-boot-medium'. | ||||||
| + |   | ||||||
|  Each nandcs device node may optionally contain a 'partitions' sub-node, which |    - if: | ||||||
|  further contains sub-nodes describing the flash partition mapping. See |        properties: | ||||||
|  partition.txt for more detail. | @@ -135,6 +135,9 @@ nand-controller@1ac00000 { | ||||||
| @@ -80,6 +89,9 @@ nand-controller@1ac00000 { |  | ||||||
|          nand-ecc-strength = <4>; |          nand-ecc-strength = <4>; | ||||||
|          nand-bus-width = <8>; |          nand-bus-width = <8>; | ||||||
|   |   | ||||||
| @@ -39,4 +38,3 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | |||||||
| + | + | ||||||
|          partitions { |          partitions { | ||||||
|            compatible = "fixed-partitions"; |            compatible = "fixed-partitions"; | ||||||
|  			#address-cells = <1>; |  | ||||||
|   | |||||||
							
								
								
									
										44
									
								
								target/linux/ipq806x/patches-5.15/851-add-gsbi1-dts.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								target/linux/ipq806x/patches-5.15/851-add-gsbi1-dts.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  | --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi | ||||||
|  | +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi | ||||||
|  | @@ -689,6 +689,41 @@ | ||||||
|  |  			reg = <0x12100000 0x10000>; | ||||||
|  |  		}; | ||||||
|  |   | ||||||
|  | +		gsbi1: gsbi@12440000 { | ||||||
|  | +			compatible = "qcom,gsbi-v1.0.0"; | ||||||
|  | +			cell-index = <1>; | ||||||
|  | +			reg = <0x12440000 0x100>; | ||||||
|  | +			clocks = <&gcc GSBI1_H_CLK>; | ||||||
|  | +			clock-names = "iface"; | ||||||
|  | +			#address-cells = <1>; | ||||||
|  | +			#size-cells = <1>; | ||||||
|  | +			ranges; | ||||||
|  | +			status = "disabled"; | ||||||
|  | + | ||||||
|  | +			syscon-tcsr = <&tcsr>; | ||||||
|  | + | ||||||
|  | +			gsbi1_serial: serial@12450000 { | ||||||
|  | +				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; | ||||||
|  | +				reg = <0x12450000 0x100>, | ||||||
|  | +				      <0x12400000 0x03>; | ||||||
|  | +				interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | +				clocks = <&gcc GSBI1_UART_CLK>, <&gcc GSBI1_H_CLK>; | ||||||
|  | +				clock-names = "core", "iface"; | ||||||
|  | +				status = "disabled"; | ||||||
|  | +			}; | ||||||
|  | + | ||||||
|  | +			gsbi1_i2c: i2c@12460000 { | ||||||
|  | +				compatible = "qcom,i2c-qup-v1.1.1"; | ||||||
|  | +				reg = <0x12460000 0x1000>; | ||||||
|  | +				interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>; | ||||||
|  | +				clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>; | ||||||
|  | +				clock-names = "core", "iface"; | ||||||
|  | +				#address-cells = <1>; | ||||||
|  | +				#size-cells = <0>; | ||||||
|  | +				status = "disabled"; | ||||||
|  | +			}; | ||||||
|  | +		}; | ||||||
|  | + | ||||||
|  |  		gsbi2: gsbi@12480000 { | ||||||
|  |  			compatible = "qcom,gsbi-v1.0.0"; | ||||||
|  |  			cell-index = <2>; | ||||||
| @@ -1,37 +0,0 @@ | |||||||
| --- a/arch/arm/Kconfig |  | ||||||
| +++ b/arch/arm/Kconfig |  | ||||||
| @@ -1794,6 +1794,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL |  | ||||||
|   |  | ||||||
|  endchoice |  | ||||||
|   |  | ||||||
| +config CMDLINE_OVERRIDE |  | ||||||
| +	bool "Use alternative cmdline from device tree" |  | ||||||
| +	help |  | ||||||
| +	  Some bootloaders may have uneditable bootargs. While CMDLINE_FORCE can |  | ||||||
| +	  be used, this is not a good option for kernels that are shared across |  | ||||||
| +	  devices. This setting enables using "chosen/cmdline-override" as the |  | ||||||
| +	  cmdline if it exists in the device tree. |  | ||||||
| + |  | ||||||
|  config CMDLINE |  | ||||||
|  	string "Default kernel command string" |  | ||||||
|  	default "" |  | ||||||
| --- a/drivers/of/fdt.c |  | ||||||
| +++ b/drivers/of/fdt.c |  | ||||||
| @@ -1059,6 +1059,17 @@ int __init early_init_dt_scan_chosen(uns |  | ||||||
|  	if (p != NULL && l > 0) |  | ||||||
|  		strlcat(data, p, min_t(int, strlen(data) + (int)l, COMMAND_LINE_SIZE)); |  | ||||||
|   |  | ||||||
| +    /* CONFIG_CMDLINE_OVERRIDE is used to fallback to a different |  | ||||||
| +     * device tree option of chosen/bootargs-override. This is |  | ||||||
| +     * helpful on boards where u-boot sets bootargs, and is unable |  | ||||||
| +     * to be modified. |  | ||||||
| +     */ |  | ||||||
| +#ifdef CONFIG_CMDLINE_OVERRIDE |  | ||||||
| +	p = of_get_flat_dt_prop(node, "bootargs-override", &l); |  | ||||||
| +	if (p != NULL && l > 0) |  | ||||||
| +		strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE)); |  | ||||||
| +#endif |  | ||||||
| + |  | ||||||
|  	/* |  | ||||||
|  	 * CONFIG_CMDLINE is meant to be a default in case nothing else |  | ||||||
|  	 * managed to set the command line, unless CONFIG_CMDLINE_FORCE |  | ||||||
		Reference in New Issue
	
	Block a user