
This series provides a number of new features and improvements leading to enabling the keyboard (via Chrome OS EC) on jerry. This is conneected via SPI and uses its own message protocol.
Features and fixes are needed in the rockchip code to make this work include: - RK808 PMIC and regulator driver - Fixes and improvements to the i2c and SPI drivers - A full implementation of the GPIO driver - Additional clock support - Additional pinctrl support
The series moves a few rockchip boards to use the full pinctrl driver. I'm not sure this is a great idea, as it slows down start-up noticeably. It is currently needed for the display series (to come), but I intend to change that.
Simon Glass (50): dm: clk: Add support for decoding clocks from the device tree dm: core: Don't set pinctrl for pinctrl devices dm: pinctrl: Add a function to parse PIN_CONFIG flags dm: pmic: Add 'reg status' to show all regulators dts: Bring in pinctrl device tree binding power: Add base support for the RK808 PMIC power: Add support for RK808 regulators dm: Add a power sequencing uclass rockchip: Avoid using MMC code when not booting from MMC rockchip: Convert the PMU IOMUX registers into an array rockchip: mmc: Use a pwrseq device if available rockchip: Correct the defconfig order rockchip: Use pwrseq for MMC start-up on jerry rockchip: jerry: Disable pmic-int-1 setup to avoid a hang rockchip: Use a separate clock ID for clocks rockchip: clock: Rename the general clock variable to gclk_rate rockchip: clk: Add a function to get a peripheral clock rate rockchip: clock: Add a function to find a clock by ID rockchip: i2c: Update the driver to use the new clock ID rockchip: spi: Update the driver to use the new clock ID rockchip: spi: Avoid setting the pinctrl twice rockchip: mmc: Update the driver to use the new clock ID rockchip: pinctrl: Add a full pinctrl driver rockchip: Move firefly and jerry to use the full pinctrl rockchip: jerry: Enable the RK808 PMIC and regulator rockchip: Disable simple-bus in SPL for firefly-rk3288, jerry rockchip: jerry: Drop unused options gpio: Allow 's' as an abbreviation for 'status' cros_ec: Disable the Chrome OS EC in SPL dm: i2c: Allow muxes to be enabled for SPL separately spi: Correct device tree usage in spi_flash_decode_fdt() dm: power: Allow regulators to be omitted from SPL dm: pinctrl: Add a way for a GPIO driver to obtain a pin function dm: core: Export uclass_find_device_by_of_offset() dm: power: Tidy up debugging output and return values dm: power: Allow regulators to not implement all operations dm: clk: Add a simple version of clk_get_by_index() rockchip: sdram: Use the rk_clr/setreg() interface rockchip: reset: Use the rk_clr/setreg() interface rockchip: spi: Remember the last speed to avoid re-setting it rockchip: spi: Correct the bus init code rockchip: clk: Make rkclk_get_clk() SoC-specific rockchip: pinctrl: Reduce the size for SPL rockchip: pinctrl: Implement the get_gpio_mux() method rockchip: gpio: Read the GPIO value correctly rockchip: gpio: Implement the get_function() method rockchip: spi: Implement the delays rockchip: spi: Correct chip-enable code rockchip: spi: Remove the explicit pinctrl setting rockchip: jerry: Enable the Chrome OS EC
arch/arm/dts/rk3288-veyron-chromebook.dtsi | 4 + arch/arm/dts/rk3288-veyron.dtsi | 20 +- arch/arm/include/asm/arch-rockchip/clock.h | 12 + arch/arm/include/asm/arch-rockchip/pmu_rk3288.h | 12 +- arch/arm/mach-rockchip/Makefile | 1 - arch/arm/mach-rockchip/common.c | 28 -- arch/arm/mach-rockchip/rk3288-board-spl.c | 2 + arch/arm/mach-rockchip/rk3288/reset_rk3288.c | 4 +- arch/arm/mach-rockchip/rk3288/sdram_rk3288.c | 7 +- common/cmd_gpio.c | 2 +- common/cmd_regulator.c | 66 ++++- configs/chromebook_jerry_defconfig | 25 +- configs/firefly-rk3288_defconfig | 7 +- .../pinctrl/pinctrl-bindings.txt | 236 ++++++++++++++++ drivers/clk/clk-uclass.c | 46 ++++ drivers/clk/clk_rk3036.c | 33 ++- drivers/clk/clk_rk3288.c | 157 ++++++++--- drivers/core/device.c | 6 +- drivers/core/uclass.c | 4 +- drivers/gpio/rk_gpio.c | 42 ++- drivers/i2c/Makefile | 4 +- drivers/i2c/muxes/Kconfig | 9 + drivers/i2c/muxes/Makefile | 2 +- drivers/i2c/rk_i2c.c | 37 +-- drivers/misc/Kconfig | 18 ++ drivers/misc/Makefile | 3 + drivers/misc/pwrseq-uclass.c | 24 ++ drivers/mmc/rockchip_dw_mmc.c | 57 +++- drivers/mtd/spi/spi_flash.c | 9 +- drivers/pinctrl/pinctrl-uclass.c | 22 ++ drivers/pinctrl/rockchip/pinctrl_rk3288.c | 290 +++++++++++++++++++- drivers/power/pmic/Kconfig | 30 ++ drivers/power/pmic/Makefile | 1 + drivers/power/pmic/pmic-uclass.c | 13 +- drivers/power/pmic/rk808.c | 102 +++++++ drivers/power/regulator/Kconfig | 18 ++ drivers/power/regulator/Makefile | 5 +- drivers/power/regulator/regulator-uclass.c | 4 +- drivers/power/regulator/rk808.c | 301 +++++++++++++++++++++ drivers/spi/rk_spi.c | 83 +++--- include/clk.h | 15 + include/configs/chromebook_jerry.h | 9 + include/configs/firefly-rk3288.h | 2 + include/configs/rk3288_common.h | 8 + include/dm/pinctrl.h | 45 +++ include/dm/uclass-id.h | 1 + include/dm/uclass-internal.h | 16 ++ include/power/rk808_pmic.h | 77 ++++++ include/pwrseq.h | 18 ++ 49 files changed, 1731 insertions(+), 206 deletions(-) delete mode 100644 arch/arm/mach-rockchip/common.c create mode 100644 doc/device-tree-bindings/pinctrl/pinctrl-bindings.txt create mode 100644 drivers/misc/pwrseq-uclass.c create mode 100644 drivers/power/pmic/rk808.c create mode 100644 drivers/power/regulator/rk808.c create mode 100644 include/power/rk808_pmic.h create mode 100644 include/pwrseq.h