From ddefad7c4f48e5107aec1e92db620196c0d04101 Mon Sep 17 00:00:00 2001 From: Emmanuel Vadot Date: Tue, 8 Aug 2023 15:24:33 +0200 Subject: [PATCH] arm64: rockchip: Tweak i2c, pmic and iodomain order We need i2c first to set it to MIDDLE, then we need one of the pmics so set them to LATE, only then we can attach iodomain which needs some regulators exposed by the pmic so set it to LAST. Sponsored by: Beckhoff Automation GmbH & Co. KG --- sys/arm64/rockchip/rk_i2c.c | 4 ++-- sys/arm64/rockchip/rk_iodomain.c | 2 +- sys/dev/iicbus/pmic/rockchip/rk805.c | 4 ++-- sys/dev/iicbus/pmic/rockchip/rk808.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/arm64/rockchip/rk_i2c.c b/sys/arm64/rockchip/rk_i2c.c index e3824ba843f..b9f0fd59212 100644 --- a/sys/arm64/rockchip/rk_i2c.c +++ b/sys/arm64/rockchip/rk_i2c.c @@ -727,8 +727,8 @@ static driver_t rk_i2c_driver = { }; EARLY_DRIVER_MODULE(rk_i2c, simplebus, rk_i2c_driver, 0, 0, - BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); + BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); EARLY_DRIVER_MODULE(ofw_iicbus, rk_i2c, ofw_iicbus_driver, - 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); + 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); MODULE_DEPEND(rk_i2c, iicbus, 1, 1, 1); MODULE_VERSION(rk_i2c, 1); diff --git a/sys/arm64/rockchip/rk_iodomain.c b/sys/arm64/rockchip/rk_iodomain.c index 2bbd1e49586..3b85192eb33 100644 --- a/sys/arm64/rockchip/rk_iodomain.c +++ b/sys/arm64/rockchip/rk_iodomain.c @@ -301,4 +301,4 @@ static driver_t rk_iodomain_driver = { }; EARLY_DRIVER_MODULE(rk_iodomain, simplebus, rk_iodomain_driver, 0, 0, - BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); + BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LAST); diff --git a/sys/dev/iicbus/pmic/rockchip/rk805.c b/sys/dev/iicbus/pmic/rockchip/rk805.c index 4ba4ca66610..9910515412a 100644 --- a/sys/dev/iicbus/pmic/rockchip/rk805.c +++ b/sys/dev/iicbus/pmic/rockchip/rk805.c @@ -193,8 +193,8 @@ DEFINE_CLASS_1(rk805_pmu, rk805_driver, rk805_methods, sizeof(struct rk8xx_softc), rk8xx_driver); EARLY_DRIVER_MODULE(rk805_pmu, iicbus, rk805_driver, 0, 0, - BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LAST); + BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); EARLY_DRIVER_MODULE(iicbus, rk805_pmu, iicbus_driver, 0, 0, - BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LAST); + BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); MODULE_DEPEND(rk805_pmu, iicbus, IICBUS_MINVER, IICBUS_PREFVER, IICBUS_MAXVER); MODULE_VERSION(rk805_pmu, 1); diff --git a/sys/dev/iicbus/pmic/rockchip/rk808.c b/sys/dev/iicbus/pmic/rockchip/rk808.c index 13ba4415844..f6797fe4bf5 100644 --- a/sys/dev/iicbus/pmic/rockchip/rk808.c +++ b/sys/dev/iicbus/pmic/rockchip/rk808.c @@ -268,8 +268,8 @@ DEFINE_CLASS_1(rk808_pmu, rk808_driver, rk808_methods, sizeof(struct rk8xx_softc), rk8xx_driver); EARLY_DRIVER_MODULE(rk808_pmu, iicbus, rk808_driver, 0, 0, - BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LAST); + BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); EARLY_DRIVER_MODULE(iicbus, rk808_pmu, iicbus_driver, 0, 0, - BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LAST); + BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); MODULE_DEPEND(rk808_pmu, iicbus, IICBUS_MINVER, IICBUS_PREFVER, IICBUS_MAXVER); MODULE_VERSION(rk808_pmu, 1);