Commit b32c6e02 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARM SoC updates from Arnd Bergmann:
 "The majority of the changes are for the OMAP2 platform, mostly
  removing some dead code that got left behind from previous cleanups.

  Aside from that, there are very minor updates and correctness fixes
  for Zynq, i.MX, Samsung, Broadcom, AT91, ep93xx, and OMAP1"

* tag 'arm-soc-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (26 commits)
  dt-bindings: soc: samsung: exynos-pmu: allow phys as child
  ARM: imx: mach-imx6ul: add imx6ulz support
  ARM: imx: Call ida_simple_remove() for ida_simple_get
  arm64: drop redundant "ARMv8" from Kconfig option title
  ARM: ep93xx: Convert to use descriptors for GPIO LEDs
  ARM: s3c: fix s3c64xx_set_timer_source prototype
  ARM: OMAP2+: Fix spelling typos in comment
  ARM: OMAP2+: Remove unneeded #include <linux/pinctrl/machine.h>
  ARM: OMAP2+: Remove unneeded #include <linux/pinctrl/pinmux.h>
  ARM: OMAP1: call platform_device_put() in error case in omap1_dm_timer_init()
  ARM: BCM63xx: remove useless goto statement
  ARM: omap2: make functions static
  ARM: omap2: remove unused omap2_pm_init
  ARM: omap2: remove unused declarations
  ARM: omap2: remove unused functions
  ARM: omap2: smartreflex: remove on_init control
  ARM: omap2: remove APLL control
  ARM: omap2: simplify clock2xxx header
  ARM: omap2: remove unused omap_hwmod_reset.c
  ARM: omap2: remove unused headers
  ...
parents ff0c7e18 27aaad0e
Loading
Loading
Loading
Loading
+57 −14
Original line number Diff line number Diff line
@@ -31,7 +31,8 @@ select:

properties:
  compatible:
    items:
    oneOf:
      - items:
          - enum:
              - samsung,exynos3250-pmu
              - samsung,exynos4210-pmu
@@ -45,6 +46,13 @@ properties:
              - samsung,exynos850-pmu
              - samsung-s5pv210-pmu
          - const: syscon
      - items:
          - enum:
              - samsung,exynos5250-pmu
              - samsung,exynos5420-pmu
              - samsung,exynos5433-pmu
          - const: simple-mfd
          - const: syscon

  reg:
    maxItems: 1
@@ -64,6 +72,10 @@ properties:
    minItems: 1
    maxItems: 32

  dp-phy:
    $ref: /schemas/phy/samsung,dp-video-phy.yaml
    unevaluatedProperties: false

  interrupt-controller:
    description:
      Some PMUs are capable of behaving as an interrupt controller (mostly
@@ -74,6 +86,10 @@ properties:
      Must be identical to the that of the parent interrupt controller.
    const: 3

  mipi-phy:
    $ref: /schemas/phy/samsung,mipi-video-phy.yaml
    unevaluatedProperties: false

  reboot-mode:
    $ref: /schemas/power/reset/syscon-reboot-mode.yaml
    type: object
@@ -117,6 +133,23 @@ allOf:
        - clock-names
        - clocks

  - if:
      properties:
        compatible:
          contains:
            enum:
              - samsung,exynos5250-pmu
              - samsung,exynos5420-pmu
              - samsung,exynos5433-pmu
    then:
      properties:
        dp-phy: true
        mipi-phy: true
    else:
      properties:
        dp-phy: false
        mipi-phy: false

examples:
  - |
    #include <dt-bindings/clock/exynos5250.h>
@@ -130,4 +163,14 @@ examples:
        #clock-cells = <1>;
        clock-names = "clkout16";
        clocks = <&clock CLK_FIN_PLL>;

        dp-phy {
            compatible = "samsung,exynos5250-dp-video-phy";
            #phy-cells = <0>;
        };

        mipi-phy {
            compatible = "samsung,s5pv210-mipi-video-phy";
            #phy-cells = <1>;
        };
    };
