| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0 |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * R-Car Gen1 RESET/WDT, R-Car Gen2, Gen3, and RZ/G RST Driver |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright (C) 2016 Glider bvba |
|---|
| 5 | | - * |
|---|
| 6 | | - * This file is subject to the terms and conditions of the GNU General Public |
|---|
| 7 | | - * License. See the file "COPYING" in the main directory of this archive |
|---|
| 8 | | - * for more details. |
|---|
| 9 | 6 | */ |
|---|
| 10 | 7 | |
|---|
| 11 | 8 | #include <linux/err.h> |
|---|
| .. | .. |
|---|
| 24 | 21 | |
|---|
| 25 | 22 | struct rst_config { |
|---|
| 26 | 23 | unsigned int modemr; /* Mode Monitoring Register Offset */ |
|---|
| 27 | | - int (*configure)(void *base); /* Platform specific configuration */ |
|---|
| 24 | + int (*configure)(void __iomem *base); /* Platform specific config */ |
|---|
| 28 | 25 | }; |
|---|
| 29 | 26 | |
|---|
| 30 | 27 | static const struct rst_config rcar_rst_gen1 __initconst = { |
|---|
| .. | .. |
|---|
| 40 | 37 | .modemr = 0x60, |
|---|
| 41 | 38 | }; |
|---|
| 42 | 39 | |
|---|
| 40 | +static const struct rst_config rcar_rst_r8a779a0 __initconst = { |
|---|
| 41 | + .modemr = 0x00, /* MODEMR0 and it has CPG related bits */ |
|---|
| 42 | +}; |
|---|
| 43 | + |
|---|
| 43 | 44 | static const struct of_device_id rcar_rst_matches[] __initconst = { |
|---|
| 44 | | - /* RZ/G is handled like R-Car Gen2 */ |
|---|
| 45 | + /* RZ/G1 is handled like R-Car Gen2 */ |
|---|
| 46 | + { .compatible = "renesas,r8a7742-rst", .data = &rcar_rst_gen2 }, |
|---|
| 45 | 47 | { .compatible = "renesas,r8a7743-rst", .data = &rcar_rst_gen2 }, |
|---|
| 48 | + { .compatible = "renesas,r8a7744-rst", .data = &rcar_rst_gen2 }, |
|---|
| 46 | 49 | { .compatible = "renesas,r8a7745-rst", .data = &rcar_rst_gen2 }, |
|---|
| 47 | 50 | { .compatible = "renesas,r8a77470-rst", .data = &rcar_rst_gen2 }, |
|---|
| 51 | + /* RZ/G2 is handled like R-Car Gen3 */ |
|---|
| 52 | + { .compatible = "renesas,r8a774a1-rst", .data = &rcar_rst_gen3 }, |
|---|
| 53 | + { .compatible = "renesas,r8a774b1-rst", .data = &rcar_rst_gen3 }, |
|---|
| 54 | + { .compatible = "renesas,r8a774c0-rst", .data = &rcar_rst_gen3 }, |
|---|
| 55 | + { .compatible = "renesas,r8a774e1-rst", .data = &rcar_rst_gen3 }, |
|---|
| 48 | 56 | /* R-Car Gen1 */ |
|---|
| 49 | 57 | { .compatible = "renesas,r8a7778-reset-wdt", .data = &rcar_rst_gen1 }, |
|---|
| 50 | 58 | { .compatible = "renesas,r8a7779-reset-wdt", .data = &rcar_rst_gen1 }, |
|---|
| .. | .. |
|---|
| 57 | 65 | /* R-Car Gen3 */ |
|---|
| 58 | 66 | { .compatible = "renesas,r8a7795-rst", .data = &rcar_rst_gen3 }, |
|---|
| 59 | 67 | { .compatible = "renesas,r8a7796-rst", .data = &rcar_rst_gen3 }, |
|---|
| 68 | + { .compatible = "renesas,r8a77961-rst", .data = &rcar_rst_gen3 }, |
|---|
| 60 | 69 | { .compatible = "renesas,r8a77965-rst", .data = &rcar_rst_gen3 }, |
|---|
| 61 | 70 | { .compatible = "renesas,r8a77970-rst", .data = &rcar_rst_gen3 }, |
|---|
| 62 | 71 | { .compatible = "renesas,r8a77980-rst", .data = &rcar_rst_gen3 }, |
|---|
| 63 | 72 | { .compatible = "renesas,r8a77990-rst", .data = &rcar_rst_gen3 }, |
|---|
| 64 | 73 | { .compatible = "renesas,r8a77995-rst", .data = &rcar_rst_gen3 }, |
|---|
| 74 | + /* R-Car V3U */ |
|---|
| 75 | + { .compatible = "renesas,r8a779a0-rst", .data = &rcar_rst_r8a779a0 }, |
|---|
| 65 | 76 | { /* sentinel */ } |
|---|
| 66 | 77 | }; |
|---|
| 67 | 78 | |
|---|