aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/802-can-0001-imx-busfreq-Add-API-header-file.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/802-can-0001-imx-busfreq-Add-API-header-file.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/802-can-0001-imx-busfreq-Add-API-header-file.patch95
1 files changed, 95 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/802-can-0001-imx-busfreq-Add-API-header-file.patch b/target/linux/layerscape/patches-5.4/802-can-0001-imx-busfreq-Add-API-header-file.patch
new file mode 100644
index 0000000000..e7a31c551e
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/802-can-0001-imx-busfreq-Add-API-header-file.patch
@@ -0,0 +1,95 @@
+From c8055614385c90accdea4e7a046c5560bccc84cf Mon Sep 17 00:00:00 2001
+From: Leonard Crestez <leonard.crestez@nxp.com>
+Date: Mon, 13 May 2019 15:06:37 +0300
+Subject: [PATCH] imx busfreq: Add API header file
+
+Add sufficient enough definitions so that drivers which call
+request_bus_freq and release_bus_freq can compile even if
+CONFIG_HAVE_IMX_BUSFREQ is missing.
+
+Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
+---
+ include/linux/busfreq-imx.h | 77 +++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 77 insertions(+)
+ create mode 100644 include/linux/busfreq-imx.h
+
+--- /dev/null
++++ b/include/linux/busfreq-imx.h
+@@ -0,0 +1,77 @@
++/*
++ * Copyright 2012-2016 Freescale Semiconductor, Inc. All Rights Reserved.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#ifndef __ASM_ARCH_MXC_BUSFREQ_H__
++#define __ASM_ARCH_MXC_BUSFREQ_H__
++
++#include <linux/notifier.h>
++#include <linux/regulator/consumer.h>
++
++/*
++ * This enumerates busfreq low power mode entry and exit.
++ */
++enum busfreq_event {
++ LOW_BUSFREQ_ENTER,
++ LOW_BUSFREQ_EXIT,
++};
++
++/*
++ * This enumerates the system bus and ddr frequencies in various modes.
++ * BUS_FREQ_HIGH - DDR @ 528MHz, AHB @ 132MHz.
++ * BUS_FREQ_MED - DDR @ 400MHz, AHB @ 132MHz
++ * BUS_FREQ_AUDIO - DDR @ 50MHz/100MHz, AHB @ 24MHz.
++ * BUS_FREQ_LOW - DDR @ 24MHz, AHB @ 24MHz.
++ * BUS_FREQ_ULTRA_LOW - DDR @ 1MHz, AHB - 3MHz.
++ *
++ * Drivers need to request/release the bus/ddr frequencies based on
++ * their performance requirements. Drivers cannot request/release
++ * BUS_FREQ_ULTRA_LOW mode as this mode is automatically entered from
++ * either BUS_FREQ_AUDIO or BUS_FREQ_LOW
++ * modes.
++ */
++enum bus_freq_mode {
++ BUS_FREQ_HIGH,
++ BUS_FREQ_MED,
++ BUS_FREQ_AUDIO,
++ BUS_FREQ_LOW,
++ BUS_FREQ_ULTRA_LOW,
++};
++
++#if defined(CONFIG_HAVE_IMX_BUSFREQ) && !defined(CONFIG_ARM64)
++extern struct regulator *arm_reg;
++extern struct regulator *soc_reg;
++void request_bus_freq(enum bus_freq_mode mode);
++void release_bus_freq(enum bus_freq_mode mode);
++int register_busfreq_notifier(struct notifier_block *nb);
++int unregister_busfreq_notifier(struct notifier_block *nb);
++int get_bus_freq_mode(void);
++#elif defined(CONFIG_HAVE_IMX_BUSFREQ)
++void request_bus_freq(enum bus_freq_mode mode);
++void release_bus_freq(enum bus_freq_mode mode);
++int get_bus_freq_mode(void);
++#else
++static inline void request_bus_freq(enum bus_freq_mode mode)
++{
++}
++static inline void release_bus_freq(enum bus_freq_mode mode)
++{
++}
++static inline int register_busfreq_notifier(struct notifier_block *nb)
++{
++ return 0;
++}
++static inline int unregister_busfreq_notifier(struct notifier_block *nb)
++{
++ return 0;
++}
++static inline int get_bus_freq_mode(void)
++{
++ return BUS_FREQ_HIGH;
++}
++#endif
++#endif