Hi Kaneko-san,
On Fri, Mar 30, 2018 at 5:13 AM, Yoshihiro Kaneko <[email protected]> wrote:
> Add support for R-Car D3 (r8a77995) thermal sensor.
>
> Signed-off-by: Yoshihiro Kaneko <[email protected]>
Thanks for your patch!
> --- a/drivers/thermal/rcar_thermal.c
> +++ b/drivers/thermal/rcar_thermal.c
> @@ -58,10 +58,35 @@ struct rcar_thermal_common {
> spinlock_t lock;
> };
>
> +enum rcar_thermal_type {
> + RCAR_THERMAL,
> + RCAR_GEN2_THERMAL,
> + RCAR_GEN3_THERMAL,
> +};
> +
> +struct rcar_thermal_chip {
> + int use_of_thermal;
This can be a single bit:
unsigned int use_of_thermal : 1;
> + enum rcar_thermal_type type;
If you would add feature bits, you can get rid of rcar_thermal_type:
unsigned int has_filonoff : 1;
unsigned int has_enr : 1;
unsigned int needs_suspend_resume : 1;
The number of interrupts can be stored here, too.
> +};
> +
> +static const struct rcar_thermal_chip rcar_thermal = {
> + .use_of_thermal = 0,
> + .type = RCAR_THERMAL,
.has_filonoff = 1,
.has_enr = 0,
...
.nirqs = 1,
> @@ -190,7 +222,8 @@ static int rcar_thermal_update_temp(struct
> rcar_thermal_priv *priv)
> * enable IRQ
> */
> if (rcar_has_irq_support(priv)) {
> - rcar_thermal_write(priv, FILONOFF, 0);
> + if (priv->chip->type != RCAR_GEN3_THERMAL)
if (priv->chip->has_filonoff)
> @@ -438,6 +471,9 @@ static int rcar_thermal_probe(struct platform_device
> *pdev)
> struct rcar_thermal_priv *priv;
> struct device *dev = &pdev->dev;
> struct resource *res, *irq;
> + struct rcar_thermal_chip *chip = ((struct rcar_thermal_chip *)
I don't think the cast is needed.
> @@ -457,19 +493,35 @@ static int rcar_thermal_probe(struct platform_device
> *pdev)
> pm_runtime_enable(dev);
> pm_runtime_get_sync(dev);
>
> - irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
> - if (irq) {
> - /*
> - * platform has IRQ support.
> - * Then, driver uses common registers
> - * rcar_has_irq_support() will be enabled
> - */
> - res = platform_get_resource(pdev, IORESOURCE_MEM, mres++);
> - common->base = devm_ioremap_resource(dev, res);
> - if (IS_ERR(common->base))
> - return PTR_ERR(common->base);
> + for (i = 0; i < nirq; i++) {
for (i = 0; i < priv->nirqs; i++) {
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds