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

MIPS: TXx9: Add TX4939 RNG support

Add platform support for RNG of TX4939 SoC.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

authored by

Atsushi Nemoto and committed by
Ralf Baechle
923e3819 049a947c

+21
+3
arch/mips/include/asm/txx9/tx4939.h
··· 45 45 #define TX4939_RTC_REG (TX4939_REG_BASE + 0xfb00) 46 46 #define TX4939_CIR_REG (TX4939_REG_BASE + 0xfc00) 47 47 48 + #define TX4939_RNG_REG (TX4939_CRYPTO_REG + 0xb0) 49 + 48 50 struct tx4939_le_reg { 49 51 __u32 r; 50 52 __u32 unused; ··· 549 547 void tx4939_dmac_init(int memcpy_chan0, int memcpy_chan1); 550 548 void tx4939_aclc_init(void); 551 549 void tx4939_sramc_init(void); 550 + void tx4939_rng_init(void); 552 551 553 552 #endif /* __ASM_TXX9_TX4939_H */
+17
arch/mips/txx9/generic/setup_tx4939.c
··· 500 500 txx9_sramc_init(&tx4939_sram_resource); 501 501 } 502 502 503 + void __init tx4939_rng_init(void) 504 + { 505 + static struct resource res = { 506 + .start = TX4939_RNG_REG & 0xfffffffffULL, 507 + .end = (TX4939_RNG_REG & 0xfffffffffULL) + 0x30 - 1, 508 + .flags = IORESOURCE_MEM, 509 + }; 510 + static struct platform_device pdev = { 511 + .name = "tx4939-rng", 512 + .id = -1, 513 + .num_resources = 1, 514 + .resource = &res, 515 + }; 516 + 517 + platform_device_register(&pdev); 518 + } 519 + 503 520 static void __init tx4939_stop_unused_modules(void) 504 521 { 505 522 __u64 pcfg, rst = 0, ckd = 0;
+1
arch/mips/txx9/rbtx4939/setup.c
··· 502 502 tx4939_aclc_init(); 503 503 platform_device_register_simple("txx9aclc-generic", -1, NULL, 0); 504 504 tx4939_sramc_init(); 505 + tx4939_rng_init(); 505 506 } 506 507 507 508 static void __init rbtx4939_setup(void)