dm: led: add BCM6328 led driver
[oweals/u-boot.git] / drivers / led / Kconfig
index 2987337219d75d1dd19843d139528fb65aa3f0ec..dc19f4fc40865c859fe7277eff2a8a5af4869e56 100644 (file)
@@ -9,9 +9,29 @@ config LED
          can provide access to board-specific LEDs. Use of the device tree
          for configuration is encouraged.
 
+config LED_BCM6328
+       bool "LED Support for BCM6328"
+       depends on LED && ARCH_BMIPS
+       help
+         This option enables support for LEDs connected to the BCM6328
+         LED HW controller accessed via MMIO registers.
+         HW blinking is supported and up to 24 LEDs can be controlled.
+         All LEDs can blink at the same time but the delay is shared, which
+         means that if one LED is set to blink at 100ms and then a different
+         LED is set to blink at 200ms, both will blink at 200ms.
+
+config LED_BLINK
+       bool "Support LED blinking"
+       depends on LED
+       help
+         Some drivers can support automatic blinking of LEDs with a given
+         period, without needing timers or extra code to handle the timing.
+         This option enables support for this which adds slightly to the
+         code size.
+
 config SPL_LED
        bool "Enable LED support in SPL"
-       depends on LED
+       depends on SPL && SPL_DM
        help
          The LED subsystem adds a small amount of overhead to the image.
          If this is acceptable and you have a need to use LEDs in SPL,
@@ -27,4 +47,333 @@ config LED_GPIO
          The GPIO driver must used driver model. LEDs are configured using
          the device tree.
 
