Hello, just a few smaller issues left to fix. On Sun, Apr 18, 2021 at 08:09:04PM +0900, Nobuhiro Iwamatsu wrote: > diff --git a/drivers/pwm/pwm-visconti.c b/drivers/pwm/pwm-visconti.c > new file mode 100644 > index 000000000000..166b18ac1a3a > --- /dev/null > +++ b/drivers/pwm/pwm-visconti.c > @@ -0,0 +1,188 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Toshiba Visconti pulse-width-modulation controller driver > + * > + * Copyright (c) 2020 TOSHIBA CORPORATION > + * Copyright (c) 2020 Toshiba Electronic Devices & Storage Corporation We're in 2021, so you might want to adapt the year in the copy right notice. > + * > + * Authors: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@xxxxxxxxxxxxx> > + * > + * Limitations: > + * - PIPGM_PWMC is a 2-bit divider (00: 1, 01: 2, 10: 4, 11: 8). This is too detailed for the purpose of this section. Please either drop it or make this: - The fixed input clock is running at 1 MHz and is divided by either 1, 2, 4 or 8. > + * - Fixed input clock running at 1 MHz. > + * - When the settings of the PWM are modified, the new values are shadowed > + * in hardware until the PIPGM_PCSR register is written and the currently > + * running period is completed. This way the hardware switches atomically > + * from the old setting to the new. > + * - Disabling the hardware completes the currently running period and keeps > + * the output at low level at all times. > + */ > + > [...] > + /* > + * PWMC controls a divider that divides the input clk by a > + * power of two between 1 and 8. As a smaller divider yields > + * higher precision, pick the smallest possible one. > + */ > + if (period > 0xffff) { > + pwmc0 = ilog2(period >> 16); > + BUG_ON(pwmc0 > 3); > + } else > + pwmc0 = 0; The linux coding style mandates that you should use braces for both branches. (i.e. + if (period > 0xffff) { + pwmc0 = ilog2(period >> 16); + BUG_ON(pwmc0 > 3); + } else { + pwmc0 = 0; + } ) > + period >>= pwmc0; > + duty_cycle >>= pwmc0; > + > + if (state->polarity == PWM_POLARITY_INVERSED) > + pwmc0 |= PIPGM_PWMC_PWMACT; > + writel(pwmc0, priv->base + PIPGM_PWMC(pwm->hwpwm)); > + writel(duty_cycle, priv->base + PIPGM_PDUT(pwm->hwpwm)); > + writel(period, priv->base + PIPGM_PCSR(pwm->hwpwm)); > + > + return 0; > +} Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |
Attachment:
signature.asc
Description: PGP signature