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

Configure Feed

Select the types of activity you want to include in your feed.

at v4.13 78 lines 2.7 kB view raw
1/* 2 * Renesas R-Car H3 System Controller 3 * 4 * Copyright (C) 2016-2017 Glider bvba 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; version 2 of the License. 9 */ 10 11#include <linux/bug.h> 12#include <linux/kernel.h> 13#include <linux/sys_soc.h> 14 15#include <dt-bindings/power/r8a7795-sysc.h> 16 17#include "rcar-sysc.h" 18 19static struct rcar_sysc_area r8a7795_areas[] __initdata = { 20 { "always-on", 0, 0, R8A7795_PD_ALWAYS_ON, -1, PD_ALWAYS_ON }, 21 { "ca57-scu", 0x1c0, 0, R8A7795_PD_CA57_SCU, R8A7795_PD_ALWAYS_ON, 22 PD_SCU }, 23 { "ca57-cpu0", 0x80, 0, R8A7795_PD_CA57_CPU0, R8A7795_PD_CA57_SCU, 24 PD_CPU_NOCR }, 25 { "ca57-cpu1", 0x80, 1, R8A7795_PD_CA57_CPU1, R8A7795_PD_CA57_SCU, 26 PD_CPU_NOCR }, 27 { "ca57-cpu2", 0x80, 2, R8A7795_PD_CA57_CPU2, R8A7795_PD_CA57_SCU, 28 PD_CPU_NOCR }, 29 { "ca57-cpu3", 0x80, 3, R8A7795_PD_CA57_CPU3, R8A7795_PD_CA57_SCU, 30 PD_CPU_NOCR }, 31 { "ca53-scu", 0x140, 0, R8A7795_PD_CA53_SCU, R8A7795_PD_ALWAYS_ON, 32 PD_SCU }, 33 { "ca53-cpu0", 0x200, 0, R8A7795_PD_CA53_CPU0, R8A7795_PD_CA53_SCU, 34 PD_CPU_NOCR }, 35 { "ca53-cpu1", 0x200, 1, R8A7795_PD_CA53_CPU1, R8A7795_PD_CA53_SCU, 36 PD_CPU_NOCR }, 37 { "ca53-cpu2", 0x200, 2, R8A7795_PD_CA53_CPU2, R8A7795_PD_CA53_SCU, 38 PD_CPU_NOCR }, 39 { "ca53-cpu3", 0x200, 3, R8A7795_PD_CA53_CPU3, R8A7795_PD_CA53_SCU, 40 PD_CPU_NOCR }, 41 { "a3vp", 0x340, 0, R8A7795_PD_A3VP, R8A7795_PD_ALWAYS_ON }, 42 { "cr7", 0x240, 0, R8A7795_PD_CR7, R8A7795_PD_ALWAYS_ON }, 43 { "a3vc", 0x380, 0, R8A7795_PD_A3VC, R8A7795_PD_ALWAYS_ON }, 44 /* A2VC0 exists on ES1.x only */ 45 { "a2vc0", 0x3c0, 0, R8A7795_PD_A2VC0, R8A7795_PD_A3VC }, 46 { "a2vc1", 0x3c0, 1, R8A7795_PD_A2VC1, R8A7795_PD_A3VC }, 47 { "3dg-a", 0x100, 0, R8A7795_PD_3DG_A, R8A7795_PD_ALWAYS_ON }, 48 { "3dg-b", 0x100, 1, R8A7795_PD_3DG_B, R8A7795_PD_3DG_A }, 49 { "3dg-c", 0x100, 2, R8A7795_PD_3DG_C, R8A7795_PD_3DG_B }, 50 { "3dg-d", 0x100, 3, R8A7795_PD_3DG_D, R8A7795_PD_3DG_C }, 51 { "3dg-e", 0x100, 4, R8A7795_PD_3DG_E, R8A7795_PD_3DG_D }, 52 { "a3ir", 0x180, 0, R8A7795_PD_A3IR, R8A7795_PD_ALWAYS_ON }, 53}; 54 55 56 /* 57 * Fixups for R-Car H3 revisions after ES1.x 58 */ 59 60static const struct soc_device_attribute r8a7795es1[] __initconst = { 61 { .soc_id = "r8a7795", .revision = "ES1.*" }, 62 { /* sentinel */ } 63}; 64 65static int __init r8a7795_sysc_init(void) 66{ 67 if (!soc_device_match(r8a7795es1)) 68 rcar_sysc_nullify(r8a7795_areas, ARRAY_SIZE(r8a7795_areas), 69 R8A7795_PD_A2VC0); 70 71 return 0; 72} 73 74const struct rcar_sysc_info r8a7795_sysc_info __initconst = { 75 .init = r8a7795_sysc_init, 76 .areas = r8a7795_areas, 77 .num_areas = ARRAY_SIZE(r8a7795_areas), 78};