[PATCH 1/8] of: provide of_machine_get_compatible()

Christophe Leroy (CS GROUP) chleroy at kernel.org
Mon Jan 19 03:06:51 PST 2026



Le 19/01/2026 à 11:40, Bartosz Golaszewski a écrit :
> Provide a helper function allowing users to read the compatible string
> of the machine, hiding the access to the root node.
> 
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski at oss.qualcomm.com>

Reviewed-by: Christophe Leroy (CS GROUP) <chleroy at kernel.org>

> ---
>   drivers/of/base.c  | 13 +++++++++++++
>   include/linux/of.h |  2 ++
>   2 files changed, 15 insertions(+)
> 
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 0b65039ece53aa90f30da2420a893a02ab4c6dd8..a7e27d5355929abd6d156b80c52f8f8b08fe6da1 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -434,6 +434,19 @@ bool of_machine_compatible_match(const char *const *compats)
>   }
>   EXPORT_SYMBOL(of_machine_compatible_match);
>   
> +/**
> + * of_machine_get_compatible - Get the compatible string of this machine
> + * @compatible: address at which the compatible string will be stored
> + *
> + * Returns:
> + * 0 on success, negative error number on failure.
> + */
> +int of_machine_get_compatible(const char **compatible)
> +{
> +	return of_property_read_string(of_root, "compatible", compatible);
> +}
> +EXPORT_SYMBOL_GPL(of_machine_get_compatible);
> +
>   /**
>    * of_machine_device_match - Test root of device tree against a of_device_id array
>    * @matches:	NULL terminated array of of_device_id match structures to search in
> diff --git a/include/linux/of.h b/include/linux/of.h
> index 9bbdcf25a2b448ba4ec5ddee8b35a105ca4aab8b..75423fb556ee4c108ce25144a0bdc252a89f7d1d 100644
> --- a/include/linux/of.h
> +++ b/include/linux/of.h
> @@ -426,6 +426,8 @@ static inline bool of_machine_is_compatible(const char *compat)
>   	return of_machine_compatible_match(compats);
>   }
>   
> +int of_machine_get_compatible(const char **compatible);
> +
>   extern int of_add_property(struct device_node *np, struct property *prop);
>   extern int of_remove_property(struct device_node *np, struct property *prop);
>   extern int of_update_property(struct device_node *np, struct property *newprop);
> 




More information about the linux-arm-kernel mailing list