mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-09 22:24:04 +08:00
87 lines
2.5 KiB
Plaintext
87 lines
2.5 KiB
Plaintext
|
Cortina systems Gemini platforms
|
||
|
|
||
|
The Gemini SoC is the project name for an ARMv4 FA525-based SoC originally
|
||
|
produced by Storlink Semiconductor around 2005. The company was renamed
|
||
|
later renamed Storm Semiconductor. The chip product name is Storlink SL3516.
|
||
|
It was derived from earlier products from Storm named SL3316 (Centroid) and
|
||
|
SL3512 (Bulverde).
|
||
|
|
||
|
Storm Semiconductor was acquired by Cortina Systems in 2008 and the SoC was
|
||
|
produced and used for NAS and similar usecases. In 2014 Cortina Systems was
|
||
|
in turn acquired by Inphi, who seem to have discontinued this product family.
|
||
|
|
||
|
Many of the IP blocks used in the SoC comes from Faraday Technology.
|
||
|
|
||
|
Required properties (in root node):
|
||
|
compatible = "cortina,gemini";
|
||
|
|
||
|
Required nodes:
|
||
|
|
||
|
- soc: the SoC should be represented by a simple bus encompassing all the
|
||
|
onchip devices, this is referred to as the soc bus node.
|
||
|
|
||
|
- syscon: the soc bus node must have a system controller node pointing to the
|
||
|
global control registers, with the compatible string
|
||
|
"cortina,gemini-syscon", "syscon";
|
||
|
|
||
|
- timer: the soc bus node must have a timer node pointing to the SoC timer
|
||
|
block, with the compatible string "cortina,gemini-timer"
|
||
|
See: clocksource/cortina,gemini-timer.txt
|
||
|
|
||
|
- interrupt-controller: the sob bus node must have an interrupt controller
|
||
|
node pointing to the SoC interrupt controller block, with the compatible
|
||
|
string "cortina,gemini-interrupt-controller"
|
||
|
See interrupt-controller/cortina,gemini-interrupt-controller.txt
|
||
|
|
||
|
Example:
|
||
|
|
||
|
/ {
|
||
|
model = "Foo Gemini Machine";
|
||
|
compatible = "cortina,gemini";
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
|
||
|
memory {
|
||
|
device_type = "memory";
|
||
|
reg = <0x00000000 0x8000000>;
|
||
|
};
|
||
|
|
||
|
soc {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
ranges;
|
||
|
compatible = "simple-bus";
|
||
|
interrupt-parent = <&intcon>;
|
||
|
|
||
|
syscon: syscon@40000000 {
|
||
|
compatible = "cortina,gemini-syscon", "syscon";
|
||
|
reg = <0x40000000 0x1000>;
|
||
|
};
|
||
|
|
||
|
uart0: serial@42000000 {
|
||
|
compatible = "ns16550a";
|
||
|
reg = <0x42000000 0x100>;
|
||
|
clock-frequency = <48000000>;
|
||
|
interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
reg-shift = <2>;
|
||
|
};
|
||
|
|
||
|
timer@43000000 {
|
||
|
compatible = "cortina,gemini-timer";
|
||
|
reg = <0x43000000 0x1000>;
|
||
|
interrupt-parent = <&intcon>;
|
||
|
interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
|
||
|
<15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
|
||
|
<16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
|
||
|
syscon = <&syscon>;
|
||
|
};
|
||
|
|
||
|
intcon: interrupt-controller@48000000 {
|
||
|
compatible = "cortina,gemini-interrupt-controller";
|
||
|
reg = <0x48000000 0x1000>;
|
||
|
interrupt-controller;
|
||
|
#interrupt-cells = <2>;
|
||
|
};
|
||
|
};
|
||
|
};
|