+1 −2
Original line number Diff line number Diff line
@@ -142,8 +142,7 @@ static int bcm63138_smp_boot_secondary(unsigned int cpu,
	 */
	ret = bcm63xx_pmb_power_on_cpu(dn);
	of_node_put(dn);
	if (ret)
		goto out;

out:
	iounmap(bootlut_base);

+11 −2
Original line number Diff line number Diff line
@@ -426,10 +426,8 @@ void __init ep93xx_register_spi(struct ep93xx_spi_info *info,
static const struct gpio_led ep93xx_led_pins[] __initconst = {
	{
		.name	= "platform:grled",
		.gpio	= EP93XX_GPIO_LINE_GRLED,
	}, {
		.name	= "platform:rdled",
		.gpio	= EP93XX_GPIO_LINE_RDLED,
	},
};

@@ -438,6 +436,16 @@ static const struct gpio_led_platform_data ep93xx_led_data __initconst = {
	.leds		= ep93xx_led_pins,
};

static struct gpiod_lookup_table ep93xx_leds_gpio_table = {
	.dev_id = "leds-gpio",
	.table = {
		/* Use local offsets on gpiochip/port "E" */
		GPIO_LOOKUP_IDX("E", 0, NULL, 0, GPIO_ACTIVE_HIGH),
		GPIO_LOOKUP_IDX("E", 1,	NULL, 1, GPIO_ACTIVE_HIGH),
		{ }
	},
};

/*************************************************************************
 * EP93xx pwm peripheral handling
 *************************************************************************/
@@ -990,6 +998,7 @@ struct device __init *ep93xx_init_devices(void)
	platform_device_register(&ep93xx_ohci_device);
	platform_device_register(&ep93xx_wdt_device);

	gpiod_add_lookup_table(&ep93xx_leds_gpio_table);
	gpio_led_register_device(-1, &ep93xx_led_data);

	return parent;
+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ static void __init imx6ul_init_late(void)
static const char * const imx6ul_dt_compat[] __initconst = {
	"fsl,imx6ul",
	"fsl,imx6ull",
	"fsl,imx6ulz",
	NULL,
};

+12 −12
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ struct mmdc_pmu {
	cpumask_t cpu;
	struct hrtimer hrtimer;
	unsigned int active_events;
	int id;
	struct device *dev;
	struct perf_event *mmdc_events[MMDC_NUM_COUNTERS];
	struct hlist_node node;
@@ -433,8 +434,6 @@ static enum hrtimer_restart mmdc_pmu_timer_handler(struct hrtimer *hrtimer)
static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
		void __iomem *mmdc_base, struct device *dev)
{
	int mmdc_num;

	*pmu_mmdc = (struct mmdc_pmu) {
		.pmu = (struct pmu) {
			.task_ctx_nr    = perf_invalid_context,
@@ -452,15 +451,16 @@ static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
		.active_events = 0,
	};

	mmdc_num = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
	pmu_mmdc->id = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);

	return mmdc_num;
	return pmu_mmdc->id;
}

static int imx_mmdc_remove(struct platform_device *pdev)
{
	struct mmdc_pmu *pmu_mmdc = platform_get_drvdata(pdev);

	ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
	cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
	perf_pmu_unregister(&pmu_mmdc->pmu);
	iounmap(pmu_mmdc->mmdc_base);
@@ -474,7 +474,6 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
{
	struct mmdc_pmu *pmu_mmdc;
	char *name;
	int mmdc_num;
	int ret;
	const struct of_device_id *of_id =
		of_match_device(imx_mmdc_dt_ids, &pdev->dev);
@@ -497,14 +496,14 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
		cpuhp_mmdc_state = ret;
	}

	mmdc_num = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
	pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
	if (mmdc_num == 0)
		name = "mmdc";
	else
	ret = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
	if (ret < 0)
		goto  pmu_free;

	name = devm_kasprintf(&pdev->dev,
				GFP_KERNEL, "mmdc%d", mmdc_num);
				GFP_KERNEL, "mmdc%d", ret);

	pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
	pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;

	hrtimer_init(&pmu_mmdc->hrtimer, CLOCK_MONOTONIC,
@@ -525,6 +524,7 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b

pmu_register_err:
	pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret);
	ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
	cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
	hrtimer_cancel(&pmu_mmdc->hrtimer);
pmu_free:
Loading