managed = "in-band-status"; \
};
-// LED Set mode definitions
+/* LED Set mode definitions */
#define RTL93XX_LED_SET_NONE (0)
#define RTL93XX_LED_SET_10G (1 << 0)
#define RTL93XX_LED_SET_5G (1 << 1)
#define RTL93XX_LED_SET_TX (1 << 13)
#define RTL93XX_LED_SET_COLLISION (1 << 14)
#define RTL93XX_LED_SET_DUPLEX (1 << 15)
+
+/* LED Interface modes */
+#define RTL93XX_LED_MODE_SERIAL 1
+#define RTL93XX_LED_MODE_SINGLE_COLOR_SCAN 2
+#define RTL93XX_LED_MODE_BI_COLOR_SCAN 3
struct device_node *node;
struct device *dev = priv->dev;
u8 leds_in_set[4] = {};
+ u32 led_mode = 1;
u32 pm = 0;
node = of_find_compatible_node(NULL, NULL, "realtek,rtl9300-leds");
sw_w32_mask(0, set << pos, RTL930X_LED_PORT_FIB_SET_SEL_CTRL(i));
}
- /* Set LED mode to serial (0x1) */
- sw_w32_mask(0x3, 0x1, RTL930X_LED_GLB_CTRL);
+ /* Set LED mode */
+ of_property_read_u32(node, "realtek,led-mode", &led_mode);
+ sw_w32_mask(0x3, led_mode & 0x3, RTL930X_LED_GLB_CTRL);
/* Set LED active state */
if (of_property_read_bool(node, "active-low"))