mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			315 lines
		
	
	
	
		
			9.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			315 lines
		
	
	
	
		
			9.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 76c457e7e2920342637b1955fbaadf2aae282f05 Mon Sep 17 00:00:00 2001
 | |
| From: Phil Elwell <phil@raspberrypi.com>
 | |
| Date: Fri, 23 Jun 2023 09:48:59 +0100
 | |
| Subject: [PATCH 0797/1016] overlays: jedec-spi-nor: Add speed parameter
 | |
| 
 | |
| Add a speed parameter to the jedec-spi-nor overlay to allow much
 | |
| faster accesses, taking the opportunity to simplify the internals.
 | |
| 
 | |
| Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 | |
| ---
 | |
|  arch/arm/boot/dts/overlays/README             |   8 +-
 | |
|  .../dts/overlays/jedec-spi-nor-overlay.dts    | 245 +++---------------
 | |
|  2 files changed, 41 insertions(+), 212 deletions(-)
 | |
| 
 | |
| diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
 | |
| index 7c34d51a11dc..fff2cf2570b2 100644
 | |
| --- a/arch/arm/boot/dts/overlays/README
 | |
| +++ b/arch/arm/boot/dts/overlays/README
 | |
| @@ -2557,9 +2557,11 @@ Name:   jedec-spi-nor
 | |
|  Info:   Adds support for JEDEC-compliant SPI NOR flash devices.  (Note: The
 | |
|          "jedec,spi-nor" kernel driver was formerly known as "m25p80".)
 | |
|  Load:   dtoverlay=jedec-spi-nor,<param>=<val>
 | |
| -Params: flash-spi<n>-<m>        Enables flash device on SPI<n>, CS#<m>.
 | |
| -        flash-fastr-spi<n>-<m>  Enables flash device with fast read capability
 | |
| -                                on SPI<n>, CS#<m>.
 | |
| +Params: spi<n>-<m>              Enable flash device on SPI<n>, CS#<m>
 | |
| +        fastr                   Add fast read capability to the flash device
 | |
| +        speed                   Maximum SPI frequency (Hz)
 | |
| +        flash-spi<n>-<m>        Same as spi<n>-<m> (deprecated)
 | |
| +        flash-fastr-spi<n>-<m>  Same as spi<n>->m>,fastr (deprecated)
 | |
|  
 | |
|  
 | |
|  Name:   justboom-both
 | |
| diff --git a/arch/arm/boot/dts/overlays/jedec-spi-nor-overlay.dts b/arch/arm/boot/dts/overlays/jedec-spi-nor-overlay.dts
 | |
| index 585c7dbcdf7f..fb6d4bc91bf3 100644
 | |
| --- a/arch/arm/boot/dts/overlays/jedec-spi-nor-overlay.dts
 | |
| +++ b/arch/arm/boot/dts/overlays/jedec-spi-nor-overlay.dts
 | |
| @@ -3,6 +3,7 @@
 | |
|  // dtparams:
 | |
|  //     flash-spi<n>-<m>        - Enables flash device on SPI<n>, CS#<m>.
 | |
|  //     flash-fastr-spi<n>-<m>  - Enables flash device with fast read capability on SPI<n>, CS#<m>.
 | |
| +//     speed                   - Set the SPI clock speed in Hz
 | |
|  //
 | |
|  // If devices are present on SPI1 or SPI2, those interfaces must be enabled with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
 | |
|  //
 | |
| @@ -79,50 +80,23 @@ __dormant__ {
 | |
|  		};
 | |
|  	};
 | |
|  
 | |
| -	// enable flash on spi0.0
 | |
| +	// Enable fast read for device
 | |
| +	// Use default active low interrupt signalling.
 | |
|  	fragment@8 {
 | |
| -		target = <&spi0>;
 | |
| +		target = <&spi_nor>;
 | |
|  		__dormant__ {
 | |
| -			status = "okay";
 | |
| -                        #address-cells = <1>;
 | |
| -                        #size-cells = <0>;
 | |
| -			spi_nor_00: spi_nor@0 {
 | |
| -				#address-cells = <1>;
 | |
| -				#size-cells = <1>;
 | |
| -				compatible = "jedec,spi-nor";
 | |
| -				reg = <0>;
 | |
| -				spi-max-frequency = <500000>;
 | |
| -			};
 | |
| +			m25p,fast-read;
 | |
|  		};
 | |
|  	};
 | |
