boards: arm: Add Legend 3.5" board

This commit adds support for the Legend 3.5" board revision.
This board revision is found on the Seagate FireCuda Gaming
Hub and Gaming Drive Hub for Xbox devices. It contains the following
hardware components:
- A B1414 LED strip connected to the PA7 pin (SPI MOSI)
- A SPI flash (FM25F005) connected on SPI2 bus
- A PWM LED connected on TIM3 CH3
- An external 24 MHz oscillator

Signed-off-by: Maxime Bittan <maxime.bittan@seagate.com>
Signed-off-by: Simon Guinot <simon.guinot@seagate.com>
This commit is contained in:
Maxime Bittan 2020-10-26 21:25:26 +01:00 committed by Christopher Friedt
commit 35b1a6f337
4 changed files with 79 additions and 7 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

View file

@ -5,7 +5,7 @@ Legend
Overview Overview
******** ********
The Legend board family contains two revisions: 25hdd and 25ssd. The Legend board family contains three revisions: 25hdd, 25ssd, and 35.
The Legend 2.5" HDD board (revision 25hdd) can be found in the Seagate FireCuda The Legend 2.5" HDD board (revision 25hdd) can be found in the Seagate FireCuda
Gaming Hard Drive, Gaming Drive for Xbox and Gaming Drive for PlayStation Gaming Hard Drive, Gaming Drive for Xbox and Gaming Drive for PlayStation
@ -18,13 +18,23 @@ The Legend 2.5" SSD board (revision 25ssd) is found in the Seagate SSD Gaming
Drive for Xbox. A Realtek RTS5411S USB hub is embedded and connected to a Phison Drive for Xbox. A Realtek RTS5411S USB hub is embedded and connected to a Phison
U17 2.5" SSD, as well as a STM32F070 MCU. U17 2.5" SSD, as well as a STM32F070 MCU.
On both boards, the Zephyr port is running on the STM32F070 MCU. The Legend 3.5" board (revision 35) can be found in the Seagate FireCuda Gaming
Hub and Gaming Drive Hub for Xbox devices. A Genesys Logic GL3523-S USB hub is
connected to an ASMedia ASM1153 USB-to-SATA bridge controller and a STM32F070
MCU. The two chips are connected together using I2C.
On all boards, the Zephyr port is running on the STM32F070 MCU.
.. image:: img/firecuda_gaming_hard_drive.png .. image:: img/firecuda_gaming_hard_drive.png
:width: 750px :width: 550px
:align: center :align: center
:alt: Seagate FireCuda Gaming Hard Drive :alt: Seagate FireCuda Gaming Hard Drive
.. image:: img/firecuda_gaming_hub.png
:width: 550px
:align: center
:alt: Seagate FireCuda Gaming Hub
Hardware Hardware
******** ********
@ -44,7 +54,7 @@ Hardware
Supported Features Supported Features
================== ==================
All the hardware features available on the Legend 2.5" boards are supported by All the hardware features available on the Legend boards are supported by
Zephyr. Zephyr.
+-----------+------------+-------------------------------------+ +-----------+------------+-------------------------------------+
@ -96,9 +106,9 @@ Connections and IOs
+---------+-----------------+----------------------------+ +---------+-----------------+----------------------------+
| PA7 | LED strip | SPI1 MOSI | | PA7 | LED strip | SPI1 MOSI |
+---------+-----------------+----------------------------+ +---------+-----------------+----------------------------+
| PA12 | USB | USB DM (SSD only) | | PA12 | USB | USB DM (25ssd and 35 only) |
+---------+-----------------+----------------------------+ +---------+-----------------+----------------------------+
| PA13 | USB | USB DP (SSD only) | | PA13 | USB | USB DP (25ssd and 35 only) |
+---------+-----------------+----------------------------+ +---------+-----------------+----------------------------+
Programming and Debugging Programming and Debugging

View file

@ -0,0 +1,62 @@
/*
* Copyright (c) 2021 Seagate Technology LLC
*
* SPDX-License-Identifier: Apache-2.0
*/
/ {
model = "Seagate Legend 3.5 board";
compatible = "legend35", "seagate,legend35";
aliases {
pwm-led0 = &pwm_led0;
led-strip = &led_strip_spi;
};
led_pwm: pwmleds {
compatible = "pwm-leds";
label = "LED PWM";
pwm_led0: pwm_led_0 {
label = "Activity LED";
pwms = <&pwm3 3 255 PWM_POLARITY_NORMAL>;
};
};
};
&clk_hse {
clock-frequency = <DT_FREQ_M(24)>; /* 24MHz external clock */
status = "okay";
};
&pll {
clocks = <&clk_hse>;
prediv = <1>;
mul = <2>;
status = "okay";
};
&rcc {
clocks = <&pll>;
clock-frequency = <DT_FREQ_M(48)>;
ahb-prescaler = <1>;
apb1-prescaler = <1>;
};
&led_strip_spi {
chain-length = <12>;
status = "okay";
};
&timers3 {
status = "okay";
};
&pwm3 {
status = "okay";
};
&usb {
status = "okay";
};

View file

@ -1,4 +1,4 @@
set(LEGEND_REVISIONS "25hdd" "25ssd") set(LEGEND_REVISIONS "25hdd" "25ssd" "35")
if (NOT DEFINED BOARD_REVISION) if (NOT DEFINED BOARD_REVISION)
set(BOARD_REVISION "25hdd") set(BOARD_REVISION "25hdd")
else() else()