forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.6 KiB
122 lines
3.6 KiB
* Samsung SPI Controller |
|
|
|
The Samsung SPI controller is used to interface with various devices such as flash |
|
and display controllers using the SPI communication interface. |
|
|
|
Required SoC Specific Properties: |
|
|
|
- compatible: should be one of the following. |
|
- samsung,s3c2443-spi: for s3c2443, s3c2416 and s3c2450 platforms |
|
- samsung,s3c6410-spi: for s3c6410 platforms |
|
- samsung,s5pv210-spi: for s5pv210 and s5pc110 platforms |
|
- samsung,exynos5433-spi: for exynos5433 compatible controllers |
|
- samsung,exynos7-spi: for exynos7 platforms <DEPRECATED> |
|
|
|
- reg: physical base address of the controller and length of memory mapped |
|
region. |
|
|
|
- interrupts: The interrupt number to the cpu. The interrupt specifier format |
|
depends on the interrupt controller. |
|
|
|
- dmas : Two or more DMA channel specifiers following the convention outlined |
|
in bindings/dma/dma.txt |
|
|
|
- dma-names: Names for the dma channels. There must be at least one channel |
|
named "tx" for transmit and named "rx" for receive. |
|
|
|
- clocks: specifies the clock IDs provided to the SPI controller; they are |
|
required for interacting with the controller itself, for synchronizing the bus |
|
and as I/O clock (the latter is required by exynos5433 and exynos7). |
|
|
|
- clock-names: string names of the clocks in the 'clocks' property; for all the |
|
the devices the names must be "spi", "spi_busclkN" (where N is determined by |
|
"samsung,spi-src-clk"), while Exynos5433 should specify a third clock |
|
"spi_ioclk" for the I/O clock. |
|
|
|
Required Board Specific Properties: |
|
|
|
- #address-cells: should be 1. |
|
- #size-cells: should be 0. |
|
|
|
Optional Board Specific Properties: |
|
|
|
- samsung,spi-src-clk: If the spi controller includes a internal clock mux to |
|
select the clock source for the spi bus clock, this property can be used to |
|
indicate the clock to be used for driving the spi bus clock. If not specified, |
|
the clock number 0 is used as default. |
|
|
|
- num-cs: Specifies the number of chip select lines supported. If |
|
not specified, the default number of chip select lines is set to 1. |
|
|
|
- cs-gpios: should specify GPIOs used for chipselects (see spi-bus.txt) |
|
|
|
- no-cs-readback: the CS line is disconnected, therefore the device should not |
|
operate based on CS signalling. |
|
|
|
SPI Controller specific data in SPI slave nodes: |
|
|
|
- The spi slave nodes should provide the following information which is required |
|
by the spi controller. |
|
|
|
- samsung,spi-feedback-delay: The sampling phase shift to be applied on the |
|
miso line (to account for any lag in the miso line). The following are the |
|
valid values. |
|
|
|
- 0: No phase shift. |
|
- 1: 90 degree phase shift sampling. |
|
- 2: 180 degree phase shift sampling. |
|
- 3: 270 degree phase shift sampling. |
|
|
|
Aliases: |
|
|
|
- All the SPI controller nodes should be represented in the aliases node using |
|
the following format 'spi{n}' where n is a unique number for the alias. |
|
|
|
|
|
Example: |
|
|
|
- SoC Specific Portion: |
|
|
|
spi_0: spi@12d20000 { |
|
compatible = "samsung,exynos4210-spi"; |
|
reg = <0x12d20000 0x100>; |
|
interrupts = <0 66 0>; |
|
dmas = <&pdma0 5 |
|
&pdma0 4>; |
|
dma-names = "tx", "rx"; |
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
}; |
|
|
|
- Board Specific Portion: |
|
|
|
spi_0: spi@12d20000 { |
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&spi0_bus>; |
|
cs-gpios = <&gpa2 5 0>; |
|
|
|
w25q80bw@0 { |
|
#address-cells = <1>; |
|
#size-cells = <1>; |
|
compatible = "w25x80"; |
|
reg = <0>; |
|
spi-max-frequency = <10000>; |
|
|
|
controller-data { |
|
samsung,spi-feedback-delay = <0>; |
|
}; |
|
|
|
partition@0 { |
|
label = "U-Boot"; |
|
reg = <0x0 0x40000>; |
|
read-only; |
|
}; |
|
|
|
partition@40000 { |
|
label = "Kernel"; |
|
reg = <0x40000 0xc0000>; |
|
}; |
|
}; |
|
};
|
|
|