Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: Add missing omap4 secure clocks

The secure clocks on omap4 are similar to what we already have for dra7
in dra7_l4sec_clkctrl_regs and documented in the omap4460 TRM "Table
3-1346 L4PER_CM2 Registers Mapping Summary".

The secure clocks are part of the l4_per clock manager. As the l4_per
clock manager has now two clock domains as children, let's also update
the l4_per clockdomain node name to follow the "clock" node naming with
a domain specific compatible property.

Cc: devicetree@vger.kernel.org
Cc: Rob Herring <robh+dt@kernel.org>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>

+32 -3
+8 -3
arch/arm/boot/dts/omap44xx-clocks.dtsi
··· 1279 1279 #size-cells = <1>; 1280 1280 ranges = <0 0x1400 0x200>; 1281 1281 1282 - l4_per_clkctrl: clk@20 { 1283 - compatible = "ti,clkctrl"; 1282 + l4_per_clkctrl: clock@20 { 1283 + compatible = "ti,clkctrl-l4-per", "ti,clkctrl"; 1284 1284 reg = <0x20 0x144>; 1285 1285 #clock-cells = <2>; 1286 1286 }; 1287 - }; 1288 1287 1288 + l4_secure_clkctrl: clock@1a0 { 1289 + compatible = "ti,clkctrl-l4-secure", "ti,clkctrl"; 1290 + reg = <0x1a0 0x3c>; 1291 + #clock-cells = <2>; 1292 + }; 1293 + }; 1289 1294 }; 1290 1295 1291 1296 &prm {
+13
drivers/clk/ti/clk-44xx.c
··· 604 604 { 0 }, 605 605 }; 606 606 607 + static const struct 608 + omap_clkctrl_reg_data omap4_l4_secure_clkctrl_regs[] __initconst = { 609 + { OMAP4_AES1_CLKCTRL, NULL, CLKF_SW_SUP, "" }, 610 + { OMAP4_AES2_CLKCTRL, NULL, CLKF_SW_SUP, "" }, 611 + { OMAP4_DES3DES_CLKCTRL, NULL, CLKF_SW_SUP, "" }, 612 + { OMAP4_PKA_CLKCTRL, NULL, CLKF_SW_SUP, "" }, 613 + { OMAP4_RNG_CLKCTRL, NULL, CLKF_HW_SUP | CLKF_SOC_NONSEC, "" }, 614 + { OMAP4_SHA2MD5_CLKCTRL, NULL, CLKF_SW_SUP, "" }, 615 + { OMAP4_CRYPTODMA_CLKCTRL, NULL, CLKF_HW_SUP | CLKF_SOC_NONSEC, "" }, 616 + { 0 }, 617 + }; 618 + 607 619 static const struct omap_clkctrl_bit_data omap4_gpio1_bit_data[] __initconst = { 608 620 { 8, TI_CLK_GATE, omap4_gpio2_dbclk_parents, NULL }, 609 621 { 0 }, ··· 703 691 { 0x4a009220, omap4_l3_gfx_clkctrl_regs }, 704 692 { 0x4a009320, omap4_l3_init_clkctrl_regs }, 705 693 { 0x4a009420, omap4_l4_per_clkctrl_regs }, 694 + { 0x4a0095a0, omap4_l4_secure_clkctrl_regs }, 706 695 { 0x4a307820, omap4_l4_wkup_clkctrl_regs }, 707 696 { 0x4a307a20, omap4_emu_sys_clkctrl_regs }, 708 697 { 0 },
+11
include/dt-bindings/clock/omap4.h
··· 124 124 #define OMAP4_UART4_CLKCTRL OMAP4_CLKCTRL_INDEX(0x158) 125 125 #define OMAP4_MMC5_CLKCTRL OMAP4_CLKCTRL_INDEX(0x160) 126 126 127 + /* l4_secure clocks */ 128 + #define OMAP4_L4_SECURE_CLKCTRL_OFFSET 0x1a0 129 + #define OMAP4_L4_SECURE_CLKCTRL_INDEX(offset) ((offset) - OMAP4_L4_SECURE_CLKCTRL_OFFSET) 130 + #define OMAP4_AES1_CLKCTRL OMAP4_L4_SECURE_CLKCTRL_INDEX(0x1a0) 131 + #define OMAP4_AES2_CLKCTRL OMAP4_L4_SECURE_CLKCTRL_INDEX(0x1a8) 132 + #define OMAP4_DES3DES_CLKCTRL OMAP4_L4_SECURE_CLKCTRL_INDEX(0x1b0) 133 + #define OMAP4_PKA_CLKCTRL OMAP4_L4_SECURE_CLKCTRL_INDEX(0x1b8) 134 + #define OMAP4_RNG_CLKCTRL OMAP4_L4_SECURE_CLKCTRL_INDEX(0x1c0) 135 + #define OMAP4_SHA2MD5_CLKCTRL OMAP4_L4_SECURE_CLKCTRL_INDEX(0x1c8) 136 + #define OMAP4_CRYPTODMA_CLKCTRL OMAP4_L4_SECURE_CLKCTRL_INDEX(0x1d8) 137 + 127 138 /* l4_wkup clocks */ 128 139 #define OMAP4_L4_WKUP_CLKCTRL OMAP4_CLKCTRL_INDEX(0x20) 129 140 #define OMAP4_WD_TIMER2_CLKCTRL OMAP4_CLKCTRL_INDEX(0x30)