* an array of icc nodes specified in the icc_onecell_data struct when
  * registering the provider.
  */
-struct icc_node *of_icc_xlate_onecell(struct of_phandle_args *spec,
+struct icc_node *of_icc_xlate_onecell(const struct of_phandle_args *spec,
                                      void *data)
 {
        struct icc_onecell_data *icc_data = data;
  * Returns a valid pointer to struct icc_node_data on success or ERR_PTR()
  * on failure.
  */
-struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec)
+struct icc_node_data *of_icc_get_from_provider(const struct of_phandle_args *spec)
 {
        struct icc_node *node = ERR_PTR(-EPROBE_DEFER);
        struct icc_node_data *data = NULL;
 
 
 #include "icc-common.h"
 
-struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+struct icc_node_data *qcom_icc_xlate_extended(const struct of_phandle_args *spec,
+                                             void *data)
 {
        struct icc_node_data *ndata;
        struct icc_node *node;
 
 
 #include <linux/interconnect-provider.h>
 
-struct icc_node_data *qcom_icc_xlate_extended(struct of_phandle_args *spec, void *data);
+struct icc_node_data *qcom_icc_xlate_extended(const struct of_phandle_args *spec,
+                                             void *data);
 
 #endif
 
        return 0;
 }
 
-static struct icc_node *exynos_generic_icc_xlate(struct of_phandle_args *spec,
+static struct icc_node *exynos_generic_icc_xlate(const struct of_phandle_args *spec,
                                                 void *data)
 {
        struct exynos_icc_priv *priv = data;
 
        [6] = "SMMU translation error",
 };
 
-struct icc_node *tegra_mc_icc_xlate(struct of_phandle_args *spec, void *data)
+struct icc_node *tegra_mc_icc_xlate(const struct of_phandle_args *spec, void *data)
 {
        struct tegra_mc *mc = icc_provider_to_tegra_mc(data);
        struct icc_node *node;
 
 }
 
 static struct icc_node_data *
-emc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+emc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct icc_provider *provider = data;
        struct icc_node_data *ndata;
 
 }
 
 static struct icc_node_data *
-tegra124_mc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+tegra124_mc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct tegra_mc *mc = icc_provider_to_tegra_mc(data);
        const struct tegra_mc_client *client;
 
 }
 
 static struct icc_node *
-tegra_emc_of_icc_xlate(struct of_phandle_args *spec, void *data)
+tegra_emc_of_icc_xlate(const struct of_phandle_args *spec, void *data)
 {
        struct icc_provider *provider = data;
        struct icc_node *node;
 
 }
 
 static struct icc_node_data *
-emc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+emc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct icc_provider *provider = data;
        struct icc_node_data *ndata;
 
 }
 
 static struct icc_node_data *
-tegra20_mc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+tegra20_mc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct tegra_mc *mc = icc_provider_to_tegra_mc(data);
        unsigned int i, idx = spec->args[0];
 
 }
 
 static struct icc_node_data *
-emc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+emc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct icc_provider *provider = data;
        struct icc_node_data *ndata;
 
 }
 
 static struct icc_node_data *
-tegra30_mc_of_icc_xlate_extended(struct of_phandle_args *spec, void *data)
+tegra30_mc_of_icc_xlate_extended(const struct of_phandle_args *spec, void *data)
 {
        struct tegra_mc *mc = icc_provider_to_tegra_mc(data);
        const struct tegra_mc_client *client;
 
        struct icc_node *nodes[] __counted_by(num_nodes);
 };
 
-struct icc_node *of_icc_xlate_onecell(struct of_phandle_args *spec,
+struct icc_node *of_icc_xlate_onecell(const struct of_phandle_args *spec,
                                      void *data);
 
 /**
                         u32 peak_bw, u32 *agg_avg, u32 *agg_peak);
        void (*pre_aggregate)(struct icc_node *node);
        int (*get_bw)(struct icc_node *node, u32 *avg, u32 *peak);
-       struct icc_node* (*xlate)(struct of_phandle_args *spec, void *data);
-       struct icc_node_data* (*xlate_extended)(struct of_phandle_args *spec, void *data);
+       struct icc_node* (*xlate)(const struct of_phandle_args *spec, void *data);
+       struct icc_node_data* (*xlate_extended)(const struct of_phandle_args *spec,
+                                               void *data);
        struct device           *dev;
        int                     users;
        bool                    inter_set;
 void icc_provider_init(struct icc_provider *provider);
 int icc_provider_register(struct icc_provider *provider);
 void icc_provider_deregister(struct icc_provider *provider);
-struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec);
+struct icc_node_data *of_icc_get_from_provider(const struct of_phandle_args *spec);
 void icc_sync_state(struct device *dev);
 
 #else
 
 static inline void icc_provider_deregister(struct icc_provider *provider) { }
 
-static inline struct icc_node_data *of_icc_get_from_provider(struct of_phandle_args *spec)
+static inline struct icc_node_data *of_icc_get_from_provider(const struct of_phandle_args *spec)
 {
        return ERR_PTR(-ENOTSUPP);
 }
 
        int (*set)(struct icc_node *src, struct icc_node *dst);
        int (*aggregate)(struct icc_node *node, u32 tag, u32 avg_bw,
                         u32 peak_bw, u32 *agg_avg, u32 *agg_peak);
-       struct icc_node* (*xlate)(struct of_phandle_args *spec, void *data);
-       struct icc_node_data *(*xlate_extended)(struct of_phandle_args *spec,
+       struct icc_node* (*xlate)(const struct of_phandle_args *spec, void *data);
+       struct icc_node_data *(*xlate_extended)(const struct of_phandle_args *spec,
                                                void *data);
        int (*get_bw)(struct icc_node *node, u32 *avg, u32 *peak);
 };
 
-struct icc_node *tegra_mc_icc_xlate(struct of_phandle_args *spec, void *data);
+struct icc_node *tegra_mc_icc_xlate(const struct of_phandle_args *spec,
+                                   void *data);
 extern const struct tegra_mc_icc_ops tegra_mc_icc_ops;
 
 struct tegra_mc_ops {