|  
 | |
| -	// enable flash on spi0.1
 | |
| -	fragment@9 {
 | |
| +	payload: fragment@100 {
 | |
|  		target = <&spi0>;
 | |
| -		__dormant__ {
 | |
| +		__overlay__ {
 | |
|  			status = "okay";
 | |
| -                        #address-cells = <1>;
 | |
| -                        #size-cells = <0>;
 | |
| -			spi_nor_01: spi_nor@1 {
 | |
| -				#address-cells = <1>;
 | |
| -				#size-cells = <1>;
 | |
| -				compatible = "jedec,spi-nor";
 | |
| -				reg = <1>;
 | |
| -				spi-max-frequency = <500000>;
 | |
| -			};
 | |
| -		};
 | |
| -	};
 | |
| +			#address-cells = <1>;
 | |
| +			#size-cells = <0>;
 | |
|  
 | |
| -	// enable flash on spi1.0
 | |
| -	fragment@10 {
 | |
| -		target = <&spi1>;
 | |
| -		__dormant__ {
 | |
| -			status = "okay";
 | |
| -                        #address-cells = <1>;
 | |
| -                        #size-cells = <0>;
 | |
| -			spi_nor_10: spi_nor@0 {
 | |
| -				#address-cells = <1>;
 | |
| -				#size-cells = <1>;
 | |
| +			spi_nor: spi_nor@0 {
 | |
|  				compatible = "jedec,spi-nor";
 | |
|  				reg = <0>;
 | |
|  				spi-max-frequency = <500000>;
 | |
| @@ -130,180 +104,33 @@ spi_nor_10: spi_nor@0 {
 | |
|  		};
 | |
|  	};
 | |
|  
 | |
| -	// enable flash on spi1.1
 | |
| -	fragment@11 {
 | |
| -		target = <&spi1>;
 | |
| -		__dormant__ {
 | |
| -			status = "okay";
 | |
| -                        #address-cells = <1>;
 | |
| -                        #size-cells = <0>;
 | |
| -			spi_nor_11: spi_nor@1 {
 | |
| -				#address-cells = <1>;
 | |
| -				#size-cells = <1>;
 | |
| -				compatible = "jedec,spi-nor";
 | |
| -				reg = <1>;
 | |
| -				spi-max-frequency = <500000>;
 | |
| -			};
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// enable flash on spi1.2
 | |
| -	fragment@12 {
 | |
| -		target = <&spi1>;
 | |
| -		__dormant__ {
 | |
| -			status = "okay";
 | |
| -                        #address-cells = <1>;
 | |
| -                        #size-cells = <0>;
 | |
| -			spi_nor_12: spi_nor@2 {
 | |
| -				#address-cells = <1>;
 | |
| -				#size-cells = <1>;
 | |
| -				compatible = "jedec,spi-nor";
 | |
| -				reg = <2>;
 | |
| -				spi-max-frequency = <500000>;
 | |
| -			};
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// enable flash on spi2.0
 | |
| -	fragment@13 {
 | |
| -		target = <&spi2>;
 | |
| -		__dormant__ {
 | |
| -			status = "okay";
 | |
| -                        #address-cells = <1>;
 | |
| -                        #size-cells = <0>;
 | |
| -			spi_nor_20: spi_nor@0 {
 | |
| -				#address-cells = <1>;
 | |
| -				#size-cells = <1>;
 | |
| -				compatible = "jedec,spi-nor";
 | |
| -				reg = <0>;
 | |
| -				spi-max-frequency = <500000>;
 | |
| -			};
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// enable flash on spi2.1
 | |
| -	fragment@14 {
 | |
| -		target = <&spi2>;
 | |
| -		__dormant__ {
 | |
| -			status = "okay";
 | |
| -                        #address-cells = <1>;
 | |
| -                        #size-cells = <0>;
 | |
| -			spi_nor_21: spi_nor@1 {
 | |
| -				#address-cells = <1>;
 | |
| -				#size-cells = <1>;
 | |
| -				compatible = "jedec,spi-nor";
 | |
| -				reg = <1>;
 | |
| -				spi-max-frequency = <500000>;
 | |
| -			};
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// enable flash on spi2.2
 | |
| -	fragment@15 {
 | |
| -		target = <&spi2>;
 | |
| -		__dormant__ {
 | |
| -			status = "okay";
 | |
| -                        #address-cells = <1>;
 | |
| -                        #size-cells = <0>;
 | |
| -			spi_nor_22: spi_nor@2 {
 | |
| -				#address-cells = <1>;
 | |
| -				#size-cells = <1>;
 | |
| -				compatible = "jedec,spi-nor";
 | |
| -				reg = <2>;
 | |
| -				spi-max-frequency = <500000>;
 | |
| -			};
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// Enable fast read for device on spi0.0.
 | |
| -	// Use default active low interrupt signalling.
 | |
| -	fragment@16 {
 | |
| -		target = <&spi_nor_00>;
 | |
| -		__dormant__ {
 | |
| -			m25p,fast-read;
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// Enable fast read for device on spi0.1.
 | |
| -	// Use default active low interrupt signalling.
 | |
| -	fragment@17 {
 | |
| -		target = <&spi_nor_01>;
 | |
| -		__dormant__ {
 | |
| -			m25p,fast-read;
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// Enable fast read for device on spi1.0.
 | |
| -	// Use default active low interrupt signalling.
 | |
| -	fragment@18 {
 | |
| -		target = <&spi_nor_10>;
 | |
| -		__dormant__ {
 | |
| -			m25p,fast-read;
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// Enable fast read for device on spi1.1.
 | |
| -	// Use default active low interrupt signalling.
 | |
| -	fragment@19 {
 | |
| -		target = <&spi_nor_11>;
 | |
| -		__dormant__ {
 | |
| -			m25p,fast-read;
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// Enable fast read for device on spi1.2.
 | |
| -	// Use default active low interrupt signalling.
 | |
| -	fragment@20 {
 | |
| -		target = <&spi_nor_12>;
 | |
| -		__dormant__ {
 | |
| -			m25p,fast-read;
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// Enable fast read for device on spi2.0.
 | |
| -	// Use default active low interrupt signalling.
 | |
| -	fragment@21 {
 | |
| -		target = <&spi_nor_20>;
 | |
| -		__dormant__ {
 | |
| -			m25p,fast-read;
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// Enable fast read for device on spi2.1.
 | |
| -	// Use default active low interrupt signalling.
 | |
| -	fragment@22 {
 | |
| -		target = <&spi_nor_21>;
 | |
| -		__dormant__ {
 | |
| -			m25p,fast-read;
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
| -	// Enable fast read for device on spi2.2.
 | |
| -	// Use default active low interrupt signalling.
 | |
| -	fragment@23 {
 | |
| -		target = <&spi_nor_22>;
 | |
| -		__dormant__ {
 | |
| -			m25p,fast-read;
 | |
| -		};
 | |
| -	};
 | |
| -
 | |
|  	__overrides__ {
 | |
| -		flash-spi0-0       = <0>,"+0+8";
 | |
| -		flash-spi0-1       = <0>,"+1+9";
 | |
| -		flash-spi1-0       = <0>,"+2+10";
 | |
| -		flash-spi1-1       = <0>,"+3+11";
 | |
| -		flash-spi1-2       = <0>,"+4+12";
 | |
| -		flash-spi2-0       = <0>,"+5+13";
 | |
| -		flash-spi2-1       = <0>,"+6+14";
 | |
| -		flash-spi2-2       = <0>,"+7+15";
 | |
| -		flash-fastr-spi0-0 = <0>,"+0+8+16";
 | |
| -		flash-fastr-spi0-1 = <0>,"+1+9+17";
 | |
| -		flash-fastr-spi1-0 = <0>,"+2+10+18";
 | |
| -		flash-fastr-spi1-1 = <0>,"+3+11+19";
 | |
| -		flash-fastr-spi1-2 = <0>,"+4+12+20";
 | |
| -		flash-fastr-spi2-0 = <0>,"+5+13+21";
 | |
| -		flash-fastr-spi2-1 = <0>,"+6+14+22";
 | |
| -		flash-fastr-spi2-2 = <0>,"+7+15+23";
 | |
| +		spi0-0             = <0>,"+0", <&payload>,"target:0=",<&spi0>, <&spi_nor>,"reg:0=0";
 | |
| +		spi0-1             = <0>,"+1", <&payload>,"target:0=",<&spi0>, <&spi_nor>,"reg:0=1";
 | |
| +		spi1-0             = <0>,"+2", <&payload>,"target:0=",<&spi1>, <&spi_nor>,"reg:0=0";
 | |
| +		spi1-1             = <0>,"+3", <&payload>,"target:0=",<&spi1>, <&spi_nor>,"reg:0=1";
 | |
| +		spi1-2             = <0>,"+4", <&payload>,"target:0=",<&spi1>, <&spi_nor>,"reg:0=2";
 | |
| +		spi2-0             = <0>,"+5", <&payload>,"target:0=",<&spi2>, <&spi_nor>,"reg:0=0";
 | |
| +		spi2-1             = <0>,"+6", <&payload>,"target:0=",<&spi2>, <&spi_nor>,"reg:0=1";
 | |
| +		spi2-2             = <0>,"+7", <&payload>,"target:0=",<&spi2>, <&spi_nor>,"reg:0=2";
 | |
| +		flash-spi0-0       = <0>,"+0", <&payload>,"target:0=",<&spi0>, <&spi_nor>,"reg:0=0";
 | |
| +		flash-spi0-1       = <0>,"+1", <&payload>,"target:0=",<&spi0>, <&spi_nor>,"reg:0=1";
 | |
| +		flash-spi1-0       = <0>,"+2", <&payload>,"target:0=",<&spi1>, <&spi_nor>,"reg:0=0";
 | |
| +		flash-spi1-1       = <0>,"+3", <&payload>,"target:0=",<&spi1>, <&spi_nor>,"reg:0=1";
 | |
| +		flash-spi1-2       = <0>,"+4", <&payload>,"target:0=",<&spi1>, <&spi_nor>,"reg:0=2";
 | |
| +		flash-spi2-0       = <0>,"+5", <&payload>,"target:0=",<&spi2>, <&spi_nor>,"reg:0=0";
 | |
| +		flash-spi2-1       = <0>,"+6", <&payload>,"target:0=",<&spi2>, <&spi_nor>,"reg:0=1";
 | |
| +		flash-spi2-2       = <0>,"+7", <&payload>,"target:0=",<&spi2>, <&spi_nor>,"reg:0=2";
 | |
| +		flash-fastr-spi0-0 = <0>,"+0+8", <&payload>,"target:0=",<&spi0>, <&spi_nor>,"reg:0=0";
 | |
| +		flash-fastr-spi0-1 = <0>,"+1+8", <&payload>,"target:0=",<&spi0>, <&spi_nor>,"reg:0=1";
 | |
| +		flash-fastr-spi1-0 = <0>,"+2+8", <&payload>,"target:0=",<&spi1>, <&spi_nor>,"reg:0=0";
 | |
| +		flash-fastr-spi1-1 = <0>,"+3+8", <&payload>,"target:0=",<&spi1>, <&spi_nor>,"reg:0=1";
 | |
| +		flash-fastr-spi1-2 = <0>,"+4+8", <&payload>,"target:0=",<&spi1>, <&spi_nor>,"reg:0=2";
 | |
| +		flash-fastr-spi2-0 = <0>,"+5+8", <&payload>,"target:0=",<&spi2>, <&spi_nor>,"reg:0=0";
 | |
| +		flash-fastr-spi2-1 = <0>,"+6+8", <&payload>,"target:0=",<&spi2>, <&spi_nor>,"reg:0=1";
 | |
| +		flash-fastr-spi2-2 = <0>,"+7+8", <&payload>,"target:0=",<&spi2>, <&spi_nor>,"reg:0=2";
 | |
| +		fastr              = <0>,"+8";
 | |
| +		speed              = <&spi_nor>, "spi-max-frequency:0";
 | |
|  	};
 | |
|  };
 | |
|  
 | |
| -- 
 | |
| 2.42.0
 | |
| 
 |