mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
This board appears for example in the Davuaz Da-K6501W switch, and is designed similarly to Hi-K0402WS. However, it only has one SFP port and another 2.5G copper port using RTL8221B 2.5G PHY instead. Also, some components on the board, like additional LEDs, mode switch, and second flash chip are not populated. Like earlier revisions of the K0402W(S) board, there is no UART, so debugging is limited. As this is an unmanaged switch, installation needs a flash programmer.
452 lines
14 KiB
C
452 lines
14 KiB
C
#include "machine.h"
|
|
#include "rtl837x_pins.h"
|
|
#include "rtl837x_leds.h"
|
|
#include "rtl837x_regs.h"
|
|
#include "rtl837x_common.h"
|
|
|
|
#ifdef MACHINE_KP_9000_6XHML_X2
|
|
__code const struct machine machine = {
|
|
.machine_name = "keepLink KP-9000-6XHML-X2",
|
|
.isRTL8373 = 0,
|
|
.min_port = 3,
|
|
.max_port = 8,
|
|
.n_sfp = 2,
|
|
.log_to_phys_port = {0, 0, 0, 5, 1, 2, 3, 4, 6},
|
|
.phys_to_log_port = {4, 5, 6, 7, 3, 8, 0, 0, 0},
|
|
.is_sfp = {0, 0, 0, 1, 0, 0, 0, 0, 2},
|
|
// Left SFP port (5)
|
|
.sfp_port[0].pin_detect = GPIO50_I2C_SCL2_UART1_TX,
|
|
.sfp_port[0].pin_los = GPIO10_LED10,
|
|
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[0].sds = 0,
|
|
.sfp_port[0].i2c = { .sda = GPIO41_I2C_SDA3_MDIO1, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
// Right SFP port (6)
|
|
.sfp_port[1].pin_detect = GPIO30_ACL_BIT3_EN,
|
|
.sfp_port[1].pin_los = GPIO37,
|
|
.sfp_port[1].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[1].sds = 1,
|
|
.sfp_port[1].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
.reset_pin = GPIO54_ACL_BIT2_EN,
|
|
.high_leds = { .mux = LED_27 | LED_29, .enable = LED_28 | LED_29 },
|
|
.port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
/* Conditions for LED on:
|
|
* dual led orange: ledset_0 & ledset_2
|
|
* dual led green: ledset_2 & !ledset_0
|
|
* single right led green: ledset_0 & !ledset_1
|
|
*/
|
|
.led_sets = { { LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT | LEDS_10G,
|
|
LEDS_2G5 | LEDS_LINK | LEDS_10G,
|
|
LEDS_1G | LEDS_LINK,
|
|
0 },
|
|
},
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_KP_9000_6XH_X
|
|
__code const struct machine machine = {
|
|
.machine_name = "keepLink KP-9000-6XH-X",
|
|
.isRTL8373 = 0,
|
|
.min_port = 3,
|
|
.max_port = 8,
|
|
.n_sfp = 1,
|
|
.log_to_phys_port = {0, 0, 0, 5, 1, 2, 3, 4, 6},
|
|
.phys_to_log_port = {4, 5, 6, 7, 3, 8, 0, 0, 0},
|
|
.is_sfp = {0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.sfp_port[0].pin_detect = GPIO30_ACL_BIT3_EN,
|
|
.sfp_port[0].pin_los = GPIO37,
|
|
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
.reset_pin = GPIO_NA,
|
|
/* Conditions for LED on:
|
|
* dual led orange: ledset_0 & ledset_2
|
|
* dual led green: ledset_2 & !ledset_0
|
|
* single right led green: ledset_0 & !ledset_1
|
|
*/
|
|
.led_sets = { { LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT | LEDS_10G,
|
|
LEDS_2G5 | LEDS_LINK | LEDS_10G,
|
|
LEDS_1G | LEDS_LINK,
|
|
0 },
|
|
},
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_KP_9000_9XH_X_EU
|
|
__code const struct machine machine = {
|
|
.machine_name = "keepLink KP-9000-9XH-X-EU",
|
|
.isRTL8373 = 1,
|
|
.min_port = 0,
|
|
.max_port = 8,
|
|
.n_sfp = 1,
|
|
.log_to_phys_port = {1, 2, 3, 4, 5, 6, 7, 8, 9},
|
|
.phys_to_log_port = {0, 1, 2, 3, 4, 5, 6, 7, 8},
|
|
.is_sfp = {0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.sfp_port[0].pin_detect = GPIO30_ACL_BIT3_EN,
|
|
.sfp_port[0].pin_los = GPIO37,
|
|
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
.reset_pin = GPIO_NA,
|
|
.high_leds = { .mux = LED_27 | LED_29, .enable = LED_28 | LED_29 },
|
|
.port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
.led_sets = { { LEDS_2G5 | LEDS_TWO_PAIR_1G | LEDS_1G | LEDS_500M | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT | LEDS_10G | LEDS_TWO_PAIR_5G | LEDS_5G | LEDS_TWO_PAIR_2G5,
|
|
LEDS_2G5 | LEDS_LINK,
|
|
LEDS_1G | LEDS_LINK,
|
|
LEDS_2G5 | LEDS_LINK | LEDS_ACT },
|
|
},
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_KP_9000_9XHML_X
|
|
__code const struct machine machine = {
|
|
.machine_name = "keepLink KP-9000-9XHML-X",
|
|
.isRTL8373 = 1,
|
|
.min_port = 0,
|
|
.max_port = 8,
|
|
.n_sfp = 1,
|
|
.log_to_phys_port = {1, 2, 3, 4, 5, 6, 7, 8, 9},
|
|
.phys_to_log_port = {0, 1, 2, 3, 4, 5, 6, 7, 8},
|
|
.is_sfp = {0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.sfp_port[0].pin_detect = GPIO38,
|
|
.sfp_port[0].pin_los = GPIO_NA,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
.reset_pin = GPIO48_I2C_SCL1,
|
|
.high_leds = { .mux = LED_27 | LED_29, .enable = LED_28 | LED_29 },
|
|
.port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.led_sets = {
|
|
{ /* RJ45: First LED, yellow, second LED: green */
|
|
LEDS_2G5 | LEDS_LINK,
|
|
LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
|
|
0,
|
|
0,
|
|
}, { /* SFP PORT, SINGLE GREEN LED */
|
|
LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT | LEDS_10G,
|
|
0,
|
|
0,
|
|
0,
|
|
}},
|
|
.led_mux_custom = 1,
|
|
.led_mux = {0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0c, 0x09, 0x0d, 0x10,
|
|
0x11, 0x0e, 0x14, 0x11, 0x12, 0x15, 0x15, 0x16, 0x18, 0x19,
|
|
0x1a, 0x19, 0x1d, 0x1e, 0x1c, 0x1d, 0x20, 0x21},
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_SWGT024_V2_0
|
|
__code const struct machine machine = {
|
|
.machine_name = "SWGT024 V2.0",
|
|
.isRTL8373 = 0,
|
|
.min_port = 3,
|
|
.max_port = 8,
|
|
.n_sfp = 2,
|
|
.log_to_phys_port = {0, 0, 0, 6, 1, 2, 3, 4, 5},
|
|
.phys_to_log_port = {4, 5, 6, 7, 8, 3, 0, 0, 0},
|
|
.is_sfp= {0, 0, 0, 2, 0, 0, 0, 0, 1},
|
|
// Left SFP port (J4)
|
|
.sfp_port[0].pin_detect = GPIO30_ACL_BIT3_EN,
|
|
.sfp_port[0].pin_los = GPIO37,
|
|
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 }, /* GPIO 39 */
|
|
// Right SFP port (J2)
|
|
.sfp_port[1].pin_detect = GPIO50_I2C_SCL2_UART1_TX,
|
|
.sfp_port[1].pin_los = GPIO51_I2C_SDA2_UART1_RX,
|
|
.sfp_port[1].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[1].sds = 0,
|
|
.sfp_port[1].i2c = { .sda = GPIO41_I2C_SDA3_MDIO1, .scl = GPIO40_I2C_SCL3_MDC1 }, /* GPIO 40 */
|
|
.reset_pin = GPIO36_PWM_OUT,
|
|
.high_leds = { .mux = LED_27 | LED_29, .enable = LED_28 | LED_29 },
|
|
.port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
/* Conditions for LED on:
|
|
* dual led orange: ledset_0 & ledset_2
|
|
* dual led green: ledset_2 & !ledset_0
|
|
* single right led green: ledset_0 & !ledset_1
|
|
*/
|
|
.led_sets = { { LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT | LEDS_10G,
|
|
LEDS_2G5 | LEDS_LINK | LEDS_10G,
|
|
LEDS_1G | LEDS_LINK,
|
|
0 },
|
|
},
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_SWTG018AS_A_V_2_0
|
|
__code const struct machine machine = {
|
|
.machine_name = "SWTG018AS-A V2.0",
|
|
.isRTL8373 = 1,
|
|
.min_port = 0,
|
|
.max_port = 8,
|
|
.n_sfp = 1,
|
|
.log_to_phys_port = {1, 2, 3, 4, 5, 6, 7, 8, 9},
|
|
.phys_to_log_port = {0, 1, 2, 3, 4, 5, 6, 7, 8},
|
|
.is_sfp = {0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.sfp_port[0].pin_detect = GPIO38,
|
|
.sfp_port[0].pin_los = GPIO_NA,
|
|
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
.reset_pin = GPIO_NA,
|
|
.high_leds = { .mux = LED_27 | LED_29, .enable = LED_28 | LED_29 },
|
|
.port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.led_sets = {
|
|
{ /* RJ45: First LED, yellow, second LED: green */
|
|
LEDS_2G5 | LEDS_LINK,
|
|
LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
|
|
0,
|
|
0,
|
|
}, { /* SFP PORT, SINGLE GREEN LED */
|
|
LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT | LEDS_10G,
|
|
0,
|
|
0,
|
|
0,
|
|
}},
|
|
.led_mux_custom = 1,
|
|
.led_mux = { 0x00, 0x01, 0x04, 0x05, 0x08, // 65e0
|
|
0x09, 0x0c, 0x09, 0x0d, 0x10, // 65e4
|
|
0x11, 0x0e, 0x14, 0x11, 0x12, // 65e8
|
|
0x15, 0x15, 0x16, 0x18, 0x19, // 65ec
|
|
0x1a, 0x19, 0x1d, 0x1e, 0x1c, // 65f0
|
|
0x1d, 0x20, 0x21 },
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_HG0402XG_V1_1
|
|
__code const struct machine machine = {
|
|
.machine_name = "HG0402XG V1.1",
|
|
.isRTL8373 = 0,
|
|
.min_port = 3,
|
|
.max_port = 8,
|
|
.n_sfp = 2,
|
|
.log_to_phys_port = {0, 0, 0, 5, 1, 2, 3, 4, 6},
|
|
.phys_to_log_port = {4, 5, 6, 7, 3, 8, 0, 0, 0},
|
|
.is_sfp = {0, 0, 0, 2, 0, 0, 0, 0, 1},
|
|
.sfp_port[0].pin_detect = 50,
|
|
.sfp_port[0].pin_los = 10,
|
|
.sfp_port[0].pin_tx_disable = 0xFF,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c_bus ={ .sda = GPIO41_I2C_SDA3_MDIO1, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
.sfp_port[1].pin_detect = 30,
|
|
.sfp_port[1].pin_los = 51,
|
|
.sfp_port[1].pin_tx_disable = 0xFF,
|
|
.sfp_port[1].sds = 0,
|
|
.sfp_port[1].i2c_bus = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
.reset_pin = GPIO_NA,
|
|
.high_leds = { .mux = LED_27 , .enable = LED_27 | LED_29 },
|
|
.port_led_set = { 0, 0, 0, 1, 0, 0, 0, 0, 1},
|
|
/* The Ethernet ports have 1 amber LED (left) and 1 green LED (right)
|
|
* The SFP ports have also 1 amber LED and 1 green LED
|
|
* Ethernet ports use LED-set 0, SFP ports use LED-set 1
|
|
*/
|
|
.led_sets = { { LEDS_10M | LEDS_LINK | LEDS_ACT,
|
|
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_2G5 | LEDS_LINK | LEDS_ACT,
|
|
LEDS_2G5 | LEDS_LINK | LEDS_ACT,
|
|
0 },
|
|
{ LEDS_100M | LEDS_10M | LEDS_LINK,
|
|
LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_10M | LEDS_LINK | LEDS_ACT | LEDS_10G,
|
|
LEDS_10G | LEDS_LINK,
|
|
0 },
|
|
},
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_SWTGW218AS
|
|
|
|
__code const struct machine machine = {
|
|
.machine_name = "SWTGW218AS 8+1 Managed Switch",
|
|
.isRTL8373 = 1,
|
|
.min_port = 0,
|
|
.max_port = 8,
|
|
.n_sfp = 1,
|
|
.log_to_phys_port = {1, 2, 3, 4, 5, 6, 7, 8, 9},
|
|
.phys_to_log_port = {0, 1, 2, 3, 4, 5, 6, 7, 8},
|
|
.is_sfp = {0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.sfp_port[0].pin_detect = GPIO30_ACL_BIT3_EN,
|
|
.sfp_port[0].pin_los = GPIO37,
|
|
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
.reset_pin = GPIO54_ACL_BIT2_EN,
|
|
.high_leds = { .mux = LED_27 | LED_28 | LED_29, .enable = LED_28 | LED_29 },
|
|
.port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.led_sets = { { LEDS_2G5 | LEDS_LINK | LEDS_ACT, // Green LED (right)
|
|
0, // unused
|
|
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, // Amber LED (left)
|
|
0
|
|
}, // unused
|
|
{ LEDS_10G | LEDS_5G | LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_LINK | LEDS_ACT, // SFP LED
|
|
0, // unused
|
|
0, // unused
|
|
0
|
|
}, // unused },
|
|
},
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_DEFAULT_8C_1SFP
|
|
__code const struct machine machine = {
|
|
.machine_name = "8+1 SFP Port Switch",
|
|
.isRTL8373 = 1,
|
|
.min_port = 0,
|
|
.max_port = 8,
|
|
.n_sfp = 1,
|
|
.log_to_phys_port = {1, 2, 3, 4, 5, 6, 7, 8, 9},
|
|
.phys_to_log_port = {0, 1, 2, 3, 4, 5, 6, 7, 8},
|
|
.is_sfp = {0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.sfp_port[0].pin_detect = GPIO30_ACL_BIT3_EN,
|
|
.sfp_port[0].pin_los = GPIO37,
|
|
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
.reset_pin = GPIO_NA,
|
|
.high_leds = { .mux = LED_27 | LED_29, .enable = LED_28 | LED_29 },
|
|
.port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
.led_sets = { { LEDS_2G5 | LEDS_TWO_PAIR_1G | LEDS_1G | LEDS_500M | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT | LEDS_10G | LEDS_TWO_PAIR_5G | LEDS_5G | LEDS_TWO_PAIR_2G5,
|
|
LEDS_2G5 | LEDS_LINK,
|
|
LEDS_1G | LEDS_LINK,
|
|
LEDS_2G5 | LEDS_LINK | LEDS_ACT },
|
|
},
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_TRENDNET_TEG_S562
|
|
__code const struct machine machine = {
|
|
.machine_name = "Trendnet TEG-S562",
|
|
.isRTL8373 = 0,
|
|
.min_port = 3,
|
|
.max_port = 8,
|
|
.n_sfp = 2,
|
|
.log_to_phys_port = {0, 0, 0, 6, 1, 2, 3, 4, 5},
|
|
.phys_to_log_port = {4, 5, 6, 7, 8, 3, 0, 0, 0},
|
|
.is_sfp = {0, 0, 0, 1, 0, 0, 0, 0, 2},
|
|
.sfp_port[0].pin_detect = GPIO38,
|
|
.sfp_port[0].pin_los = GPIO50_I2C_SCL2_UART1_TX,
|
|
.sfp_port[0].pin_tx_disable = GPIO54_ACL_BIT2_EN,
|
|
.sfp_port[0].sds = 0,
|
|
.sfp_port[0].i2c = { .sda = GPIO47_I2C_SDA0, .scl = GPIO46_I2C_SCL0 },
|
|
.sfp_port[1].pin_detect = GPIO36_PWM_OUT,
|
|
.sfp_port[1].pin_los = GPIO37,
|
|
.sfp_port[1].pin_tx_disable = GPIO51_I2C_SDA2_UART1_RX,
|
|
.sfp_port[1].sds = 1,
|
|
.sfp_port[1].i2c = { .sda = GPIO49_I2C_SDA1, .scl = GPIO48_I2C_SCL1 },
|
|
.reset_pin = GPIO_NA,
|
|
.port_led_set = { 0, 0, 0, 1, 0, 0, 0, 0, 1},
|
|
.led_sets = {
|
|
{
|
|
0, // Unused
|
|
LEDS_2G5 | LEDS_LINK | LEDS_ACT, // Green
|
|
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT, // Amber
|
|
0 // Unused
|
|
},
|
|
{
|
|
0, // Unused
|
|
0, // Unused
|
|
LEDS_10G | LEDS_1G | LEDS_LINK | LEDS_ACT, // Green
|
|
0, // Unused
|
|
},
|
|
},
|
|
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#elif defined MACHINE_HI_K0402WS
|
|
__code const struct machine machine = {
|
|
.machine_name = "HiSource HI-K0402WS",
|
|
.isRTL8373 = 0,
|
|
.min_port = 3,
|
|
.max_port = 8,
|
|
.n_sfp = 2,
|
|
.log_to_phys_port = {0, 0, 0, 6, 1, 2, 3, 4, 5},
|
|
.phys_to_log_port = {4, 5, 6, 7, 8, 3, 0, 0, 0},
|
|
.is_sfp = {0, 0, 0, 2, 0, 0, 0, 0, 1},
|
|
|
|
// Left SFP port
|
|
.sfp_port[0].pin_detect = GPIO38,
|
|
.sfp_port[0].pin_los = GPIO_NA,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
|
|
// Right SFP port
|
|
.sfp_port[1].pin_detect = GPIO37,
|
|
.sfp_port[1].pin_los = GPIO_NA,
|
|
.sfp_port[1].sds = 0,
|
|
.sfp_port[1].i2c = { .sda = GPIO41_I2C_SDA3_MDIO1, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
|
|
.reset_pin = GPIO_NA,
|
|
.high_leds = { .mux = LED_28 | LED_29, .enable = LED_27 | LED_28 | LED_29 },
|
|
.port_led_set = { 0, 0, 0, 1, 0, 0, 0, 0, 1},
|
|
.led_sets = {
|
|
{
|
|
LEDS_2G5 | LEDS_LINK | LEDS_10M | LEDS_ACT,
|
|
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT | LEDS_10G,
|
|
LEDS_1G | LEDS_LINK,
|
|
0
|
|
},
|
|
{
|
|
LEDS_10G | LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK,
|
|
LEDS_10G | LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_ACT,
|
|
0,
|
|
0
|
|
},
|
|
},
|
|
.led_mux_custom = 1,
|
|
.led_mux = {
|
|
0x00,0x01,0x04,0x05,0x08,0x09,0x0c,0x3f,0x0d,0x10,0x11,0x0e,0x14,0x11,0x12,0x15,0x15,0x16,0x18,0x19,0x1a,0x19,0x1d,0x1e,0x1c,0x1d,0x20,0x21
|
|
},
|
|
};
|
|
|
|
void machine_custom_init(void) {
|
|
reg_bit_set(RTL837X_REG_LED_GLB_IO_EN, 6);
|
|
}
|
|
|
|
#elif defined MACHINE_K0501W
|
|
__code const struct machine machine = {
|
|
.machine_name = "K0501W",
|
|
.isRTL8373 = 0,
|
|
.min_port = 3,
|
|
.max_port = 8,
|
|
.n_sfp = 1,
|
|
.log_to_phys_port = {0, 0, 0, 5, 1, 2, 3, 4, 6},
|
|
.phys_to_log_port = {4, 5, 6, 7, 3, 8, 0, 0, 0},
|
|
.is_sfp = {0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
|
|
.sfp_port[0].pin_detect = GPIO30_ACL_BIT3_EN,
|
|
.sfp_port[0].pin_los = GPIO37,
|
|
.sfp_port[0].pin_tx_disable = GPIO_NA,
|
|
.sfp_port[0].sds = 1,
|
|
.sfp_port[0].i2c = { .sda = GPIO39_I2C_SDA4, .scl = GPIO40_I2C_SCL3_MDC1 },
|
|
|
|
.reset_pin = GPIO_NA,
|
|
.port_led_set = { 0, 0, 0, 0, 0, 0, 0, 0, 1},
|
|
.led_sets = {
|
|
{
|
|
LEDS_2G5 | LEDS_LINK | LEDS_ACT,
|
|
0,
|
|
LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
|
|
0
|
|
},
|
|
{
|
|
LEDS_10G | LEDS_2G5 | LEDS_1G | LEDS_100M | LEDS_10M | LEDS_LINK | LEDS_ACT,
|
|
0,
|
|
0,
|
|
0
|
|
},
|
|
},
|
|
};
|
|
|
|
void machine_custom_init(void) { }
|
|
|
|
#else
|
|
#error "Please select a machine type in machine.h"
|
|
#endif
|