If the property is not present the idle-state must
                            be considered operational.
 
+       - idle-state-name:
+               Usage: Optional
+               Value type: <string>
+               Definition: A string used as a descriptive name for the idle
+                           state.
+
        In addition to the properties listed above, a state node may require
        additional properties specifics to the entry-method defined in the
        idle-states node, please refer to the entry-method bindings
 
 {
        int err;
        const struct of_device_id *match_id;
+       const char *desc;
 
        match_id = of_match_node(matches, state_node);
        if (!match_id)
                return -EINVAL;
        }
 
+       err = of_property_read_string(state_node, "idle-state-name", &desc);
+       if (err)
+               desc = state_node->name;
+
        idle_state->flags = CPUIDLE_FLAG_TIME_VALID;
        if (of_property_read_bool(state_node, "local-timer-stop"))
                idle_state->flags |= CPUIDLE_FLAG_TIMER_STOP;
         *      and desc become string pointers
         */
        strncpy(idle_state->name, state_node->name, CPUIDLE_NAME_LEN - 1);
-       strncpy(idle_state->desc, state_node->name, CPUIDLE_DESC_LEN - 1);
+       strncpy(idle_state->desc, desc, CPUIDLE_DESC_LEN - 1);
        return 0;
 }