From 5540e25aebee68806012d7f23b19805dbbab7c18 Mon Sep 17 00:00:00 2001 From: Kever Yang Date: Mon, 24 Apr 2017 10:27:52 +0800 Subject: [PATCH] dm: sandbox: pwm: add test for pwm_set_invert() Add test case for new interface set_invert(). Signed-off-by: Kever Yang Acked-by: Simon Glass Fix typo in subject and build error in sandbox_pwm_set_invert(): Signed-off-by: Simon Glass --- drivers/pwm/sandbox_pwm.c | 16 ++++++++++++++++ test/dm/pwm.c | 1 + 2 files changed, 17 insertions(+) diff --git a/drivers/pwm/sandbox_pwm.c b/drivers/pwm/sandbox_pwm.c index c2ce974..fcb1084 100644 --- a/drivers/pwm/sandbox_pwm.c +++ b/drivers/pwm/sandbox_pwm.c @@ -21,6 +21,7 @@ struct sandbox_pwm_chan { uint period_ns; uint duty_ns; bool enable; + bool polarity; }; struct sandbox_pwm_priv { @@ -56,9 +57,24 @@ static int sandbox_pwm_set_enable(struct udevice *dev, uint channel, return 0; } +static int sandbox_pwm_set_invert(struct udevice *dev, uint channel, + bool polarity) +{ + struct sandbox_pwm_priv *priv = dev_get_priv(dev); + struct sandbox_pwm_chan *chan; + + if (channel >= NUM_CHANNELS) + return -ENOSPC; + chan = &priv->chan[channel]; + chan->polarity = polarity; + + return 0; +} + static const struct pwm_ops sandbox_pwm_ops = { .set_config = sandbox_pwm_set_config, .set_enable = sandbox_pwm_set_enable, + .set_invert = sandbox_pwm_set_invert, }; static const struct udevice_id sandbox_pwm_ids[] = { diff --git a/test/dm/pwm.c b/test/dm/pwm.c index 7bdc75a..f1e38c7 100644 --- a/test/dm/pwm.c +++ b/test/dm/pwm.c @@ -23,6 +23,7 @@ static int dm_test_pwm_base(struct unit_test_state *uts) ut_assertok(pwm_set_enable(dev, 1, true)); ut_assertok(pwm_set_enable(dev, 2, true)); ut_asserteq(-ENOSPC, pwm_set_enable(dev, 3, true)); + ut_assertok(pwm_set_invert(dev, 0, true)); ut_assertok(uclass_get_device(UCLASS_PWM, 1, &dev)); ut_asserteq(-ENODEV, uclass_get_device(UCLASS_PWM, 2, &dev));