Loading arch/arm/mach-qcom/Kconfig +11 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,17 @@ config ARCH_MSM8953 select HAVE_CLK_PREPARE select COMMON_CLK_MSM config ARCH_MSM8953_BOOT_ORDERING bool "Enable support for MSM8953 device boot ordering" default n help Populate devices from devicetree at late_init, after drivers for all platform devices have been registered. This causes devices to be probed in the order they are listed in devicetree. Thus it is possible to have greater control over the probe ordering such that overall boot time can be reduced. config ARCH_MSM8937 bool "Enable support for MSM8937" select CPU_V7 Loading arch/arm/mach-qcom/board-msm8953.c +17 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ #include "board-dt.h" #include <asm/mach/map.h> #include <asm/mach/arch.h> #include <linux/of_platform.h> static const char *msm8953_dt_match[] __initconst = { "qcom,msm8953", Loading @@ -23,9 +24,25 @@ static const char *msm8953_dt_match[] __initconst = { static void __init msm8953_init(void) { if (IS_ENABLED(CONFIG_ARCH_MSM8953_BOOT_ORDERING)) return; board_dt_populate(NULL); } #ifdef CONFIG_ARCH_MSM8953_BOOT_ORDERING static int __init msm8953_dt_populate(void) { of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); /* Explicitly parent the /soc devices to the root node to preserve * the kernel ABI (sysfs structure, etc) until userspace is updated */ of_platform_populate(of_find_node_by_path("/soc"), of_default_bus_match_table, NULL, NULL); } late_initcall(msm8953_dt_populate); #endif DT_MACHINE_START(MSM8953_DT, "Qualcomm Technologies, Inc. MSM8953 (Flattened Device Tree)") .init_machine = msm8953_init, Loading arch/arm64/boot/dts/qcom/msm8953.dtsi +13 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/regulator/qcom,rpm-smd-regulator.h> #include <dt-bindings/clock/msm-clocks-8953.h> #include <dt-bindings/msm/msm-bus-ids.h> / { model = "Qualcomm Technologies, Inc. MSM8953"; Loading Loading @@ -168,7 +169,18 @@ spi3 = &spi_3; }; soc: soc { }; soc: soc { /* * The ordering of these devices is important to boot time * for iot projects. */ smem: qcom,smem@86300000 {}; rpm_bus: qcom,rpm-smd {}; clock_gcc: qcom,gcc@1800000 {}; ad_hoc_bus: ad-hoc-bus@580000 {}; tlmm: pinctrl@1000000 {}; sdhc_1: sdhci@7824900 {}; }; }; Loading drivers/of/platform.c +1 −1 Original line number Diff line number Diff line Loading @@ -502,7 +502,7 @@ int of_platform_default_populate(struct device_node *root, } EXPORT_SYMBOL_GPL(of_platform_default_populate); #ifndef CONFIG_PPC #if !defined(CONFIG_PPC) && !defined(CONFIG_ARCH_MSM8953_BOOT_ORDERING) static int __init of_platform_default_populate_init(void) { struct device_node *node; Loading Loading
arch/arm/mach-qcom/Kconfig +11 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,17 @@ config ARCH_MSM8953 select HAVE_CLK_PREPARE select COMMON_CLK_MSM config ARCH_MSM8953_BOOT_ORDERING bool "Enable support for MSM8953 device boot ordering" default n help Populate devices from devicetree at late_init, after drivers for all platform devices have been registered. This causes devices to be probed in the order they are listed in devicetree. Thus it is possible to have greater control over the probe ordering such that overall boot time can be reduced. config ARCH_MSM8937 bool "Enable support for MSM8937" select CPU_V7 Loading
arch/arm/mach-qcom/board-msm8953.c +17 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ #include "board-dt.h" #include <asm/mach/map.h> #include <asm/mach/arch.h> #include <linux/of_platform.h> static const char *msm8953_dt_match[] __initconst = { "qcom,msm8953", Loading @@ -23,9 +24,25 @@ static const char *msm8953_dt_match[] __initconst = { static void __init msm8953_init(void) { if (IS_ENABLED(CONFIG_ARCH_MSM8953_BOOT_ORDERING)) return; board_dt_populate(NULL); } #ifdef CONFIG_ARCH_MSM8953_BOOT_ORDERING static int __init msm8953_dt_populate(void) { of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); /* Explicitly parent the /soc devices to the root node to preserve * the kernel ABI (sysfs structure, etc) until userspace is updated */ of_platform_populate(of_find_node_by_path("/soc"), of_default_bus_match_table, NULL, NULL); } late_initcall(msm8953_dt_populate); #endif DT_MACHINE_START(MSM8953_DT, "Qualcomm Technologies, Inc. MSM8953 (Flattened Device Tree)") .init_machine = msm8953_init, Loading
arch/arm64/boot/dts/qcom/msm8953.dtsi +13 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/regulator/qcom,rpm-smd-regulator.h> #include <dt-bindings/clock/msm-clocks-8953.h> #include <dt-bindings/msm/msm-bus-ids.h> / { model = "Qualcomm Technologies, Inc. MSM8953"; Loading Loading @@ -168,7 +169,18 @@ spi3 = &spi_3; }; soc: soc { }; soc: soc { /* * The ordering of these devices is important to boot time * for iot projects. */ smem: qcom,smem@86300000 {}; rpm_bus: qcom,rpm-smd {}; clock_gcc: qcom,gcc@1800000 {}; ad_hoc_bus: ad-hoc-bus@580000 {}; tlmm: pinctrl@1000000 {}; sdhc_1: sdhci@7824900 {}; }; }; Loading
drivers/of/platform.c +1 −1 Original line number Diff line number Diff line Loading @@ -502,7 +502,7 @@ int of_platform_default_populate(struct device_node *root, } EXPORT_SYMBOL_GPL(of_platform_default_populate); #ifndef CONFIG_PPC #if !defined(CONFIG_PPC) && !defined(CONFIG_ARCH_MSM8953_BOOT_ORDERING) static int __init of_platform_default_populate_init(void) { struct device_node *node; Loading