blob: 4e20a220916dd6a74554c9446274bf9f353c77a4 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// The following is an example configuration of the clock attribute structure needed
// by clkmgr.
// This same format is generated as part of topgen.
// Clock Group attributes
// name: name of group.
//
// sw_cfg: whether software is allowed to gate the clock
// "no" - software is not allowed to gate clocks
// "yes" - software is allowed to gate clocks
// "hint" - software can provide a hint, and hw controls the rest
//
// unique: whether each module in the group can be separately gated
// if sw_cfg is "no", this field has no meaning
// "yes" - each clock is individually controlled
// "no" - the group is controlled as one single unit
//
// The powerup and proc groups are unique.
// The powerup group of clocks do not need through the clock
// controller as they manage clock controller behavior
// The proc group is not peripheral, and direclty hardwired
{
clocks:
{
srcs:
[
{
name: main
freq: "100000000"
}
{
name: fixed
freq: "100000000"
}
{
name: usb_48mhz
freq: "48000000"
}
]
groups:
[
{
name: powerup
sw_cg: no
unique: no
clocks:
{
clk_fixed_powerup: fixed
clk_main_powerup: main
clk_usb_48mhz_powerup: usb_48mhz
}
}
{
name: trans
sw_cg: hint
unique: yes
clocks:
{
clk_main_aes: main
clk_main_hmac: main
}
}
{
name: infra
sw_cg: no
unique: no
clocks:
{
clk_main_infra: main
clk_fixed_infra: fixed
}
}
{
name: secure
sw_cg: no
unique: no
clocks:
{
clk_fixed_secure: fixed
clk_main_secure: main
}
}
{
name: peri
sw_cg: yes
unique: no
clocks:
{
clk_fixed_peri: fixed
clk_usb_48mhz_peri: usb_48mhz
}
}
{
name: timers
sw_cg: no
unique: no
clocks:
{
clk_fixed_timers: fixed
}
}
{
name: proc
sw_cg: no
unique: no
clocks:
{
clk_proc_main: main
}
}
]
}
}