Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 476d924d authored by Ramprasad Katkam's avatar Ramprasad Katkam
Browse files

asoc: bolero: get slew rate value from device tree



trinket has a different slew rate value than talos/moorea.
Hence the slew rate value is read from device tree instead of
using fixed value.

Change-Id: I45955ff91a210e6fe93c70d801673480b7ca978e
Signed-off-by: default avatarRamprasad Katkam <katkam@codeaurora.org>
parent a4e5b433
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -854,6 +854,7 @@ static int bolero_probe(struct platform_device *pdev)
	u32 num_macros = 0;
	int ret;
	u32 slew_reg1 = 0, slew_reg2 = 0;
	u32 slew_val1 = 0, slew_val2 = 0;
	char __iomem *slew_io_base1 = NULL, *slew_io_base2 = NULL;

	priv = devm_kzalloc(&pdev->dev, sizeof(struct bolero_priv),
@@ -902,9 +903,9 @@ static int bolero_probe(struct platform_device *pdev)

	ret = of_property_read_u32(pdev->dev.of_node, "slew_rate_reg1",
				   &slew_reg1);
	ret |= of_property_read_u32(pdev->dev.of_node, "slew_rate_reg2",
				   &slew_reg2);

	ret |= of_property_read_u32(pdev->dev.of_node, "slew_rate_val1",
				   &slew_val1);
	if (!ret) {
		slew_io_base1 = devm_ioremap(&pdev->dev, slew_reg1, 0x4);
		if (!slew_io_base1) {
@@ -912,17 +913,24 @@ static int bolero_probe(struct platform_device *pdev)
				__func__);
			return -ENOMEM;
		}
		/* update slew rate for tx/rx swr interface */
		iowrite32(slew_val1, slew_io_base1);
	}
	ret = of_property_read_u32(pdev->dev.of_node, "slew_rate_reg2",
				   &slew_reg2);

	ret |= of_property_read_u32(pdev->dev.of_node, "slew_rate_val2",
				   &slew_val2);

	if (!ret) {
		slew_io_base2 = devm_ioremap(&pdev->dev, slew_reg2, 0x4);
		if (!slew_io_base2) {
			dev_err(&pdev->dev, "%s: ioremap failed for slew reg 2\n",
				__func__);
			return -ENOMEM;
		}

		/* update slew rate for tx/rx swr interface */
		iowrite32(0x3333, slew_io_base1);
		iowrite32(0xF, slew_io_base2);
		iowrite32(slew_val2, slew_io_base2);
	}
	INIT_WORK(&priv->bolero_add_child_devices_work,
		  bolero_add_child_devices);