mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 13:22:23 +00:00
d565194420
This adds the top level SoC bindings for Cortina systems Gemini platforms. Cc: Janos Laube <janos.dev@gmail.com> Cc: Paulius Zaleckas <paulius.zaleckas@gmail.com> Cc: Hans Ulli Kroll <ulli.kroll@googlemail.com> Cc: Florian Fainelli <f.fainelli@gmail.com> Cc: devicetree@vger.kernel.org Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
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>;
|
|
};
|
|
};
|
|
};
|