+config SPL_LED_GPIO
+       bool "LED support for GPIO-connected LEDs in SPL"
+        depends on SPL_LED && DM_GPIO
+       help
+         This option is an SPL-variant of the LED_GPIO option.
+         See the help of LED_GPIO for details.
+
+config LED_STATUS
+       bool "Enable status LED API"
+       help
+         Allows common u-boot commands to use a board's leds to
+         provide status for activities like booting and downloading files.
+
+if LED_STATUS
+
+# Hidden constants
+
+config LED_STATUS_OFF
+       int
+       default 0
+
+config LED_STATUS_BLINKING
+       int
+       default 1
+
+config LED_STATUS_ON
+       int
+       default 2
+
+# Hidden constants end
+
+config LED_STATUS_GPIO
+       bool "GPIO status LED implementation"
+       help
+         The status LED can be connected to a GPIO pin. In such cases, the
+         gpio_led driver can be used as a status LED backend implementation.
+
+config LED_STATUS_BOARD_SPECIFIC
+       bool "Specific board"
+       default y
+       help
+         LED support is only for a specific board.
+
+comment "LEDs parameters"
+
+config LED_STATUS0
+       bool "Enable status LED 0"
+
+if LED_STATUS0
+
+config LED_STATUS_BIT
+       int "identification"
+       help
+         CONFIG_LED_STATUS_BIT is passed into the __led_* functions to identify
+         which LED is being acted on.  As such, the chosen value must be unique
+         with respect to the other CONFIG_LED_STATUS_BIT's. Mapping the value
+         to a physical LED is the responsibility of the __led_* function.
+
+config LED_STATUS_STATE
+       int "initial state"
+       range LED_STATUS_OFF LED_STATUS_ON
+       default LED_STATUS_OFF
+       help
+         Should be set one of the following:
+         0 - off
+         1 - blinking
+         2 - on
+
+config LED_STATUS_FREQ
+       int "blink frequency"
+       range 2 10
+       default 2
+       help
+         The LED blink period calculated from LED_STATUS_FREQ:
+         LED_STATUS_PERIOD = CONFIG_SYS_HZ/LED_STATUS_FREQ
+         Values range: 2 - 10
+
+endif # LED_STATUS0
+
+config LED_STATUS1
+       bool "Enable status LED 1"
+
+if LED_STATUS1
+
+config LED_STATUS_BIT1
+       int "identification"
+       help
+         CONFIG_LED_STATUS_BIT1 is passed into the __led_* functions to
+         identify which LED is being acted on.  As such, the chosen value must
+         be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
+         the value to a physical LED is the responsibility of the __led_*
+         function.
+
+config LED_STATUS_STATE1
+       int "initial state"
+       range LED_STATUS_OFF LED_STATUS_ON
+       default LED_STATUS_OFF
+       help
+         Should be set one of the following:
+         0 - off
+         1 - blinking
+         2 - on
+
+config LED_STATUS_FREQ1
+       int "blink frequency"
+       range 2 10
+       default 2
+       help
+         The LED blink period calculated from LED_STATUS_FREQ1:
+         LED_STATUS_PERIOD1 = CONFIG_SYS_HZ/LED_STATUS_FREQ1
+         Values range: 2 - 10
+
+endif # LED_STATUS1
+
+config LED_STATUS2
+       bool "Enable status LED 2"
+
+if LED_STATUS2
+
+config LED_STATUS_BIT2
+       int "identification"
+       help
+         CONFIG_LED_STATUS_BIT2 is passed into the __led_* functions to
+         identify which LED is being acted on.  As such, the chosen value must
+         be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
+         the value to a physical LED is the responsibility of the __led_*
+         function.
+
+config LED_STATUS_STATE2
+       int "initial state"
+       range LED_STATUS_OFF LED_STATUS_ON
+       default LED_STATUS_OFF
+       help
+         Should be set one of the following:
+         0 - off
+         1 - blinking
+         2 - on
+
+config LED_STATUS_FREQ2
+       int "blink frequency"
+       range 2 10
+       default 2
+       help
+         The LED blink period calculated from LED_STATUS_FREQ2:
+         LED_STATUS_PERIOD2 = CONFIG_SYS_HZ/LED_STATUS_FREQ2
+         Values range: 2 - 10
+
+endif # LED_STATUS2
+
+config LED_STATUS3
+       bool "Enable status LED 3"
+
+if LED_STATUS3
+
+config LED_STATUS_BIT3
+       int "identification"
+       help
+         CONFIG_LED_STATUS_BIT3 is passed into the __led_* functions to
+         identify which LED is being acted on.  As such, the chosen value must
+         be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
+         the value to a physical LED is the responsibility of the __led_*
+         function.
+
+config LED_STATUS_STATE3
+       int "initial state"
+       range LED_STATUS_OFF LED_STATUS_ON
+       default LED_STATUS_OFF
+       help
+         Should be set one of the following:
+         0 - off
+         1 - blinking
+         2 - on
+
+config LED_STATUS_FREQ3
+       int "blink frequency"
+       range 2 10
+       default 2
+       help
+         The LED blink period calculated from LED_STATUS_FREQ3:
+         LED_STATUS_PERIOD3 = CONFIG_SYS_HZ/LED_STATUS_FREQ3
+         Values range: 2 - 10
+
+endif # LED_STATUS3
+
+config LED_STATUS4
+       bool "Enable status LED 4"
+
+if LED_STATUS4
+
+config LED_STATUS_BIT4
+       int "identification"
+       help
+         CONFIG_LED_STATUS_BIT4 is passed into the __led_* functions to
+         identify which LED is being acted on.  As such, the chosen value must
+         be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
+         the value to a physical LED is the responsibility of the __led_*
+         function.
+
+config LED_STATUS_STATE4
+       int "initial state"
+       range LED_STATUS_OFF LED_STATUS_ON
+       default LED_STATUS_OFF
+       help
+         Should be set one of the following:
+         0 - off
+         1 - blinking
+         2 - on
+
+config LED_STATUS_FREQ4
+       int "blink frequency"
+       range 2 10
+       default 2
+       help
+         The LED blink period calculated from LED_STATUS_FREQ4:
+         LED_STATUS_PERIOD4 = CONFIG_SYS_HZ/LED_STATUS_FREQ4
+         Values range: 2 - 10
+
+endif # LED_STATUS4
+
+config LED_STATUS5
+       bool "Enable status LED 5"
+
+if LED_STATUS5
+
+config LED_STATUS_BIT5
+       int "identification"
+       help
+         CONFIG_LED_STATUS_BIT5 is passed into the __led_* functions to
+         identify which LED is being acted on.  As such, the chosen value must
+         be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
+         the value to a physical LED is the responsibility of the __led_*
+         function.
+
+config LED_STATUS_STATE5
+       int "initial state"
+       range LED_STATUS_OFF LED_STATUS_ON
+       default LED_STATUS_OFF
+       help
+         Should be set one of the following:
+         0 - off
+         1 - blinking
+         2 - on
+
+config LED_STATUS_FREQ5
+       int "blink frequency"
+       range 2 10
+       default 2
+       help
+         The LED blink period calculated from LED_STATUS_FREQ5:
+         LED_STATUS_PERIOD5 = CONFIG_SYS_HZ/LED_STATUS_FREQ5
+         Values range: 2 - 10
+
+endif # LED_STATUS5
+
+config LED_STATUS_BOOT_ENABLE
+       bool "Enable BOOT LED"
+       help
+         Enable to turn an LED on when the board is booting.
+
+if LED_STATUS_BOOT_ENABLE
+
+config LED_STATUS_BOOT
+       int "LED to light when the board is booting"
+       help
+         Valid enabled LED device number.
+
+endif # LED_STATUS_BOOT_ENABLE
+
+config LED_STATUS_RED_ENABLE
+       bool "Enable red LED"
+       help
+         Enable red status LED.
+
+if LED_STATUS_RED_ENABLE
+
+config LED_STATUS_RED
+       int "Red LED identification"
+       help
+         Valid enabled LED device number.
+
+endif # LED_STATUS_RED_ENABLE
+
+config LED_STATUS_YELLOW_ENABLE
+       bool "Enable yellow LED"
+       help
+         Enable yellow status LED.
+
+if LED_STATUS_YELLOW_ENABLE
+
+config LED_STATUS_YELLOW
+       int "Yellow LED identification"
+       help
+         Valid enabled LED device number.
+
+endif # LED_STATUS_YELLOW_ENABLE
+
+config LED_STATUS_BLUE_ENABLE
+       bool "Enable blue LED"
+       help
+         Enable blue status LED.
+
+if LED_STATUS_BLUE_ENABLE
+
+config LED_STATUS_BLUE
+       int "Blue LED identification"
+       help
+         Valid enabled LED device number.
+
+endif # LED_STATUS_BLUE_ENABLE
+
+config LED_STATUS_GREEN_ENABLE
+       bool "Enable green LED"
+       help
+         Enable green status LED.
+
+if LED_STATUS_GREEN_ENABLE
+
+config LED_STATUS_GREEN
+       int "Green LED identification"
+       help
+         Valid enabled LED device number (0-5).
+
+endif # LED_STATUS_GREEN_ENABLE
+
+config LED_STATUS_CMD
+       bool "Enable status LED commands"
+
+endif # LED_STATUS
+
 endmenu