@@ -409,6 +409,7 @@ static struct regmap_config fsl_pwm_regmap_config = {
static int fsl_pwm_probe(struct platform_device *pdev)
{
+ struct device_node *np = pdev->dev.of_node;
struct fsl_pwm_chip *fpc;
struct resource *res;
void __iomem *base;
@@ -422,6 +423,11 @@ static int fsl_pwm_probe(struct platform_device *pdev)
fpc->chip.dev = &pdev->dev;
+ if (of_property_read_bool(np, "big-endian"))
+ fsl_pwm_regmap_config.val_format_endian = REGMAP_ENDIAN_BIG;
+ else
+ fsl_pwm_regmap_config.val_format_endian = REGMAP_ENDIAN_NATIVE;
+
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(base))
This add the big endianness support for the FTM PWM driver, which will run on LS1 SoC. Now for the following scenarios: SoC | CPU | FTM-PWM | 'big-endian' property is needed? ---------|--------|---------|--------------------------------- Vybird | LE | LE | No LS1 | LE | BE | Yes LS2 | LE | LE | No Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> --- drivers/pwm/pwm-fsl-ftm.c | 6 ++++++ 1 file changed, 6 insertions(+)