Linux Common Clock Framework - запретить отключение часов

Я хочу вывести тактовую частоту 600 кГц для синхронизации импульсного регулятора с моим i.MX6UL от NXP. Я указал часы в своем дереве устройств:

sync0: sync0 {
    #clock-cells = <0>;
    compatible = "pwm-clock";
    clock-output-names = "pwm_sync";
    pwms = <&pwm3 0 1667>;
    status = "okay";
};

У меня нет определенного потребителя в моем дереве устройств, потому что это не зависит от программного обеспечения, поэтому общая структура часов каждый раз отключает мои часы. Я могу отменить это с помощью clk_ignore_unused, но это предотвратит отключение всех часов. Есть ли способ принудительно включить только одни часы?


person Franz Forstmayr    schedule 25.02.2019    source источник


Ответы (1)


Вам нужно будет зарегистрировать этот clk отдельно в фреймворке ядра Linux с этим флагом CLK_IGNORE_UNUSED:

struct clk_init_data {
    const char      *name;
    const struct clk_ops    *ops;
    const char      * const *parent_names;
    u8          num_parents;
    unsigned long       flags;   // Here you have to pass CLK_IGNORE_UNUSED flag.
};
person Ayyappan Rathinam    schedule 16.07.2019
comment
Но нет способа указать это в дереве устройств для этих одиночных часов, я полагаю? - person Franz Forstmayr; 16.07.2019
comment
Это флаг ядра. Почему ты хочешь остаться в дтс? у вас несколько платформ? (или) или вы можете указать флаг clk_unused в параметрах uboot. - person Ayyappan Rathinam; 30.08.2019
comment
Есть только одни часы, на которых я хочу остаться, поэтому я подумал об узле дерева устройств. - person Franz Forstmayr; 30.08.2019
comment
нет необходимости вводить dts, если он только один. dts требуется для более чем одной платформы. - person Ayyappan Rathinam; 03.09.2019