03 Sep, 2015

8 commits

  • Add support for the Rockchip serial device using the ns16550 driver.
    This uses driver model and device tree for both SPL and U-Boot proper.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • There can be only one do_reset(). When CONFIG_RESET is enabled this is
    provided by the reset uclass, and ARM's version should be disabled.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • All devices should bind without error. But when they don't, they can cause
    driver model init to fail. A real situation where this can happen is when
    there is a missing uclass.

    Add a debug() call to dm_scan_fdt_node to make this easier to track.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • When a uclass definition is missing, no drivers in that uclass can operate.
    This can happen if a board has a strange collection of options (e.g. the
    driver is enabled but the uclass is not).

    Unfortunately this is very confusing at present. Starting up driver model
    results in a -ENOENT error, which is pretty generic. Quite a big of digging
    is needed to get to the root cause.

    To help with this, change the error to a very strange one with no other
    users in U-Boot. Also add a debug message.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • Some SoCs want to adjust the input clock to the DWMMC block as a way of
    controlling the MMC bus clock. Update the get_mmc_clk() method to support
    this.

    Signed-off-by: Simon Glass
    Acked-by: Jaehoon Chung

    Simon Glass
     
  • At present SPL does not have its own option. But these features can
    increase SPL code size. Adjust the Kconfig and Makefile so that
    separate a SPL option can be selected.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • My original pinctrl patch operating using a peripheral ID enum. This was
    shared between pinmux and clock and provides an easy way to specify a device
    that needs to be controlled, even it is does not (yet) have a driver within
    driver model.

    Masahiro's new simple pinctrl gets around this by providing a
    set_state_simple() pinctrl method. By passing a device to that call the
    peripheral ID becomes unnecessary. If the driver needs it, it can calculate
    it itself and use it internally.

    However this does not solve the problem for peripheral clocks. The 'pure'
    solution would be to pass a driver to the clock uclass also. But this
    requires that all devices should have a driver, and a struct udevide. Also
    a key optimisation of the clock uclass is allowing a peripheral clock to
    be set even when there is no device for that clock.

    There may be a better way to achive the same goal, but for now it seems
    expedient to add in peripheral ID to the pinctrl uclass. Two methods are
    added - one to get the peripheral ID and one to select it. The existing
    set_state_simple() is effectively the union of these.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • The pinctrl Kconfig options should have help messages. Add this to a few
    options.

    Signed-off-by: Simon Glass

    Simon Glass
     

01 Sep, 2015

1 commit


31 Aug, 2015

31 commits