Merge branches 'pm-cpuidle' and 'pm-cpufreq'
* pm-cpuidle: MAINTAINERS: cpuidle: exynos: include header in file pattern intel_idle: remove definition of DEBUG * pm-cpufreq: cpufreq: Remove unused flag CPUFREQ_PM_NO_WARN cpufreq: Remove CPUFREQ_STICKY flag cpufreq: intel_pstate: Remove repeated word cpufreq: remove tango driver cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove() cpufreq: brcmstb-avs-cpufreq: Free resources in error path cpufreq: qcom-hw: enable boost support cpufreq: tegra20: Use resource-managed API cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if available cpufreq: intel_pstate: Rename two functions cpufreq: intel_pstate: Change intel_pstate_get_hwp_max() argument cpufreq: intel_pstate: Always read hwp_cap_cached with READ_ONCE()
This commit is contained in:
commit
acc3a645ef
|
@ -122,6 +122,7 @@ ForEachMacros:
|
||||||
- 'drm_for_each_bridge_in_chain'
|
- 'drm_for_each_bridge_in_chain'
|
||||||
- 'drm_for_each_connector_iter'
|
- 'drm_for_each_connector_iter'
|
||||||
- 'drm_for_each_crtc'
|
- 'drm_for_each_crtc'
|
||||||
|
- 'drm_for_each_crtc_reverse'
|
||||||
- 'drm_for_each_encoder'
|
- 'drm_for_each_encoder'
|
||||||
- 'drm_for_each_encoder_mask'
|
- 'drm_for_each_encoder_mask'
|
||||||
- 'drm_for_each_fb'
|
- 'drm_for_each_fb'
|
||||||
|
@ -203,14 +204,13 @@ ForEachMacros:
|
||||||
- 'for_each_matching_node'
|
- 'for_each_matching_node'
|
||||||
- 'for_each_matching_node_and_match'
|
- 'for_each_matching_node_and_match'
|
||||||
- 'for_each_member'
|
- 'for_each_member'
|
||||||
- 'for_each_mem_region'
|
|
||||||
- 'for_each_memblock_type'
|
|
||||||
- 'for_each_memcg_cache_index'
|
- 'for_each_memcg_cache_index'
|
||||||
- 'for_each_mem_pfn_range'
|
- 'for_each_mem_pfn_range'
|
||||||
- '__for_each_mem_range'
|
- '__for_each_mem_range'
|
||||||
- 'for_each_mem_range'
|
- 'for_each_mem_range'
|
||||||
- '__for_each_mem_range_rev'
|
- '__for_each_mem_range_rev'
|
||||||
- 'for_each_mem_range_rev'
|
- 'for_each_mem_range_rev'
|
||||||
|
- 'for_each_mem_region'
|
||||||
- 'for_each_migratetype_order'
|
- 'for_each_migratetype_order'
|
||||||
- 'for_each_msi_entry'
|
- 'for_each_msi_entry'
|
||||||
- 'for_each_msi_entry_safe'
|
- 'for_each_msi_entry_safe'
|
||||||
|
@ -276,10 +276,8 @@ ForEachMacros:
|
||||||
- 'for_each_reserved_mem_range'
|
- 'for_each_reserved_mem_range'
|
||||||
- 'for_each_reserved_mem_region'
|
- 'for_each_reserved_mem_region'
|
||||||
- 'for_each_rtd_codec_dais'
|
- 'for_each_rtd_codec_dais'
|
||||||
- 'for_each_rtd_codec_dais_rollback'
|
|
||||||
- 'for_each_rtd_components'
|
- 'for_each_rtd_components'
|
||||||
- 'for_each_rtd_cpu_dais'
|
- 'for_each_rtd_cpu_dais'
|
||||||
- 'for_each_rtd_cpu_dais_rollback'
|
|
||||||
- 'for_each_rtd_dais'
|
- 'for_each_rtd_dais'
|
||||||
- 'for_each_set_bit'
|
- 'for_each_set_bit'
|
||||||
- 'for_each_set_bit_from'
|
- 'for_each_set_bit_from'
|
||||||
|
@ -298,6 +296,7 @@ ForEachMacros:
|
||||||
- '__for_each_thread'
|
- '__for_each_thread'
|
||||||
- 'for_each_thread'
|
- 'for_each_thread'
|
||||||
- 'for_each_unicast_dest_pgid'
|
- 'for_each_unicast_dest_pgid'
|
||||||
|
- 'for_each_vsi'
|
||||||
- 'for_each_wakeup_source'
|
- 'for_each_wakeup_source'
|
||||||
- 'for_each_zone'
|
- 'for_each_zone'
|
||||||
- 'for_each_zone_zonelist'
|
- 'for_each_zone_zonelist'
|
||||||
|
@ -330,6 +329,7 @@ ForEachMacros:
|
||||||
- 'hlist_for_each_entry_rcu_bh'
|
- 'hlist_for_each_entry_rcu_bh'
|
||||||
- 'hlist_for_each_entry_rcu_notrace'
|
- 'hlist_for_each_entry_rcu_notrace'
|
||||||
- 'hlist_for_each_entry_safe'
|
- 'hlist_for_each_entry_safe'
|
||||||
|
- 'hlist_for_each_entry_srcu'
|
||||||
- '__hlist_for_each_rcu'
|
- '__hlist_for_each_rcu'
|
||||||
- 'hlist_for_each_safe'
|
- 'hlist_for_each_safe'
|
||||||
- 'hlist_nulls_for_each_entry'
|
- 'hlist_nulls_for_each_entry'
|
||||||
|
@ -378,6 +378,7 @@ ForEachMacros:
|
||||||
- 'list_for_each_entry_safe_continue'
|
- 'list_for_each_entry_safe_continue'
|
||||||
- 'list_for_each_entry_safe_from'
|
- 'list_for_each_entry_safe_from'
|
||||||
- 'list_for_each_entry_safe_reverse'
|
- 'list_for_each_entry_safe_reverse'
|
||||||
|
- 'list_for_each_entry_srcu'
|
||||||
- 'list_for_each_prev'
|
- 'list_for_each_prev'
|
||||||
- 'list_for_each_prev_safe'
|
- 'list_for_each_prev_safe'
|
||||||
- 'list_for_each_safe'
|
- 'list_for_each_safe'
|
||||||
|
@ -411,6 +412,8 @@ ForEachMacros:
|
||||||
- 'of_property_for_each_string'
|
- 'of_property_for_each_string'
|
||||||
- 'of_property_for_each_u32'
|
- 'of_property_for_each_u32'
|
||||||
- 'pci_bus_for_each_resource'
|
- 'pci_bus_for_each_resource'
|
||||||
|
- 'pcl_for_each_chunk'
|
||||||
|
- 'pcl_for_each_segment'
|
||||||
- 'pcm_for_each_format'
|
- 'pcm_for_each_format'
|
||||||
- 'ping_portaddr_for_each_entry'
|
- 'ping_portaddr_for_each_entry'
|
||||||
- 'plist_for_each'
|
- 'plist_for_each'
|
||||||
|
|
12
.mailmap
12
.mailmap
|
@ -9,9 +9,6 @@
|
||||||
#
|
#
|
||||||
# Please keep this list dictionary sorted.
|
# Please keep this list dictionary sorted.
|
||||||
#
|
#
|
||||||
# This comment is parsed by git-shortlog:
|
|
||||||
# repo-abbrev: /pub/scm/linux/kernel/git/
|
|
||||||
#
|
|
||||||
Aaron Durbin <adurbin@google.com>
|
Aaron Durbin <adurbin@google.com>
|
||||||
Adam Oldham <oldhamca@gmail.com>
|
Adam Oldham <oldhamca@gmail.com>
|
||||||
Adam Radford <aradford@gmail.com>
|
Adam Radford <aradford@gmail.com>
|
||||||
|
@ -55,6 +52,8 @@ Bart Van Assche <bvanassche@acm.org> <bart.vanassche@wdc.com>
|
||||||
Ben Gardner <bgardner@wabtec.com>
|
Ben Gardner <bgardner@wabtec.com>
|
||||||
Ben M Cahill <ben.m.cahill@intel.com>
|
Ben M Cahill <ben.m.cahill@intel.com>
|
||||||
Björn Steinbrink <B.Steinbrink@gmx.de>
|
Björn Steinbrink <B.Steinbrink@gmx.de>
|
||||||
|
Björn Töpel <bjorn@kernel.org> <bjorn.topel@gmail.com>
|
||||||
|
Björn Töpel <bjorn@kernel.org> <bjorn.topel@intel.com>
|
||||||
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon.dev@gmail.com>
|
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon.dev@gmail.com>
|
||||||
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon@overkiz.com>
|
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon@overkiz.com>
|
||||||
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
|
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
|
||||||
|
@ -180,6 +179,8 @@ Kees Cook <keescook@chromium.org> <kees.cook@canonical.com>
|
||||||
Kees Cook <keescook@chromium.org> <keescook@google.com>
|
Kees Cook <keescook@chromium.org> <keescook@google.com>
|
||||||
Kees Cook <keescook@chromium.org> <kees@outflux.net>
|
Kees Cook <keescook@chromium.org> <kees@outflux.net>
|
||||||
Kees Cook <keescook@chromium.org> <kees@ubuntu.com>
|
Kees Cook <keescook@chromium.org> <kees@ubuntu.com>
|
||||||
|
Keith Busch <kbusch@kernel.org> <keith.busch@intel.com>
|
||||||
|
Keith Busch <kbusch@kernel.org> <keith.busch@linux.intel.com>
|
||||||
Kenneth W Chen <kenneth.w.chen@intel.com>
|
Kenneth W Chen <kenneth.w.chen@intel.com>
|
||||||
Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru>
|
Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru>
|
||||||
Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
|
Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
|
||||||
|
@ -200,6 +201,8 @@ Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
|
||||||
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
||||||
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
||||||
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
||||||
|
Manivannan Sadhasivam <mani@kernel.org> <manivannanece23@gmail.com>
|
||||||
|
Manivannan Sadhasivam <mani@kernel.org> <manivannan.sadhasivam@linaro.org>
|
||||||
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
||||||
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
||||||
Mark Brown <broonie@sirena.org.uk>
|
Mark Brown <broonie@sirena.org.uk>
|
||||||
|
@ -245,6 +248,7 @@ Morten Welinder <welinder@anemone.rentec.com>
|
||||||
Morten Welinder <welinder@darter.rentec.com>
|
Morten Welinder <welinder@darter.rentec.com>
|
||||||
Morten Welinder <welinder@troll.com>
|
Morten Welinder <welinder@troll.com>
|
||||||
Mythri P K <mythripk@ti.com>
|
Mythri P K <mythripk@ti.com>
|
||||||
|
Nathan Chancellor <nathan@kernel.org> <natechancellor@gmail.com>
|
||||||
Nguyen Anh Quynh <aquynh@gmail.com>
|
Nguyen Anh Quynh <aquynh@gmail.com>
|
||||||
Nicolas Ferre <nicolas.ferre@microchip.com> <nicolas.ferre@atmel.com>
|
Nicolas Ferre <nicolas.ferre@microchip.com> <nicolas.ferre@atmel.com>
|
||||||
Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org>
|
Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org>
|
||||||
|
@ -335,6 +339,8 @@ Vinod Koul <vkoul@kernel.org> <vkoul@infradead.org>
|
||||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
|
||||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
|
||||||
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
|
||||||
|
Viresh Kumar <viresh.kumar@linaro.org> <viresh.kumar@linaro.org>
|
||||||
|
Viresh Kumar <viresh.kumar@linaro.org> <viresh.kumar@linaro.com>
|
||||||
Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
|
Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
|
||||||
Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
|
Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
|
||||||
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
||||||
|
|
|
@ -5,8 +5,8 @@ Description:
|
||||||
Provide a place in sysfs for the device link objects in the
|
Provide a place in sysfs for the device link objects in the
|
||||||
kernel at any given time. The name of a device link directory,
|
kernel at any given time. The name of a device link directory,
|
||||||
denoted as ... above, is of the form <supplier>--<consumer>
|
denoted as ... above, is of the form <supplier>--<consumer>
|
||||||
where <supplier> is the supplier device name and <consumer> is
|
where <supplier> is the supplier bus:device name and <consumer>
|
||||||
the consumer device name.
|
is the consumer bus:device name.
|
||||||
|
|
||||||
What: /sys/class/devlink/.../auto_remove_on
|
What: /sys/class/devlink/.../auto_remove_on
|
||||||
Date: May 2020
|
Date: May 2020
|
||||||
|
|
|
@ -4,5 +4,6 @@ Contact: Saravana Kannan <saravanak@google.com>
|
||||||
Description:
|
Description:
|
||||||
The /sys/devices/.../consumer:<consumer> are symlinks to device
|
The /sys/devices/.../consumer:<consumer> are symlinks to device
|
||||||
links where this device is the supplier. <consumer> denotes the
|
links where this device is the supplier. <consumer> denotes the
|
||||||
name of the consumer in that device link. There can be zero or
|
name of the consumer in that device link and is of the form
|
||||||
more of these symlinks for a given device.
|
bus:device name. There can be zero or more of these symlinks
|
||||||
|
for a given device.
|
||||||
|
|
|
@ -4,5 +4,6 @@ Contact: Saravana Kannan <saravanak@google.com>
|
||||||
Description:
|
Description:
|
||||||
The /sys/devices/.../supplier:<supplier> are symlinks to device
|
The /sys/devices/.../supplier:<supplier> are symlinks to device
|
||||||
links where this device is the consumer. <supplier> denotes the
|
links where this device is the consumer. <supplier> denotes the
|
||||||
name of the supplier in that device link. There can be zero or
|
name of the supplier in that device link and is of the form
|
||||||
more of these symlinks for a given device.
|
bus:device name. There can be zero or more of these symlinks
|
||||||
|
for a given device.
|
||||||
|
|
|
@ -916,21 +916,25 @@ Date: September 2014
|
||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry could be used to set or show the UFS device
|
Description: This entry could be used to set or show the UFS device
|
||||||
runtime power management level. The current driver
|
runtime power management level. The current driver
|
||||||
implementation supports 6 levels with next target states:
|
implementation supports 7 levels with next target states:
|
||||||
|
|
||||||
== ====================================================
|
== ====================================================
|
||||||
0 an UFS device will stay active, an UIC link will
|
0 UFS device will stay active, UIC link will
|
||||||
stay active
|
stay active
|
||||||
1 an UFS device will stay active, an UIC link will
|
1 UFS device will stay active, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
2 an UFS device will moved to sleep, an UIC link will
|
2 UFS device will be moved to sleep, UIC link will
|
||||||
stay active
|
stay active
|
||||||
3 an UFS device will moved to sleep, an UIC link will
|
3 UFS device will be moved to sleep, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
4 an UFS device will be powered off, an UIC link will
|
4 UFS device will be powered off, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
5 an UFS device will be powered off, an UIC link will
|
5 UFS device will be powered off, UIC link will
|
||||||
be powered off
|
be powered off
|
||||||
|
6 UFS device will be moved to deep sleep, UIC link
|
||||||
|
will be powered off. Note, deep sleep might not be
|
||||||
|
supported in which case this value will not be
|
||||||
|
accepted
|
||||||
== ====================================================
|
== ====================================================
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_dev_state
|
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_dev_state
|
||||||
|
@ -954,21 +958,25 @@ Date: September 2014
|
||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry could be used to set or show the UFS device
|
Description: This entry could be used to set or show the UFS device
|
||||||
system power management level. The current driver
|
system power management level. The current driver
|
||||||
implementation supports 6 levels with next target states:
|
implementation supports 7 levels with next target states:
|
||||||
|
|
||||||
== ====================================================
|
== ====================================================
|
||||||
0 an UFS device will stay active, an UIC link will
|
0 UFS device will stay active, UIC link will
|
||||||
stay active
|
stay active
|
||||||
1 an UFS device will stay active, an UIC link will
|
1 UFS device will stay active, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
2 an UFS device will moved to sleep, an UIC link will
|
2 UFS device will be moved to sleep, UIC link will
|
||||||
stay active
|
stay active
|
||||||
3 an UFS device will moved to sleep, an UIC link will
|
3 UFS device will be moved to sleep, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
4 an UFS device will be powered off, an UIC link will
|
4 UFS device will be powered off, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
5 an UFS device will be powered off, an UIC link will
|
5 UFS device will be powered off, UIC link will
|
||||||
be powered off
|
be powered off
|
||||||
|
6 UFS device will be moved to deep sleep, UIC link
|
||||||
|
will be powered off. Note, deep sleep might not be
|
||||||
|
supported in which case this value will not be
|
||||||
|
accepted
|
||||||
== ====================================================
|
== ====================================================
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_dev_state
|
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_dev_state
|
||||||
|
|
|
@ -75,7 +75,7 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
|
||||||
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
|
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
|
||||||
PYTHONDONTWRITEBYTECODE=1 \
|
PYTHONDONTWRITEBYTECODE=1 \
|
||||||
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
|
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
|
||||||
$(PYTHON) $(srctree)/scripts/jobserver-exec \
|
$(PYTHON3) $(srctree)/scripts/jobserver-exec \
|
||||||
$(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
|
$(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
|
||||||
$(SPHINXBUILD) \
|
$(SPHINXBUILD) \
|
||||||
-b $2 \
|
-b $2 \
|
||||||
|
|
|
@ -177,14 +177,20 @@ bitmap_flush_interval:number
|
||||||
The bitmap flush interval in milliseconds. The metadata buffers
|
The bitmap flush interval in milliseconds. The metadata buffers
|
||||||
are synchronized when this interval expires.
|
are synchronized when this interval expires.
|
||||||
|
|
||||||
|
allow_discards
|
||||||
|
Allow block discard requests (a.k.a. TRIM) for the integrity device.
|
||||||
|
Discards are only allowed to devices using internal hash.
|
||||||
|
|
||||||
fix_padding
|
fix_padding
|
||||||
Use a smaller padding of the tag area that is more
|
Use a smaller padding of the tag area that is more
|
||||||
space-efficient. If this option is not present, large padding is
|
space-efficient. If this option is not present, large padding is
|
||||||
used - that is for compatibility with older kernels.
|
used - that is for compatibility with older kernels.
|
||||||
|
|
||||||
allow_discards
|
legacy_recalculate
|
||||||
Allow block discard requests (a.k.a. TRIM) for the integrity device.
|
Allow recalculating of volumes with HMAC keys. This is disabled by
|
||||||
Discards are only allowed to devices using internal hash.
|
default for security reasons - an attacker could modify the volume,
|
||||||
|
set recalc_sector to zero, and the kernel would not detect the
|
||||||
|
modification.
|
||||||
|
|
||||||
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time and
|
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time and
|
||||||
allow_discards can be changed when reloading the target (load an inactive
|
allow_discards can be changed when reloading the target (load an inactive
|
||||||
|
|
|
@ -13,6 +13,22 @@ This file documents the driver for the Rockchip ISP1 that is part of RK3288
|
||||||
and RK3399 SoCs. The driver is located under drivers/staging/media/rkisp1
|
and RK3399 SoCs. The driver is located under drivers/staging/media/rkisp1
|
||||||
and uses the Media-Controller API.
|
and uses the Media-Controller API.
|
||||||
|
|
||||||
|
Revisions
|
||||||
|
=========
|
||||||
|
|
||||||
|
There exist multiple smaller revisions to this ISP that got introduced in
|
||||||
|
later SoCs. Revisions can be found in the enum :c:type:`rkisp1_cif_isp_version`
|
||||||
|
in the UAPI and the revision of the ISP inside the running SoC can be read
|
||||||
|
in the field hw_revision of struct media_device_info as returned by
|
||||||
|
ioctl MEDIA_IOC_DEVICE_INFO.
|
||||||
|
|
||||||
|
Versions in use are:
|
||||||
|
|
||||||
|
- RKISP1_V10: used at least in rk3288 and rk3399
|
||||||
|
- RKISP1_V11: declared in the original vendor code, but not used
|
||||||
|
- RKISP1_V12: used at least in rk3326 and px30
|
||||||
|
- RKISP1_V13: used at least in rk1808
|
||||||
|
|
||||||
Topology
|
Topology
|
||||||
========
|
========
|
||||||
.. _rkisp1_topology_graph:
|
.. _rkisp1_topology_graph:
|
||||||
|
|
|
@ -70,8 +70,8 @@ trampoline code on the vDSO, that trampoline is never intercepted.
|
||||||
[selector] is a pointer to a char-sized region in the process memory
|
[selector] is a pointer to a char-sized region in the process memory
|
||||||
region, that provides a quick way to enable disable syscall redirection
|
region, that provides a quick way to enable disable syscall redirection
|
||||||
thread-wide, without the need to invoke the kernel directly. selector
|
thread-wide, without the need to invoke the kernel directly. selector
|
||||||
can be set to PR_SYS_DISPATCH_ON or PR_SYS_DISPATCH_OFF. Any other
|
can be set to SYSCALL_DISPATCH_FILTER_ALLOW or SYSCALL_DISPATCH_FILTER_BLOCK.
|
||||||
value should terminate the program with a SIGSYS.
|
Any other value should terminate the program with a SIGSYS.
|
||||||
|
|
||||||
Security Notes
|
Security Notes
|
||||||
--------------
|
--------------
|
||||||
|
|
|
@ -100,6 +100,11 @@ Instruction Macros
|
||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
|
This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
|
||||||
|
|
||||||
|
``objtool`` requires that all code must be contained in an ELF symbol. Symbol
|
||||||
|
names that have a ``.L`` prefix do not emit symbol table entries. ``.L``
|
||||||
|
prefixed symbols can be used within a code region, but should be avoided for
|
||||||
|
denoting a range of code via ``SYM_*_START/END`` annotations.
|
||||||
|
|
||||||
* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
|
* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
|
||||||
most frequent markings**. They are used for functions with standard calling
|
most frequent markings**. They are used for functions with standard calling
|
||||||
conventions -- global and local. Like in C, they both align the functions to
|
conventions -- global and local. Like in C, they both align the functions to
|
||||||
|
|
|
@ -160,29 +160,14 @@ intended for use in production as a security mitigation. Therefore it supports
|
||||||
boot parameters that allow to disable KASAN competely or otherwise control
|
boot parameters that allow to disable KASAN competely or otherwise control
|
||||||
particular KASAN features.
|
particular KASAN features.
|
||||||
|
|
||||||
The things that can be controlled are:
|
- ``kasan=off`` or ``=on`` controls whether KASAN is enabled (default: ``on``).
|
||||||
|
|
||||||
1. Whether KASAN is enabled at all.
|
- ``kasan.stacktrace=off`` or ``=on`` disables or enables alloc and free stack
|
||||||
2. Whether KASAN collects and saves alloc/free stacks.
|
traces collection (default: ``on`` for ``CONFIG_DEBUG_KERNEL=y``, otherwise
|
||||||
3. Whether KASAN panics on a detected bug or not.
|
``off``).
|
||||||
|
|
||||||
The ``kasan.mode`` boot parameter allows to choose one of three main modes:
|
- ``kasan.fault=report`` or ``=panic`` controls whether to only print a KASAN
|
||||||
|
report or also panic the kernel (default: ``report``).
|
||||||
- ``kasan.mode=off`` - KASAN is disabled, no tag checks are performed
|
|
||||||
- ``kasan.mode=prod`` - only essential production features are enabled
|
|
||||||
- ``kasan.mode=full`` - all KASAN features are enabled
|
|
||||||
|
|
||||||
The chosen mode provides default control values for the features mentioned
|
|
||||||
above. However it's also possible to override the default values by providing:
|
|
||||||
|
|
||||||
- ``kasan.stacktrace=off`` or ``=on`` - enable alloc/free stack collection
|
|
||||||
(default: ``on`` for ``mode=full``,
|
|
||||||
otherwise ``off``)
|
|
||||||
- ``kasan.fault=report`` or ``=panic`` - only print KASAN report or also panic
|
|
||||||
(default: ``report``)
|
|
||||||
|
|
||||||
If ``kasan.mode`` parameter is not provided, it defaults to ``full`` when
|
|
||||||
``CONFIG_DEBUG_KERNEL`` is enabled, and to ``prod`` otherwise.
|
|
||||||
|
|
||||||
For developers
|
For developers
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
|
|
@ -522,6 +522,63 @@ There's more boilerplate involved, but it can:
|
||||||
* E.g. if we wanted to also test ``sha256sum``, we could add a ``sha256``
|
* E.g. if we wanted to also test ``sha256sum``, we could add a ``sha256``
|
||||||
field and reuse ``cases``.
|
field and reuse ``cases``.
|
||||||
|
|
||||||
|
* be converted to a "parameterized test", see below.
|
||||||
|
|
||||||
|
Parameterized Testing
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The table-driven testing pattern is common enough that KUnit has special
|
||||||
|
support for it.
|
||||||
|
|
||||||
|
Reusing the same ``cases`` array from above, we can write the test as a
|
||||||
|
"parameterized test" with the following.
|
||||||
|
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
// This is copy-pasted from above.
|
||||||
|
struct sha1_test_case {
|
||||||
|
const char *str;
|
||||||
|
const char *sha1;
|
||||||
|
};
|
||||||
|
struct sha1_test_case cases[] = {
|
||||||
|
{
|
||||||
|
.str = "hello world",
|
||||||
|
.sha1 = "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.str = "hello world!",
|
||||||
|
.sha1 = "430ce34d020724ed75a196dfc2ad67c77772d169",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Need a helper function to generate a name for each test case.
|
||||||
|
static void case_to_desc(const struct sha1_test_case *t, char *desc)
|
||||||
|
{
|
||||||
|
strcpy(desc, t->str);
|
||||||
|
}
|
||||||
|
// Creates `sha1_gen_params()` to iterate over `cases`.
|
||||||
|
KUNIT_ARRAY_PARAM(sha1, cases, case_to_desc);
|
||||||
|
|
||||||
|
// Looks no different from a normal test.
|
||||||
|
static void sha1_test(struct kunit *test)
|
||||||
|
{
|
||||||
|
// This function can just contain the body of the for-loop.
|
||||||
|
// The former `cases[i]` is accessible under test->param_value.
|
||||||
|
char out[40];
|
||||||
|
struct sha1_test_case *test_param = (struct sha1_test_case *)(test->param_value);
|
||||||
|
|
||||||
|
sha1sum(test_param->str, out);
|
||||||
|
KUNIT_EXPECT_STREQ_MSG(test, (char *)out, test_param->sha1,
|
||||||
|
"sha1sum(%s)", test_param->str);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Instead of KUNIT_CASE, we use KUNIT_CASE_PARAM and pass in the
|
||||||
|
// function declared by KUNIT_ARRAY_PARAM.
|
||||||
|
static struct kunit_case sha1_test_cases[] = {
|
||||||
|
KUNIT_CASE_PARAM(sha1_test, sha1_gen_params),
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
.. _kunit-on-non-uml:
|
.. _kunit-on-non-uml:
|
||||||
|
|
||||||
KUnit on non-UML architectures
|
KUnit on non-UML architectures
|
||||||
|
|
|
@ -232,7 +232,6 @@ properties:
|
||||||
by this cpu (see ./idle-states.yaml).
|
by this cpu (see ./idle-states.yaml).
|
||||||
|
|
||||||
capacity-dmips-mhz:
|
capacity-dmips-mhz:
|
||||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
|
||||||
description:
|
description:
|
||||||
u32 value representing CPU capacity (see ./cpu-capacity.txt) in
|
u32 value representing CPU capacity (see ./cpu-capacity.txt) in
|
||||||
DMIPS/MHz, relative to highest capacity-dmips-mhz
|
DMIPS/MHz, relative to highest capacity-dmips-mhz
|
||||||
|
|
|
@ -40,7 +40,7 @@ Optional properties:
|
||||||
documents on how to describe the way the sii902x device is
|
documents on how to describe the way the sii902x device is
|
||||||
connected to the rest of the audio system:
|
connected to the rest of the audio system:
|
||||||
Documentation/devicetree/bindings/sound/simple-card.yaml
|
Documentation/devicetree/bindings/sound/simple-card.yaml
|
||||||
Documentation/devicetree/bindings/sound/audio-graph-card.txt
|
Documentation/devicetree/bindings/sound/audio-graph-card.yaml
|
||||||
Note: In case of the audio-graph-card binding the used port
|
Note: In case of the audio-graph-card binding the used port
|
||||||
index should be 3.
|
index should be 3.
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ connected to.
|
||||||
|
|
||||||
For a description of the display interface sink function blocks, see
|
For a description of the display interface sink function blocks, see
|
||||||
Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt and
|
Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt and
|
||||||
Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt.
|
Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.yaml.
|
||||||
|
|
||||||
Required properties (all function blocks):
|
Required properties (all function blocks):
|
||||||
- compatible: "mediatek,<chip>-disp-<function>", one of
|
- compatible: "mediatek,<chip>-disp-<function>", one of
|
||||||
|
@ -61,7 +61,7 @@ Required properties (DMA function blocks):
|
||||||
"mediatek,<chip>-disp-wdma"
|
"mediatek,<chip>-disp-wdma"
|
||||||
the supported chips are mt2701, mt8167 and mt8173.
|
the supported chips are mt2701, mt8167 and mt8173.
|
||||||
- larb: Should contain a phandle pointing to the local arbiter device as defined
|
- larb: Should contain a phandle pointing to the local arbiter device as defined
|
||||||
in Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
in Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||||
- iommus: Should point to the respective IOMMU block with master port as
|
- iommus: Should point to the respective IOMMU block with master port as
|
||||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||||
for details.
|
for details.
|
||||||
|
|
|
@ -85,7 +85,6 @@ properties:
|
||||||
wlf,micd-timeout-ms:
|
wlf,micd-timeout-ms:
|
||||||
description:
|
description:
|
||||||
Timeout for microphone detection, specified in milliseconds.
|
Timeout for microphone detection, specified in milliseconds.
|
||||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
|
||||||
|
|
||||||
wlf,micd-force-micbias:
|
wlf,micd-force-micbias:
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -49,7 +49,6 @@ properties:
|
||||||
description:
|
description:
|
||||||
This property controls the Accumulation Dead band which allows to set the
|
This property controls the Accumulation Dead band which allows to set the
|
||||||
level of current below which no accumulation takes place.
|
level of current below which no accumulation takes place.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
maximum: 255
|
maximum: 255
|
||||||
default: 0
|
default: 0
|
||||||
|
|
||||||
|
|
|
@ -73,8 +73,6 @@ properties:
|
||||||
description: |
|
description: |
|
||||||
Temperature sensor trimming factor. It can be used to manually adjust the
|
Temperature sensor trimming factor. It can be used to manually adjust the
|
||||||
temperature measurements within 7.130 degrees Celsius.
|
temperature measurements within 7.130 degrees Celsius.
|
||||||
maxItems: 1
|
|
||||||
items:
|
|
||||||
default: 0
|
default: 0
|
||||||
minimum: 0
|
minimum: 0
|
||||||
maximum: 7130
|
maximum: 7130
|
||||||
|
|
|
@ -52,7 +52,6 @@ properties:
|
||||||
ti,bus-range-microvolt:
|
ti,bus-range-microvolt:
|
||||||
description: |
|
description: |
|
||||||
This is the operating range of the bus voltage in microvolt
|
This is the operating range of the bus voltage in microvolt
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
enum: [16000000, 32000000]
|
enum: [16000000, 32000000]
|
||||||
default: 32000000
|
default: 32000000
|
||||||
|
|
||||||
|
|
|
@ -39,11 +39,9 @@ properties:
|
||||||
|
|
||||||
i2c-gpio,delay-us:
|
i2c-gpio,delay-us:
|
||||||
description: delay between GPIO operations (may depend on each platform)
|
description: delay between GPIO operations (may depend on each platform)
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
i2c-gpio,timeout-ms:
|
i2c-gpio,timeout-ms:
|
||||||
description: timeout to get data
|
description: timeout to get data
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
# Deprecated properties, do not use in new device tree sources:
|
# Deprecated properties, do not use in new device tree sources:
|
||||||
gpios:
|
gpios:
|
||||||
|
|
|
@ -66,21 +66,18 @@ properties:
|
||||||
default: 400000
|
default: 400000
|
||||||
|
|
||||||
i2c-sda-hold-time-ns:
|
i2c-sda-hold-time-ns:
|
||||||
maxItems: 1
|
|
||||||
description: |
|
description: |
|
||||||
The property should contain the SDA hold time in nanoseconds. This option
|
The property should contain the SDA hold time in nanoseconds. This option
|
||||||
is only supported in hardware blocks version 1.11a or newer or on
|
is only supported in hardware blocks version 1.11a or newer or on
|
||||||
Microsemi SoCs.
|
Microsemi SoCs.
|
||||||
|
|
||||||
i2c-scl-falling-time-ns:
|
i2c-scl-falling-time-ns:
|
||||||
maxItems: 1
|
|
||||||
description: |
|
description: |
|
||||||
The property should contain the SCL falling time in nanoseconds.
|
The property should contain the SCL falling time in nanoseconds.
|
||||||
This value is used to compute the tLOW period.
|
This value is used to compute the tLOW period.
|
||||||
default: 300
|
default: 300
|
||||||
|
|
||||||
i2c-sda-falling-time-ns:
|
i2c-sda-falling-time-ns:
|
||||||
maxItems: 1
|
|
||||||
description: |
|
description: |
|
||||||
The property should contain the SDA falling time in nanoseconds.
|
The property should contain the SDA falling time in nanoseconds.
|
||||||
This value is used to compute the tHIGH period.
|
This value is used to compute the tHIGH period.
|
||||||
|
|
|
@ -16,8 +16,8 @@ description:
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
enum:
|
enum:
|
||||||
- bosch,bmc150
|
- bosch,bmc150_accel
|
||||||
- bosch,bmi055
|
- bosch,bmi055_accel
|
||||||
- bosch,bma255
|
- bosch,bma255
|
||||||
- bosch,bma250e
|
- bosch,bma250e
|
||||||
- bosch,bma222
|
- bosch,bma222
|
||||||
|
|
|
@ -80,7 +80,7 @@ properties:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
bipolar:
|
bipolar:
|
||||||
description: see Documentation/devicetree/bindings/iio/adc/adc.txt
|
description: see Documentation/devicetree/bindings/iio/adc/adc.yaml
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
required:
|
required:
|
||||||
|
|
|
@ -23,7 +23,6 @@ properties:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
shunt-resistor-micro-ohms:
|
shunt-resistor-micro-ohms:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: |
|
description: |
|
||||||
Value in micro Ohms of the shunt resistor connected between the RS+ and
|
Value in micro Ohms of the shunt resistor connected between the RS+ and
|
||||||
RS- inputs, across which the current is measured. Value needed to compute
|
RS- inputs, across which the current is measured. Value needed to compute
|
||||||
|
|
|
@ -246,7 +246,6 @@ patternProperties:
|
||||||
Resolution (bits) to use for conversions:
|
Resolution (bits) to use for conversions:
|
||||||
- can be 6, 8, 10 or 12 on stm32f4
|
- can be 6, 8, 10 or 12 on stm32f4
|
||||||
- can be 8, 10, 12, 14 or 16 on stm32h7 and stm32mp1
|
- can be 8, 10, 12, 14 or 16 on stm32h7 and stm32mp1
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
st,adc-channels:
|
st,adc-channels:
|
||||||
description: |
|
description: |
|
||||||
|
|
|
@ -42,7 +42,6 @@ properties:
|
||||||
const: 1
|
const: 1
|
||||||
|
|
||||||
ti,channel0-current-microamp:
|
ti,channel0-current-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: Channel 0 current in uA.
|
description: Channel 0 current in uA.
|
||||||
enum:
|
enum:
|
||||||
- 0
|
- 0
|
||||||
|
@ -51,7 +50,6 @@ properties:
|
||||||
- 20
|
- 20
|
||||||
|
|
||||||
ti,channel3-current-microamp:
|
ti,channel3-current-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: Channel 3 current in uA.
|
description: Channel 3 current in uA.
|
||||||
enum:
|
enum:
|
||||||
- 0
|
- 0
|
||||||
|
|
|
@ -46,31 +46,42 @@ properties:
|
||||||
two properties must be present:
|
two properties must be present:
|
||||||
|
|
||||||
adi,range-microvolt:
|
adi,range-microvolt:
|
||||||
$ref: /schemas/types.yaml#/definitions/int32-array
|
|
||||||
description: |
|
description: |
|
||||||
Voltage output range specified as <minimum, maximum>
|
Voltage output range specified as <minimum, maximum>
|
||||||
enum:
|
oneOf:
|
||||||
- [[0, 5000000]]
|
- items:
|
||||||
- [[0, 10000000]]
|
- const: 0
|
||||||
- [[-5000000, 5000000]]
|
- enum: [5000000, 10000000]
|
||||||
- [[-10000000, 10000000]]
|
- items:
|
||||||
|
- const: -5000000
|
||||||
|
- const: 5000000
|
||||||
|
- items:
|
||||||
|
- const: -10000000
|
||||||
|
- const: 10000000
|
||||||
|
|
||||||
adi,range-microamp:
|
adi,range-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/int32-array
|
|
||||||
description: |
|
description: |
|
||||||
Current output range specified as <minimum, maximum>
|
Current output range specified as <minimum, maximum>
|
||||||
enum:
|
oneOf:
|
||||||
- [[0, 20000]]
|
- items:
|
||||||
- [[0, 24000]]
|
- const: 0
|
||||||
- [[4, 24000]]
|
- enum: [20000, 24000]
|
||||||
- [[-20000, 20000]]
|
- items:
|
||||||
- [[-24000, 24000]]
|
- const: 4
|
||||||
- [[-1000, 22000]]
|
- const: 24000
|
||||||
|
- items:
|
||||||
|
- const: -20000
|
||||||
|
- const: 20000
|
||||||
|
- items:
|
||||||
|
- const: -24000
|
||||||
|
- const: 24000
|
||||||
|
- items:
|
||||||
|
- const: -1000
|
||||||
|
- const: 22000
|
||||||
|
|
||||||
reset-gpios: true
|
reset-gpios: true
|
||||||
|
|
||||||
adi,dc-dc-ilim-microamp:
|
adi,dc-dc-ilim-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
enum: [150000, 200000, 250000, 300000, 350000, 400000]
|
enum: [150000, 200000, 250000, 300000, 350000, 400000]
|
||||||
description: |
|
description: |
|
||||||
The dc-to-dc converter current limit.
|
The dc-to-dc converter current limit.
|
||||||
|
|
|
@ -21,7 +21,6 @@ properties:
|
||||||
description: Connected to ADC_RDY pin.
|
description: Connected to ADC_RDY pin.
|
||||||
|
|
||||||
maxim,led-current-microamp:
|
maxim,led-current-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
minItems: 2
|
minItems: 2
|
||||||
maxItems: 2
|
maxItems: 2
|
||||||
description: |
|
description: |
|
||||||
|
|
|
@ -5,7 +5,8 @@ Required properties:
|
||||||
- compatible: "adc-keys"
|
- compatible: "adc-keys"
|
||||||
- io-channels: Phandle to an ADC channel
|
- io-channels: Phandle to an ADC channel
|
||||||
- io-channel-names = "buttons";
|
- io-channel-names = "buttons";
|
||||||
- keyup-threshold-microvolt: Voltage at which all the keys are considered up.
|
- keyup-threshold-microvolt: Voltage above or equal to which all the keys are
|
||||||
|
considered up.
|
||||||
|
|
||||||
Optional properties:
|
Optional properties:
|
||||||
- poll-interval: Poll interval time in milliseconds
|
- poll-interval: Poll interval time in milliseconds
|
||||||
|
@ -17,7 +18,12 @@ Each button (key) is represented as a sub-node of "adc-keys":
|
||||||
Required subnode-properties:
|
Required subnode-properties:
|
||||||
- label: Descriptive name of the key.
|
- label: Descriptive name of the key.
|
||||||
- linux,code: Keycode to emit.
|
- linux,code: Keycode to emit.
|
||||||
- press-threshold-microvolt: Voltage ADC input when this key is pressed.
|
- press-threshold-microvolt: voltage above or equal to which this key is
|
||||||
|
considered pressed.
|
||||||
|
|
||||||
|
No two values of press-threshold-microvolt may be the same.
|
||||||
|
All values of press-threshold-microvolt must be less than
|
||||||
|
keyup-threshold-microvolt.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
@ -47,3 +53,15 @@ Example:
|
||||||
press-threshold-microvolt = <500000>;
|
press-threshold-microvolt = <500000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| 2.000.000 <= value | no key pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| 1.500.000 <= value < 2.000.000 | KEY_VOLUMEUP pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| 1.000.000 <= value < 1.500.000 | KEY_VOLUMEDOWN pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| 500.000 <= value < 1.000.000 | KEY_ENTER pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| value < 500.000 | no key pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
|
|
@ -26,6 +26,7 @@ properties:
|
||||||
- goodix,gt927
|
- goodix,gt927
|
||||||
- goodix,gt9271
|
- goodix,gt9271
|
||||||
- goodix,gt928
|
- goodix,gt928
|
||||||
|
- goodix,gt9286
|
||||||
- goodix,gt967
|
- goodix,gt967
|
||||||
|
|
||||||
reg:
|
reg:
|
||||||
|
|
|
@ -70,11 +70,9 @@ properties:
|
||||||
|
|
||||||
touchscreen-x-mm:
|
touchscreen-x-mm:
|
||||||
description: horizontal length in mm of the touchscreen
|
description: horizontal length in mm of the touchscreen
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
touchscreen-y-mm:
|
touchscreen-y-mm:
|
||||||
description: vertical length in mm of the touchscreen
|
description: vertical length in mm of the touchscreen
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
touchscreen-size-x: [ touchscreen-size-y ]
|
touchscreen-size-x: [ touchscreen-size-y ]
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/leds/richtek,rt8515.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Richtek RT8515 1.5A dual channel LED driver
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Linus Walleij <linus.walleij@linaro.org>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The Richtek RT8515 is a dual channel (two mode) LED driver that
|
||||||
|
supports driving a white LED in flash or torch mode. The maximum
|
||||||
|
current for each mode is defined in hardware using two resistors
|
||||||
|
RFS and RTS.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: richtek,rt8515
|
||||||
|
|
||||||
|
enf-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: A connection to the 'ENF' (enable flash) pin.
|
||||||
|
|
||||||
|
ent-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: A connection to the 'ENT' (enable torch) pin.
|
||||||
|
|
||||||
|
richtek,rfs-ohms:
|
||||||
|
minimum: 7680
|
||||||
|
maximum: 367000
|
||||||
|
description: The resistance value of the RFS resistor. This
|
||||||
|
resistors limits the maximum flash current. This must be set
|
||||||
|
for the property flash-max-microamp to work, the RFS resistor
|
||||||
|
defines the range of the dimmer setting (brightness) of the
|
||||||
|
flash LED.
|
||||||
|
|
||||||
|
richtek,rts-ohms:
|
||||||
|
minimum: 7680
|
||||||
|
maximum: 367000
|
||||||
|
description: The resistance value of the RTS resistor. This
|
||||||
|
resistors limits the maximum torch current. This must be set
|
||||||
|
for the property torch-max-microamp to work, the RTS resistor
|
||||||
|
defines the range of the dimmer setting (brightness) of the
|
||||||
|
torch LED.
|
||||||
|
|
||||||
|
led:
|
||||||
|
type: object
|
||||||
|
$ref: common.yaml#
|
||||||
|
properties:
|
||||||
|
function: true
|
||||||
|
color: true
|
||||||
|
flash-max-timeout-us: true
|
||||||
|
|
||||||
|
flash-max-microamp:
|
||||||
|
maximum: 700000
|
||||||
|
description: The maximum current for flash mode
|
||||||
|
is hardwired to the component using the RFS resistor to
|
||||||
|
ground. The maximum hardware current setting is calculated
|
||||||
|
according to the formula Imax = 5500 / RFS. The lowest
|
||||||
|
allowed resistance value is 7.86 kOhm giving an absolute
|
||||||
|
maximum current of 700mA. By setting this attribute in
|
||||||
|
the device tree, you can further restrict the maximum
|
||||||
|
current below the hardware limit. This requires the RFS
|
||||||
|
to be defined as it defines the maximum range.
|
||||||
|
|
||||||
|
led-max-microamp:
|
||||||
|
maximum: 700000
|
||||||
|
description: The maximum current for torch mode
|
||||||
|
is hardwired to the component using the RTS resistor to
|
||||||
|
ground. The maximum hardware current setting is calculated
|
||||||
|
according to the formula Imax = 5500 / RTS. The lowest
|
||||||
|
allowed resistance value is 7.86 kOhm giving an absolute
|
||||||
|
maximum current of 700mA. By setting this attribute in
|
||||||
|
the device tree, you can further restrict the maximum
|
||||||
|
current below the hardware limit. This requires the RTS
|
||||||
|
to be defined as it defines the maximum range.
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- ent-gpios
|
||||||
|
- enf-gpios
|
||||||
|
- led
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/leds/common.h>
|
||||||
|
|
||||||
|
led-controller {
|
||||||
|
compatible = "richtek,rt8515";
|
||||||
|
enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
|
||||||
|
ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
richtek,rfs-ohms = <16000>;
|
||||||
|
richtek,rts-ohms = <100000>;
|
||||||
|
|
||||||
|
led {
|
||||||
|
function = LED_FUNCTION_FLASH;
|
||||||
|
color = <LED_COLOR_ID_WHITE>;
|
||||||
|
flash-max-timeout-us = <250000>;
|
||||||
|
flash-max-microamp = <150000>;
|
||||||
|
led-max-microamp = <25000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
|
@ -16,7 +16,7 @@ Required properties:
|
||||||
- power-domains: a phandle to the power domain, see
|
- power-domains: a phandle to the power domain, see
|
||||||
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
||||||
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
||||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||||
for details.
|
for details.
|
||||||
- iommus: should point to the respective IOMMU block with master port as
|
- iommus: should point to the respective IOMMU block with master port as
|
||||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||||
|
|
|
@ -14,7 +14,7 @@ Required properties:
|
||||||
- power-domains: a phandle to the power domain, see
|
- power-domains: a phandle to the power domain, see
|
||||||
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
||||||
- mediatek,larb: must contain the local arbiters in the current SoCs, see
|
- mediatek,larb: must contain the local arbiters in the current SoCs, see
|
||||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||||
for details.
|
for details.
|
||||||
- iommus: should point to the respective IOMMU block with master port as
|
- iommus: should point to the respective IOMMU block with master port as
|
||||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||||
|
|
|
@ -28,7 +28,7 @@ Required properties (DMA function blocks, child node):
|
||||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||||
for details.
|
for details.
|
||||||
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
||||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||||
for details.
|
for details.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
|
@ -259,7 +259,6 @@ properties:
|
||||||
waiting for I/O signalling and card power supply to be stable,
|
waiting for I/O signalling and card power supply to be stable,
|
||||||
regardless of whether pwrseq-simple is used. Default to 10ms if
|
regardless of whether pwrseq-simple is used. Default to 10ms if
|
||||||
no available.
|
no available.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
default: 10
|
default: 10
|
||||||
|
|
||||||
supports-cqe:
|
supports-cqe:
|
||||||
|
|
|
@ -41,13 +41,11 @@ properties:
|
||||||
description:
|
description:
|
||||||
Delay in ms after powering the card and de-asserting the
|
Delay in ms after powering the card and de-asserting the
|
||||||
reset-gpios (if any).
|
reset-gpios (if any).
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
power-off-delay-us:
|
power-off-delay-us:
|
||||||
description:
|
description:
|
||||||
Delay in us after asserting the reset-gpios (if any)
|
Delay in us after asserting the reset-gpios (if any)
|
||||||
during power off of the card.
|
during power off of the card.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
|
|
@ -122,7 +122,6 @@ properties:
|
||||||
such as flow control thresholds.
|
such as flow control thresholds.
|
||||||
|
|
||||||
rx-internal-delay-ps:
|
rx-internal-delay-ps:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: |
|
description: |
|
||||||
RGMII Receive Clock Delay defined in pico seconds.
|
RGMII Receive Clock Delay defined in pico seconds.
|
||||||
This is used for controllers that have configurable RX internal delays.
|
This is used for controllers that have configurable RX internal delays.
|
||||||
|
@ -140,7 +139,6 @@ properties:
|
||||||
is used for components that can have configurable fifo sizes.
|
is used for components that can have configurable fifo sizes.
|
||||||
|
|
||||||
tx-internal-delay-ps:
|
tx-internal-delay-ps:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: |
|
description: |
|
||||||
RGMII Transmit Clock Delay defined in pico seconds.
|
RGMII Transmit Clock Delay defined in pico seconds.
|
||||||
This is used for controllers that have configurable TX internal delays.
|
This is used for controllers that have configurable TX internal delays.
|
||||||
|
|
|
@ -212,7 +212,6 @@ properties:
|
||||||
Triplet of delays. The 1st cell is reset pre-delay in micro
|
Triplet of delays. The 1st cell is reset pre-delay in micro
|
||||||
seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
|
seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
|
||||||
cell is reset post-delay in micro seconds.
|
cell is reset post-delay in micro seconds.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
minItems: 3
|
minItems: 3
|
||||||
maxItems: 3
|
maxItems: 3
|
||||||
|
|
||||||
|
|
|
@ -83,21 +83,18 @@ properties:
|
||||||
for each of the battery capacity lookup table.
|
for each of the battery capacity lookup table.
|
||||||
|
|
||||||
operating-range-celsius:
|
operating-range-celsius:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
description: operating temperature range of a battery
|
description: operating temperature range of a battery
|
||||||
items:
|
items:
|
||||||
- description: minimum temperature at which battery can operate
|
- description: minimum temperature at which battery can operate
|
||||||
- description: maximum temperature at which battery can operate
|
- description: maximum temperature at which battery can operate
|
||||||
|
|
||||||
ambient-celsius:
|
ambient-celsius:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
description: safe range of ambient temperature
|
description: safe range of ambient temperature
|
||||||
items:
|
items:
|
||||||
- description: alert when ambient temperature is lower than this value
|
- description: alert when ambient temperature is lower than this value
|
||||||
- description: alert when ambient temperature is higher than this value
|
- description: alert when ambient temperature is higher than this value
|
||||||
|
|
||||||
alert-celsius:
|
alert-celsius:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
description: safe range of battery temperature
|
description: safe range of battery temperature
|
||||||
items:
|
items:
|
||||||
- description: alert when battery temperature is lower than this value
|
- description: alert when battery temperature is lower than this value
|
||||||
|
|
|
@ -50,7 +50,6 @@ properties:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
input-current-limit-microamp:
|
input-current-limit-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: Maximum input current in micro Amps.
|
description: Maximum input current in micro Amps.
|
||||||
minimum: 50000
|
minimum: 50000
|
||||||
maximum: 500000
|
maximum: 500000
|
||||||
|
|
|
@ -62,7 +62,6 @@ properties:
|
||||||
description: IRQ line information.
|
description: IRQ line information.
|
||||||
|
|
||||||
dlg,irq-polling-delay-passive-ms:
|
dlg,irq-polling-delay-passive-ms:
|
||||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
|
||||||
minimum: 1000
|
minimum: 1000
|
||||||
maximum: 10000
|
maximum: 10000
|
||||||
description: |
|
description: |
|
||||||
|
|
|
@ -72,11 +72,9 @@ properties:
|
||||||
|
|
||||||
startup-delay-us:
|
startup-delay-us:
|
||||||
description: startup time in microseconds
|
description: startup time in microseconds
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
off-on-delay-us:
|
off-on-delay-us:
|
||||||
description: off delay time in microseconds
|
description: off delay time in microseconds
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
enable-active-high:
|
enable-active-high:
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -27,7 +27,6 @@ properties:
|
||||||
1: chargeable
|
1: chargeable
|
||||||
|
|
||||||
quartz-load-femtofarads:
|
quartz-load-femtofarads:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description:
|
description:
|
||||||
The capacitive load of the quartz(x-tal), expressed in femto
|
The capacitive load of the quartz(x-tal), expressed in femto
|
||||||
Farad (fF). The default value shall be listed (if optional),
|
Farad (fF). The default value shall be listed (if optional),
|
||||||
|
@ -47,7 +46,6 @@ properties:
|
||||||
deprecated: true
|
deprecated: true
|
||||||
|
|
||||||
trickle-resistor-ohms:
|
trickle-resistor-ohms:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description:
|
description:
|
||||||
Selected resistor for trickle charger. Should be given
|
Selected resistor for trickle charger. Should be given
|
||||||
if trickle charger should be enabled.
|
if trickle charger should be enabled.
|
||||||
|
|
|
@ -88,14 +88,12 @@ properties:
|
||||||
description:
|
description:
|
||||||
Rate at which poll occurs when auto-poll is set.
|
Rate at which poll occurs when auto-poll is set.
|
||||||
default 100ms.
|
default 100ms.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
default: 100
|
default: 100
|
||||||
|
|
||||||
poll-timeout-ms:
|
poll-timeout-ms:
|
||||||
description:
|
description:
|
||||||
Poll timeout when auto-poll is set, default
|
Poll timeout when auto-poll is set, default
|
||||||
3000ms.
|
3000ms.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
default: 3000
|
default: 3000
|
||||||
|
|
||||||
required:
|
required:
|
||||||
|
|
|
@ -41,14 +41,12 @@ properties:
|
||||||
values of 2k, 4k or 8k. If set to 0 it will be off. If this node is not
|
values of 2k, 4k or 8k. If set to 0 it will be off. If this node is not
|
||||||
mentioned or if the value is unknown, then micbias resistor is set to
|
mentioned or if the value is unknown, then micbias resistor is set to
|
||||||
4k.
|
4k.
|
||||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
|
||||||
enum: [ 0, 2, 4, 8 ]
|
enum: [ 0, 2, 4, 8 ]
|
||||||
|
|
||||||
micbias-voltage-m-volts:
|
micbias-voltage-m-volts:
|
||||||
description: The bias voltage to be used in mVolts. The voltage can take
|
description: The bias voltage to be used in mVolts. The voltage can take
|
||||||
values from 1.25V to 3V by 250mV steps. If this node is not mentioned
|
values from 1.25V to 3V by 250mV steps. If this node is not mentioned
|
||||||
or the value is unknown, then the value is set to 1.25V.
|
or the value is unknown, then the value is set to 1.25V.
|
||||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
|
||||||
enum: [ 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000 ]
|
enum: [ 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000 ]
|
||||||
|
|
||||||
lrclk-strength:
|
lrclk-strength:
|
||||||
|
|
|
@ -21,6 +21,8 @@ properties:
|
||||||
reg:
|
reg:
|
||||||
description: module registers
|
description: module registers
|
||||||
|
|
||||||
|
ranges: true
|
||||||
|
|
||||||
power-domains:
|
power-domains:
|
||||||
description:
|
description:
|
||||||
PM domain provider node and an args specifier containing
|
PM domain provider node and an args specifier containing
|
||||||
|
@ -62,6 +64,8 @@ properties:
|
||||||
'#size-cells':
|
'#size-cells':
|
||||||
const: 2
|
const: 2
|
||||||
|
|
||||||
|
dma-coherent: true
|
||||||
|
|
||||||
patternProperties:
|
patternProperties:
|
||||||
"^usb@":
|
"^usb@":
|
||||||
type: object
|
type: object
|
||||||
|
|
|
@ -19,7 +19,6 @@ properties:
|
||||||
pattern: "^watchdog(@.*|-[0-9a-f])?$"
|
pattern: "^watchdog(@.*|-[0-9a-f])?$"
|
||||||
|
|
||||||
timeout-sec:
|
timeout-sec:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description:
|
description:
|
||||||
Contains the watchdog timeout in seconds.
|
Contains the watchdog timeout in seconds.
|
||||||
|
|
||||||
|
|
|
@ -586,6 +586,14 @@ without significant effort.
|
||||||
The advantage of mounting with the "volatile" option is that all forms of
|
The advantage of mounting with the "volatile" option is that all forms of
|
||||||
sync calls to the upper filesystem are omitted.
|
sync calls to the upper filesystem are omitted.
|
||||||
|
|
||||||
|
In order to avoid a giving a false sense of safety, the syncfs (and fsync)
|
||||||
|
semantics of volatile mounts are slightly different than that of the rest of
|
||||||
|
VFS. If any writeback error occurs on the upperdir's filesystem after a
|
||||||
|
volatile mount takes place, all sync functions will return an error. Once this
|
||||||
|
condition is reached, the filesystem will not recover, and every subsequent sync
|
||||||
|
call will return an error, even if the upperdir has not experience a new error
|
||||||
|
since the last sync call.
|
||||||
|
|
||||||
When overlay is mounted with "volatile" option, the directory
|
When overlay is mounted with "volatile" option, the directory
|
||||||
"$workdir/work/incompat/volatile" is created. During next mount, overlay
|
"$workdir/work/incompat/volatile" is created. During next mount, overlay
|
||||||
checks for this directory and refuses to mount if present. This is a strong
|
checks for this directory and refuses to mount if present. This is a strong
|
||||||
|
|
|
@ -11,16 +11,13 @@ compiler [1]_. They are useful for runtime instrumentation and static analysis.
|
||||||
We can analyse, change and add further code during compilation via
|
We can analyse, change and add further code during compilation via
|
||||||
callbacks [2]_, GIMPLE [3]_, IPA [4]_ and RTL passes [5]_.
|
callbacks [2]_, GIMPLE [3]_, IPA [4]_ and RTL passes [5]_.
|
||||||
|
|
||||||
The GCC plugin infrastructure of the kernel supports all gcc versions from
|
The GCC plugin infrastructure of the kernel supports building out-of-tree
|
||||||
4.5 to 6.0, building out-of-tree modules, cross-compilation and building in a
|
modules, cross-compilation and building in a separate directory.
|
||||||
separate directory.
|
Plugin source files have to be compilable by a C++ compiler.
|
||||||
Plugin source files have to be compilable by both a C and a C++ compiler as well
|
|
||||||
because gcc versions 4.5 and 4.6 are compiled by a C compiler,
|
|
||||||
gcc-4.7 can be compiled by a C or a C++ compiler,
|
|
||||||
and versions 4.8+ can only be compiled by a C++ compiler.
|
|
||||||
|
|
||||||
Currently the GCC plugin infrastructure supports only the x86, arm, arm64 and
|
Currently the GCC plugin infrastructure supports only some architectures.
|
||||||
powerpc architectures.
|
Grep "select HAVE_GCC_PLUGINS" to find out which architectures support
|
||||||
|
GCC plugins.
|
||||||
|
|
||||||
This infrastructure was ported from grsecurity [6]_ and PaX [7]_.
|
This infrastructure was ported from grsecurity [6]_ and PaX [7]_.
|
||||||
|
|
||||||
|
@ -47,20 +44,13 @@ Files
|
||||||
This is a compatibility header for GCC plugins.
|
This is a compatibility header for GCC plugins.
|
||||||
It should be always included instead of individual gcc headers.
|
It should be always included instead of individual gcc headers.
|
||||||
|
|
||||||
**$(src)/scripts/gcc-plugin.sh**
|
|
||||||
|
|
||||||
This script checks the availability of the included headers in
|
|
||||||
gcc-common.h and chooses the proper host compiler to build the plugins
|
|
||||||
(gcc-4.7 can be built by either gcc or g++).
|
|
||||||
|
|
||||||
**$(src)/scripts/gcc-plugins/gcc-generate-gimple-pass.h,
|
**$(src)/scripts/gcc-plugins/gcc-generate-gimple-pass.h,
|
||||||
$(src)/scripts/gcc-plugins/gcc-generate-ipa-pass.h,
|
$(src)/scripts/gcc-plugins/gcc-generate-ipa-pass.h,
|
||||||
$(src)/scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h,
|
$(src)/scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h,
|
||||||
$(src)/scripts/gcc-plugins/gcc-generate-rtl-pass.h**
|
$(src)/scripts/gcc-plugins/gcc-generate-rtl-pass.h**
|
||||||
|
|
||||||
These headers automatically generate the registration structures for
|
These headers automatically generate the registration structures for
|
||||||
GIMPLE, SIMPLE_IPA, IPA and RTL passes. They support all gcc versions
|
GIMPLE, SIMPLE_IPA, IPA and RTL passes.
|
||||||
from 4.5 to 6.0.
|
|
||||||
They should be preferred to creating the structures by hand.
|
They should be preferred to creating the structures by hand.
|
||||||
|
|
||||||
|
|
||||||
|
@ -68,21 +58,25 @@ Usage
|
||||||
=====
|
=====
|
||||||
|
|
||||||
You must install the gcc plugin headers for your gcc version,
|
You must install the gcc plugin headers for your gcc version,
|
||||||
e.g., on Ubuntu for gcc-4.9::
|
e.g., on Ubuntu for gcc-10::
|
||||||
|
|
||||||
apt-get install gcc-4.9-plugin-dev
|
apt-get install gcc-10-plugin-dev
|
||||||
|
|
||||||
Or on Fedora::
|
Or on Fedora::
|
||||||
|
|
||||||
dnf install gcc-plugin-devel
|
dnf install gcc-plugin-devel
|
||||||
|
|
||||||
Enable a GCC plugin based feature in the kernel config::
|
Enable the GCC plugin infrastructure and some plugin(s) you want to use
|
||||||
|
in the kernel config::
|
||||||
|
|
||||||
|
CONFIG_GCC_PLUGINS=y
|
||||||
CONFIG_GCC_PLUGIN_CYC_COMPLEXITY=y
|
CONFIG_GCC_PLUGIN_CYC_COMPLEXITY=y
|
||||||
|
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
|
||||||
|
...
|
||||||
|
|
||||||
To compile only the plugin(s)::
|
To compile the minimum tool set including the plugin(s)::
|
||||||
|
|
||||||
make gcc-plugins
|
make scripts
|
||||||
|
|
||||||
or just run the kernel make and compile the whole kernel with
|
or just run the kernel make and compile the whole kernel with
|
||||||
the cyclomatic complexity GCC plugin.
|
the cyclomatic complexity GCC plugin.
|
||||||
|
@ -91,7 +85,8 @@ the cyclomatic complexity GCC plugin.
|
||||||
4. How to add a new GCC plugin
|
4. How to add a new GCC plugin
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
The GCC plugins are in $(src)/scripts/gcc-plugins/. You can use a file or a directory
|
The GCC plugins are in scripts/gcc-plugins/. You need to put plugin source files
|
||||||
here. It must be added to $(src)/scripts/gcc-plugins/Makefile,
|
right under scripts/gcc-plugins/. Creating subdirectories is not supported.
|
||||||
$(src)/scripts/Makefile.gcc-plugins and $(src)/arch/Kconfig.
|
It must be added to scripts/gcc-plugins/Makefile, scripts/Makefile.gcc-plugins
|
||||||
|
and a relevant Kconfig file.
|
||||||
See the cyc_complexity_plugin.c (CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) GCC plugin.
|
See the cyc_complexity_plugin.c (CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) GCC plugin.
|
||||||
|
|
|
@ -63,6 +63,50 @@ They can be enabled individually. The full list of the parameters: ::
|
||||||
Currently, the integrated assembler is disabled by default. You can pass
|
Currently, the integrated assembler is disabled by default. You can pass
|
||||||
``LLVM_IAS=1`` to enable it.
|
``LLVM_IAS=1`` to enable it.
|
||||||
|
|
||||||
|
Supported Architectures
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
LLVM does not target all of the architectures that Linux supports and
|
||||||
|
just because a target is supported in LLVM does not mean that the kernel
|
||||||
|
will build or work without any issues. Below is a general summary of
|
||||||
|
architectures that currently work with ``CC=clang`` or ``LLVM=1``. Level
|
||||||
|
of support corresponds to "S" values in the MAINTAINERS files. If an
|
||||||
|
architecture is not present, it either means that LLVM does not target
|
||||||
|
it or there are known issues. Using the latest stable version of LLVM or
|
||||||
|
even the development tree will generally yield the best results.
|
||||||
|
An architecture's ``defconfig`` is generally expected to work well,
|
||||||
|
certain configurations may have problems that have not been uncovered
|
||||||
|
yet. Bug reports are always welcome at the issue tracker below!
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 10 10 10
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Architecture
|
||||||
|
- Level of support
|
||||||
|
- ``make`` command
|
||||||
|
* - arm
|
||||||
|
- Supported
|
||||||
|
- ``LLVM=1``
|
||||||
|
* - arm64
|
||||||
|
- Supported
|
||||||
|
- ``LLVM=1``
|
||||||
|
* - mips
|
||||||
|
- Maintained
|
||||||
|
- ``CC=clang``
|
||||||
|
* - powerpc
|
||||||
|
- Maintained
|
||||||
|
- ``CC=clang``
|
||||||
|
* - riscv
|
||||||
|
- Maintained
|
||||||
|
- ``CC=clang``
|
||||||
|
* - s390
|
||||||
|
- Maintained
|
||||||
|
- ``CC=clang``
|
||||||
|
* - x86
|
||||||
|
- Supported
|
||||||
|
- ``LLVM=1``
|
||||||
|
|
||||||
Getting Help
|
Getting Help
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
|
@ -755,7 +755,7 @@ more details, with real examples.
|
||||||
bits on the scripts nonetheless.
|
bits on the scripts nonetheless.
|
||||||
|
|
||||||
Kbuild provides variables $(CONFIG_SHELL), $(AWK), $(PERL),
|
Kbuild provides variables $(CONFIG_SHELL), $(AWK), $(PERL),
|
||||||
$(PYTHON) and $(PYTHON3) to refer to interpreters for the respective
|
and $(PYTHON3) to refer to interpreters for the respective
|
||||||
scripts.
|
scripts.
|
||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
|
@ -1196,7 +1196,7 @@ icmp_errors_use_inbound_ifaddr - BOOLEAN
|
||||||
|
|
||||||
If non-zero, the message will be sent with the primary address of
|
If non-zero, the message will be sent with the primary address of
|
||||||
the interface that received the packet that caused the icmp error.
|
the interface that received the packet that caused the icmp error.
|
||||||
This is the behaviour network many administrators will expect from
|
This is the behaviour many network administrators will expect from
|
||||||
a router. And it can make debugging complicated network layouts
|
a router. And it can make debugging complicated network layouts
|
||||||
much easier.
|
much easier.
|
||||||
|
|
||||||
|
@ -1807,12 +1807,24 @@ seg6_flowlabel - INTEGER
|
||||||
``conf/default/*``:
|
``conf/default/*``:
|
||||||
Change the interface-specific default settings.
|
Change the interface-specific default settings.
|
||||||
|
|
||||||
|
These settings would be used during creating new interfaces.
|
||||||
|
|
||||||
|
|
||||||
``conf/all/*``:
|
``conf/all/*``:
|
||||||
Change all the interface-specific settings.
|
Change all the interface-specific settings.
|
||||||
|
|
||||||
[XXX: Other special features than forwarding?]
|
[XXX: Other special features than forwarding?]
|
||||||
|
|
||||||
|
conf/all/disable_ipv6 - BOOLEAN
|
||||||
|
Changing this value is same as changing ``conf/default/disable_ipv6``
|
||||||
|
setting and also all per-interface ``disable_ipv6`` settings to the same
|
||||||
|
value.
|
||||||
|
|
||||||
|
Reading this value does not have any particular meaning. It does not say
|
||||||
|
whether IPv6 support is enabled or disabled. Returned value can be 1
|
||||||
|
also in the case when some interface has ``disable_ipv6`` set to 0 and
|
||||||
|
has configured IPv6 addresses.
|
||||||
|
|
||||||
conf/all/forwarding - BOOLEAN
|
conf/all/forwarding - BOOLEAN
|
||||||
Enable global IPv6 forwarding between all interfaces.
|
Enable global IPv6 forwarding between all interfaces.
|
||||||
|
|
||||||
|
|
|
@ -534,3 +534,6 @@ offload. Hence, TLS TX device feature flag requires TX csum offload being set.
|
||||||
Disabling the latter implies clearing the former. Disabling TX checksum offload
|
Disabling the latter implies clearing the former. Disabling TX checksum offload
|
||||||
should not affect old connections, and drivers should make sure checksum
|
should not affect old connections, and drivers should make sure checksum
|
||||||
calculation does not break for them.
|
calculation does not break for them.
|
||||||
|
Similarly, device-offloaded TLS decryption implies doing RXCSUM. If the user
|
||||||
|
does not want to enable RX csum offload, TLS RX device feature is disabled
|
||||||
|
as well.
|
||||||
|
|
|
@ -360,10 +360,9 @@ since the last call to this ioctl. Bit 0 is the first page in the
|
||||||
memory slot. Ensure the entire structure is cleared to avoid padding
|
memory slot. Ensure the entire structure is cleared to avoid padding
|
||||||
issues.
|
issues.
|
||||||
|
|
||||||
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 specifies
|
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 of slot field specifies
|
||||||
the address space for which you want to return the dirty bitmap.
|
the address space for which you want to return the dirty bitmap. See
|
||||||
They must be less than the value that KVM_CHECK_EXTENSION returns for
|
KVM_SET_USER_MEMORY_REGION for details on the usage of slot field.
|
||||||
the KVM_CAP_MULTI_ADDRESS_SPACE capability.
|
|
||||||
|
|
||||||
The bits in the dirty bitmap are cleared before the ioctl returns, unless
|
The bits in the dirty bitmap are cleared before the ioctl returns, unless
|
||||||
KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 is enabled. For more information,
|
KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 is enabled. For more information,
|
||||||
|
@ -1281,6 +1280,9 @@ field userspace_addr, which must point at user addressable memory for
|
||||||
the entire memory slot size. Any object may back this memory, including
|
the entire memory slot size. Any object may back this memory, including
|
||||||
anonymous memory, ordinary files, and hugetlbfs.
|
anonymous memory, ordinary files, and hugetlbfs.
|
||||||
|
|
||||||
|
On architectures that support a form of address tagging, userspace_addr must
|
||||||
|
be an untagged address.
|
||||||
|
|
||||||
It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
|
It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
|
||||||
be identical. This allows large pages in the guest to be backed by large
|
be identical. This allows large pages in the guest to be backed by large
|
||||||
pages in the host.
|
pages in the host.
|
||||||
|
@ -1333,7 +1335,7 @@ documentation when it pops into existence).
|
||||||
|
|
||||||
:Capability: KVM_CAP_ENABLE_CAP_VM
|
:Capability: KVM_CAP_ENABLE_CAP_VM
|
||||||
:Architectures: all
|
:Architectures: all
|
||||||
:Type: vcpu ioctl
|
:Type: vm ioctl
|
||||||
:Parameters: struct kvm_enable_cap (in)
|
:Parameters: struct kvm_enable_cap (in)
|
||||||
:Returns: 0 on success; -1 on error
|
:Returns: 0 on success; -1 on error
|
||||||
|
|
||||||
|
@ -4432,7 +4434,7 @@ to I/O ports.
|
||||||
:Capability: KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
:Capability: KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
||||||
:Architectures: x86, arm, arm64, mips
|
:Architectures: x86, arm, arm64, mips
|
||||||
:Type: vm ioctl
|
:Type: vm ioctl
|
||||||
:Parameters: struct kvm_dirty_log (in)
|
:Parameters: struct kvm_clear_dirty_log (in)
|
||||||
:Returns: 0 on success, -1 on error
|
:Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
::
|
::
|
||||||
|
@ -4459,10 +4461,9 @@ in KVM's dirty bitmap, and dirty tracking is re-enabled for that page
|
||||||
(for example via write-protection, or by clearing the dirty bit in
|
(for example via write-protection, or by clearing the dirty bit in
|
||||||
a page table entry).
|
a page table entry).
|
||||||
|
|
||||||
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 specifies
|
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 of slot field specifies
|
||||||
the address space for which you want to return the dirty bitmap.
|
the address space for which you want to clear the dirty status. See
|
||||||
They must be less than the value that KVM_CHECK_EXTENSION returns for
|
KVM_SET_USER_MEMORY_REGION for details on the usage of slot field.
|
||||||
the KVM_CAP_MULTI_ADDRESS_SPACE capability.
|
|
||||||
|
|
||||||
This ioctl is mostly useful when KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
This ioctl is mostly useful when KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
||||||
is enabled; for more information, see the description of the capability.
|
is enabled; for more information, see the description of the capability.
|
||||||
|
|
|
@ -37,8 +37,10 @@ call L2.
|
||||||
Running nested VMX
|
Running nested VMX
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
The nested VMX feature is disabled by default. It can be enabled by giving
|
The nested VMX feature is enabled by default since Linux kernel v4.20. For
|
||||||
the "nested=1" option to the kvm-intel module.
|
older Linux kernel, it can be enabled by giving the "nested=1" option to the
|
||||||
|
kvm-intel module.
|
||||||
|
|
||||||
|
|
||||||
No modifications are required to user space (qemu). However, qemu's default
|
No modifications are required to user space (qemu). However, qemu's default
|
||||||
emulated CPU type (qemu64) does not list the "VMX" CPU feature, so it must be
|
emulated CPU type (qemu64) does not list the "VMX" CPU feature, so it must be
|
||||||
|
|
|
@ -74,7 +74,7 @@ few:
|
||||||
Enabling "nested" (x86)
|
Enabling "nested" (x86)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
From Linux kernel v4.19 onwards, the ``nested`` KVM parameter is enabled
|
From Linux kernel v4.20 onwards, the ``nested`` KVM parameter is enabled
|
||||||
by default for Intel and AMD. (Though your Linux distribution might
|
by default for Intel and AMD. (Though your Linux distribution might
|
||||||
override this default.)
|
override this default.)
|
||||||
|
|
||||||
|
|
47
MAINTAINERS
47
MAINTAINERS
|
@ -2616,8 +2616,8 @@ S: Maintained
|
||||||
F: drivers/power/reset/keystone-reset.c
|
F: drivers/power/reset/keystone-reset.c
|
||||||
|
|
||||||
ARM/TEXAS INSTRUMENTS K3 ARCHITECTURE
|
ARM/TEXAS INSTRUMENTS K3 ARCHITECTURE
|
||||||
M: Tero Kristo <t-kristo@ti.com>
|
|
||||||
M: Nishanth Menon <nm@ti.com>
|
M: Nishanth Menon <nm@ti.com>
|
||||||
|
M: Tero Kristo <kristo@kernel.org>
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
S: Supported
|
S: Supported
|
||||||
F: Documentation/devicetree/bindings/arm/ti/k3.yaml
|
F: Documentation/devicetree/bindings/arm/ti/k3.yaml
|
||||||
|
@ -3239,6 +3239,7 @@ L: netdev@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
W: http://sourceforge.net/projects/bonding/
|
W: http://sourceforge.net/projects/bonding/
|
||||||
F: drivers/net/bonding/
|
F: drivers/net/bonding/
|
||||||
|
F: include/net/bonding.h
|
||||||
F: include/uapi/linux/if_bonding.h
|
F: include/uapi/linux/if_bonding.h
|
||||||
|
|
||||||
BOSCH SENSORTEC BMA400 ACCELEROMETER IIO DRIVER
|
BOSCH SENSORTEC BMA400 ACCELEROMETER IIO DRIVER
|
||||||
|
@ -3334,7 +3335,7 @@ F: arch/riscv/net/
|
||||||
X: arch/riscv/net/bpf_jit_comp64.c
|
X: arch/riscv/net/bpf_jit_comp64.c
|
||||||
|
|
||||||
BPF JIT for RISC-V (64-bit)
|
BPF JIT for RISC-V (64-bit)
|
||||||
M: Björn Töpel <bjorn.topel@gmail.com>
|
M: Björn Töpel <bjorn@kernel.org>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
L: bpf@vger.kernel.org
|
L: bpf@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
@ -3411,7 +3412,7 @@ F: Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
|
||||||
F: drivers/pci/controller/pcie-brcmstb.c
|
F: drivers/pci/controller/pcie-brcmstb.c
|
||||||
F: drivers/staging/vc04_services
|
F: drivers/staging/vc04_services
|
||||||
N: bcm2711
|
N: bcm2711
|
||||||
N: bcm2835
|
N: bcm283*
|
||||||
|
|
||||||
BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
|
BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
|
||||||
M: Florian Fainelli <f.fainelli@gmail.com>
|
M: Florian Fainelli <f.fainelli@gmail.com>
|
||||||
|
@ -3879,7 +3880,7 @@ F: Documentation/devicetree/bindings/mtd/cadence-nand-controller.txt
|
||||||
F: drivers/mtd/nand/raw/cadence-nand-controller.c
|
F: drivers/mtd/nand/raw/cadence-nand-controller.c
|
||||||
|
|
||||||
CADENCE USB3 DRD IP DRIVER
|
CADENCE USB3 DRD IP DRIVER
|
||||||
M: Peter Chen <peter.chen@nxp.com>
|
M: Peter Chen <peter.chen@kernel.org>
|
||||||
M: Pawel Laszczak <pawell@cadence.com>
|
M: Pawel Laszczak <pawell@cadence.com>
|
||||||
R: Roger Quadros <rogerq@kernel.org>
|
R: Roger Quadros <rogerq@kernel.org>
|
||||||
R: Aswath Govindraju <a-govindraju@ti.com>
|
R: Aswath Govindraju <a-govindraju@ti.com>
|
||||||
|
@ -4161,7 +4162,7 @@ S: Maintained
|
||||||
F: Documentation/translations/zh_CN/
|
F: Documentation/translations/zh_CN/
|
||||||
|
|
||||||
CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
|
CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
|
||||||
M: Peter Chen <Peter.Chen@nxp.com>
|
M: Peter Chen <peter.chen@kernel.org>
|
||||||
L: linux-usb@vger.kernel.org
|
L: linux-usb@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
|
||||||
|
@ -4303,7 +4304,7 @@ S: Maintained
|
||||||
F: .clang-format
|
F: .clang-format
|
||||||
|
|
||||||
CLANG/LLVM BUILD SUPPORT
|
CLANG/LLVM BUILD SUPPORT
|
||||||
M: Nathan Chancellor <natechancellor@gmail.com>
|
M: Nathan Chancellor <nathan@kernel.org>
|
||||||
M: Nick Desaulniers <ndesaulniers@google.com>
|
M: Nick Desaulniers <ndesaulniers@google.com>
|
||||||
L: clang-built-linux@googlegroups.com
|
L: clang-built-linux@googlegroups.com
|
||||||
S: Supported
|
S: Supported
|
||||||
|
@ -4311,7 +4312,9 @@ W: https://clangbuiltlinux.github.io/
|
||||||
B: https://github.com/ClangBuiltLinux/linux/issues
|
B: https://github.com/ClangBuiltLinux/linux/issues
|
||||||
C: irc://chat.freenode.net/clangbuiltlinux
|
C: irc://chat.freenode.net/clangbuiltlinux
|
||||||
F: Documentation/kbuild/llvm.rst
|
F: Documentation/kbuild/llvm.rst
|
||||||
|
F: include/linux/compiler-clang.h
|
||||||
F: scripts/clang-tools/
|
F: scripts/clang-tools/
|
||||||
|
F: scripts/clang-version.sh
|
||||||
F: scripts/lld-version.sh
|
F: scripts/lld-version.sh
|
||||||
K: \b(?i:clang|llvm)\b
|
K: \b(?i:clang|llvm)\b
|
||||||
|
|
||||||
|
@ -6472,9 +6475,9 @@ S: Maintained
|
||||||
F: drivers/edac/skx_*.[ch]
|
F: drivers/edac/skx_*.[ch]
|
||||||
|
|
||||||
EDAC-TI
|
EDAC-TI
|
||||||
M: Tero Kristo <t-kristo@ti.com>
|
M: Tero Kristo <kristo@kernel.org>
|
||||||
L: linux-edac@vger.kernel.org
|
L: linux-edac@vger.kernel.org
|
||||||
S: Maintained
|
S: Odd Fixes
|
||||||
F: drivers/edac/ti_edac.c
|
F: drivers/edac/ti_edac.c
|
||||||
|
|
||||||
EDIROL UA-101/UA-1000 DRIVER
|
EDIROL UA-101/UA-1000 DRIVER
|
||||||
|
@ -8432,11 +8435,8 @@ F: drivers/i3c/
|
||||||
F: include/linux/i3c/
|
F: include/linux/i3c/
|
||||||
|
|
||||||
IA64 (Itanium) PLATFORM
|
IA64 (Itanium) PLATFORM
|
||||||
M: Tony Luck <tony.luck@intel.com>
|
|
||||||
M: Fenghua Yu <fenghua.yu@intel.com>
|
|
||||||
L: linux-ia64@vger.kernel.org
|
L: linux-ia64@vger.kernel.org
|
||||||
S: Odd Fixes
|
S: Orphan
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
|
|
||||||
F: Documentation/ia64/
|
F: Documentation/ia64/
|
||||||
F: arch/ia64/
|
F: arch/ia64/
|
||||||
|
|
||||||
|
@ -12414,6 +12414,7 @@ F: tools/testing/selftests/net/ipsec.c
|
||||||
NETWORKING [IPv4/IPv6]
|
NETWORKING [IPv4/IPv6]
|
||||||
M: "David S. Miller" <davem@davemloft.net>
|
M: "David S. Miller" <davem@davemloft.net>
|
||||||
M: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
|
M: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
|
||||||
|
M: David Ahern <dsahern@kernel.org>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
||||||
|
@ -14505,10 +14506,18 @@ S: Supported
|
||||||
F: drivers/crypto/qat/
|
F: drivers/crypto/qat/
|
||||||
|
|
||||||
QCOM AUDIO (ASoC) DRIVERS
|
QCOM AUDIO (ASoC) DRIVERS
|
||||||
M: Patrick Lai <plai@codeaurora.org>
|
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||||
M: Banajit Goswami <bgoswami@codeaurora.org>
|
M: Banajit Goswami <bgoswami@codeaurora.org>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
||||||
S: Supported
|
S: Supported
|
||||||
|
F: sound/soc/codecs/lpass-va-macro.c
|
||||||
|
F: sound/soc/codecs/lpass-wsa-macro.*
|
||||||
|
F: sound/soc/codecs/msm8916-wcd-analog.c
|
||||||
|
F: sound/soc/codecs/msm8916-wcd-digital.c
|
||||||
|
F: sound/soc/codecs/wcd9335.*
|
||||||
|
F: sound/soc/codecs/wcd934x.c
|
||||||
|
F: sound/soc/codecs/wcd-clsh-v2.*
|
||||||
|
F: sound/soc/codecs/wsa881x.c
|
||||||
F: sound/soc/qcom/
|
F: sound/soc/qcom/
|
||||||
|
|
||||||
QCOM IPA DRIVER
|
QCOM IPA DRIVER
|
||||||
|
@ -16960,7 +16969,7 @@ M: Olivier Moysan <olivier.moysan@st.com>
|
||||||
M: Arnaud Pouliquen <arnaud.pouliquen@st.com>
|
M: Arnaud Pouliquen <arnaud.pouliquen@st.com>
|
||||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Documentation/devicetree/bindings/sound/st,stm32-*.txt
|
F: Documentation/devicetree/bindings/iio/adc/st,stm32-*.yaml
|
||||||
F: sound/soc/stm/
|
F: sound/soc/stm/
|
||||||
|
|
||||||
STM32 TIMER/LPTIMER DRIVERS
|
STM32 TIMER/LPTIMER DRIVERS
|
||||||
|
@ -17564,7 +17573,7 @@ F: include/linux/dma/k3-psil.h
|
||||||
|
|
||||||
TEXAS INSTRUMENTS' SYSTEM CONTROL INTERFACE (TISCI) PROTOCOL DRIVER
|
TEXAS INSTRUMENTS' SYSTEM CONTROL INTERFACE (TISCI) PROTOCOL DRIVER
|
||||||
M: Nishanth Menon <nm@ti.com>
|
M: Nishanth Menon <nm@ti.com>
|
||||||
M: Tero Kristo <t-kristo@ti.com>
|
M: Tero Kristo <kristo@kernel.org>
|
||||||
M: Santosh Shilimkar <ssantosh@kernel.org>
|
M: Santosh Shilimkar <ssantosh@kernel.org>
|
||||||
L: linux-arm-kernel@lists.infradead.org
|
L: linux-arm-kernel@lists.infradead.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
@ -17708,9 +17717,9 @@ S: Maintained
|
||||||
F: drivers/clk/clk-cdce706.c
|
F: drivers/clk/clk-cdce706.c
|
||||||
|
|
||||||
TI CLOCK DRIVER
|
TI CLOCK DRIVER
|
||||||
M: Tero Kristo <t-kristo@ti.com>
|
M: Tero Kristo <kristo@kernel.org>
|
||||||
L: linux-omap@vger.kernel.org
|
L: linux-omap@vger.kernel.org
|
||||||
S: Maintained
|
S: Odd Fixes
|
||||||
F: drivers/clk/ti/
|
F: drivers/clk/ti/
|
||||||
F: include/linux/clk/ti.h
|
F: include/linux/clk/ti.h
|
||||||
|
|
||||||
|
@ -18413,7 +18422,7 @@ F: Documentation/usb/ohci.rst
|
||||||
F: drivers/usb/host/ohci*
|
F: drivers/usb/host/ohci*
|
||||||
|
|
||||||
USB OTG FSM (Finite State Machine)
|
USB OTG FSM (Finite State Machine)
|
||||||
M: Peter Chen <Peter.Chen@nxp.com>
|
M: Peter Chen <peter.chen@kernel.org>
|
||||||
L: linux-usb@vger.kernel.org
|
L: linux-usb@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
|
||||||
|
@ -19417,7 +19426,7 @@ F: drivers/net/ethernet/*/*/*xdp*
|
||||||
K: (?:\b|_)xdp(?:\b|_)
|
K: (?:\b|_)xdp(?:\b|_)
|
||||||
|
|
||||||
XDP SOCKETS (AF_XDP)
|
XDP SOCKETS (AF_XDP)
|
||||||
M: Björn Töpel <bjorn.topel@intel.com>
|
M: Björn Töpel <bjorn@kernel.org>
|
||||||
M: Magnus Karlsson <magnus.karlsson@intel.com>
|
M: Magnus Karlsson <magnus.karlsson@intel.com>
|
||||||
R: Jonathan Lemon <jonathan.lemon@gmail.com>
|
R: Jonathan Lemon <jonathan.lemon@gmail.com>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
|
|
15
Makefile
15
Makefile
|
@ -2,7 +2,7 @@
|
||||||
VERSION = 5
|
VERSION = 5
|
||||||
PATCHLEVEL = 11
|
PATCHLEVEL = 11
|
||||||
SUBLEVEL = 0
|
SUBLEVEL = 0
|
||||||
EXTRAVERSION = -rc4
|
EXTRAVERSION = -rc7
|
||||||
NAME = Kleptomaniac Octopus
|
NAME = Kleptomaniac Octopus
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
|
@ -452,7 +452,6 @@ AWK = awk
|
||||||
INSTALLKERNEL := installkernel
|
INSTALLKERNEL := installkernel
|
||||||
DEPMOD = depmod
|
DEPMOD = depmod
|
||||||
PERL = perl
|
PERL = perl
|
||||||
PYTHON = python
|
|
||||||
PYTHON3 = python3
|
PYTHON3 = python3
|
||||||
CHECK = sparse
|
CHECK = sparse
|
||||||
BASH = bash
|
BASH = bash
|
||||||
|
@ -508,7 +507,7 @@ CLANG_FLAGS :=
|
||||||
|
|
||||||
export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
|
export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
|
||||||
export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
|
export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
|
||||||
export PERL PYTHON PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
|
export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
|
||||||
export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD
|
export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD
|
||||||
export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
|
export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
|
||||||
|
|
||||||
|
@ -812,10 +811,12 @@ KBUILD_CFLAGS += -ftrivial-auto-var-init=zero
|
||||||
KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
|
KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
DEBUG_CFLAGS :=
|
||||||
|
|
||||||
# Workaround for GCC versions < 5.0
|
# Workaround for GCC versions < 5.0
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
|
||||||
ifdef CONFIG_CC_IS_GCC
|
ifdef CONFIG_CC_IS_GCC
|
||||||
DEBUG_CFLAGS := $(call cc-ifversion, -lt, 0500, $(call cc-option, -fno-var-tracking-assignments))
|
DEBUG_CFLAGS += $(call cc-ifversion, -lt, 0500, $(call cc-option, -fno-var-tracking-assignments))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_DEBUG_INFO
|
ifdef CONFIG_DEBUG_INFO
|
||||||
|
@ -948,12 +949,6 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
|
||||||
# change __FILE__ to the relative path from the srctree
|
# change __FILE__ to the relative path from the srctree
|
||||||
KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
|
KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
|
||||||
|
|
||||||
# ensure -fcf-protection is disabled when using retpoline as it is
|
|
||||||
# incompatible with -mindirect-branch=thunk-extern
|
|
||||||
ifdef CONFIG_RETPOLINE
|
|
||||||
KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# include additional Makefiles when needed
|
# include additional Makefiles when needed
|
||||||
include-y := scripts/Makefile.extrawarn
|
include-y := scripts/Makefile.extrawarn
|
||||||
include-$(CONFIG_KASAN) += scripts/Makefile.kasan
|
include-$(CONFIG_KASAN) += scripts/Makefile.kasan
|
||||||
|
|
|
@ -15,7 +15,8 @@ static int node_offset(void *fdt, const char *node_path)
|
||||||
{
|
{
|
||||||
int offset = fdt_path_offset(fdt, node_path);
|
int offset = fdt_path_offset(fdt, node_path);
|
||||||
if (offset == -FDT_ERR_NOTFOUND)
|
if (offset == -FDT_ERR_NOTFOUND)
|
||||||
offset = fdt_add_subnode(fdt, 0, node_path);
|
/* Add the node to root if not found, dropping the leading '/' */
|
||||||
|
offset = fdt_add_subnode(fdt, 0, node_path + 1);
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,13 @@
|
||||||
stdout-path = &uart1;
|
stdout-path = &uart1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
mmc0 = &usdhc2;
|
||||||
|
mmc1 = &usdhc3;
|
||||||
|
mmc2 = &usdhc4;
|
||||||
|
/delete-property/ mmc3;
|
||||||
|
};
|
||||||
|
|
||||||
memory@10000000 {
|
memory@10000000 {
|
||||||
device_type = "memory";
|
device_type = "memory";
|
||||||
reg = <0x10000000 0x80000000>;
|
reg = <0x10000000 0x80000000>;
|
||||||
|
|
|
@ -418,7 +418,7 @@
|
||||||
|
|
||||||
/* VDD_AUD_1P8: Audio codec */
|
/* VDD_AUD_1P8: Audio codec */
|
||||||
reg_aud_1p8v: ldo3 {
|
reg_aud_1p8v: ldo3 {
|
||||||
regulator-name = "vdd1p8";
|
regulator-name = "vdd1p8a";
|
||||||
regulator-min-microvolt = <1800000>;
|
regulator-min-microvolt = <1800000>;
|
||||||
regulator-max-microvolt = <1800000>;
|
regulator-max-microvolt = <1800000>;
|
||||||
regulator-boot-on;
|
regulator-boot-on;
|
||||||
|
|
|
@ -137,7 +137,7 @@
|
||||||
|
|
||||||
lcd_backlight: lcd-backlight {
|
lcd_backlight: lcd-backlight {
|
||||||
compatible = "pwm-backlight";
|
compatible = "pwm-backlight";
|
||||||
pwms = <&pwm4 0 5000000>;
|
pwms = <&pwm4 0 5000000 0>;
|
||||||
pwm-names = "LCD_BKLT_PWM";
|
pwm-names = "LCD_BKLT_PWM";
|
||||||
|
|
||||||
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
||||||
|
@ -167,7 +167,7 @@
|
||||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
status = "disabld";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c_cam: i2c-gpio-cam {
|
i2c_cam: i2c-gpio-cam {
|
||||||
|
@ -179,7 +179,7 @@
|
||||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
status = "disabld";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,6 @@
|
||||||
&fec {
|
&fec {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
|
pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
|
||||||
phy-handle = <&phy>;
|
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
phy-reset-duration = <2>;
|
phy-reset-duration = <2>;
|
||||||
phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
|
phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
|
||||||
|
@ -63,10 +62,19 @@
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
phy: ethernet-phy@0 {
|
/*
|
||||||
|
* The PHY can appear at either address 0 or 4 due to the
|
||||||
|
* configuration (LED) pin not being pulled sufficiently.
|
||||||
|
*/
|
||||||
|
ethernet-phy@0 {
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
qca,clk-out-frequency = <125000000>;
|
qca,clk-out-frequency = <125000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ethernet-phy@4 {
|
||||||
|
reg = <4>;
|
||||||
|
qca,clk-out-frequency = <125000000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,7 @@
|
||||||
compatible = "nxp,pcf2127";
|
compatible = "nxp,pcf2127";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
spi-max-frequency = <2000000>;
|
spi-max-frequency = <2000000>;
|
||||||
|
reset-source;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -326,9 +326,6 @@
|
||||||
|
|
||||||
clocks = <&xtal_32k>, <&xtal>;
|
clocks = <&xtal_32k>, <&xtal>;
|
||||||
clock-names = "xtal_32k", "xtal";
|
clock-names = "xtal_32k", "xtal";
|
||||||
|
|
||||||
assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>;
|
|
||||||
assigned-clock-rates = <208000000>;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
gpio-sck = <&gpio1 12 GPIO_ACTIVE_HIGH>;
|
gpio-sck = <&gpio1 12 GPIO_ACTIVE_HIGH>;
|
||||||
gpio-miso = <&gpio1 18 GPIO_ACTIVE_HIGH>;
|
gpio-miso = <&gpio1 18 GPIO_ACTIVE_HIGH>;
|
||||||
gpio-mosi = <&gpio1 20 GPIO_ACTIVE_HIGH>;
|
gpio-mosi = <&gpio1 20 GPIO_ACTIVE_HIGH>;
|
||||||
cs-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
|
cs-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
|
||||||
num-chipselects = <1>;
|
num-chipselects = <1>;
|
||||||
|
|
||||||
/* lcd panel */
|
/* lcd panel */
|
||||||
|
@ -124,7 +124,6 @@
|
||||||
spi-max-frequency = <100000>;
|
spi-max-frequency = <100000>;
|
||||||
spi-cpol;
|
spi-cpol;
|
||||||
spi-cpha;
|
spi-cpha;
|
||||||
spi-cs-high;
|
|
||||||
|
|
||||||
backlight= <&backlight>;
|
backlight= <&backlight>;
|
||||||
label = "lcd";
|
label = "lcd";
|
||||||
|
|
|
@ -16,8 +16,13 @@
|
||||||
debounce-interval = <10>;
|
debounce-interval = <10>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We use pad 0x4a100116 abe_dmic_din3.gpio_122 as the irq instead
|
||||||
|
* of the gpio interrupt to avoid lost events in deeper idle states.
|
||||||
|
*/
|
||||||
slider {
|
slider {
|
||||||
label = "Keypad Slide";
|
label = "Keypad Slide";
|
||||||
|
interrupts-extended = <&omap4_pmx_core 0xd6>;
|
||||||
gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */
|
gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */
|
||||||
linux,input-type = <EV_SW>;
|
linux,input-type = <EV_SW>;
|
||||||
linux,code = <SW_KEYPAD_SLIDE>;
|
linux,code = <SW_KEYPAD_SLIDE>;
|
||||||
|
|
|
@ -12,4 +12,42 @@
|
||||||
200000 0>;
|
200000 0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/* Modem trace memory */
|
||||||
|
ram@06000000 {
|
||||||
|
reg = <0x06000000 0x00f00000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Modem shared memory */
|
||||||
|
ram@06f00000 {
|
||||||
|
reg = <0x06f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Modem private memory */
|
||||||
|
ram@07000000 {
|
||||||
|
reg = <0x07000000 0x01000000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initial Secure Software ISSW memory
|
||||||
|
*
|
||||||
|
* This is probably only used if the kernel tries
|
||||||
|
* to actually call into trustzone to run secure
|
||||||
|
* applications, which the mainline kernel probably
|
||||||
|
* will not do on this old chipset. But you can never
|
||||||
|
* be too careful, so reserve this memory anyway.
|
||||||
|
*/
|
||||||
|
ram@17f00000 {
|
||||||
|
reg = <0x17f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,4 +12,42 @@
|
||||||
200000 0>;
|
200000 0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/* Modem trace memory */
|
||||||
|
ram@06000000 {
|
||||||
|
reg = <0x06000000 0x00f00000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Modem shared memory */
|
||||||
|
ram@06f00000 {
|
||||||
|
reg = <0x06f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Modem private memory */
|
||||||
|
ram@07000000 {
|
||||||
|
reg = <0x07000000 0x01000000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initial Secure Software ISSW memory
|
||||||
|
*
|
||||||
|
* This is probably only used if the kernel tries
|
||||||
|
* to actually call into trustzone to run secure
|
||||||
|
* applications, which the mainline kernel probably
|
||||||
|
* will not do on this old chipset. But you can never
|
||||||
|
* be too careful, so reserve this memory anyway.
|
||||||
|
*/
|
||||||
|
ram@17f00000 {
|
||||||
|
reg = <0x17f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include "ste-dbx5x0.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
cpus {
|
||||||
|
cpu@300 {
|
||||||
|
/* cpufreq controls */
|
||||||
|
operating-points = <1152000 0
|
||||||
|
800000 0
|
||||||
|
400000 0
|
||||||
|
200000 0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initial Secure Software ISSW memory
|
||||||
|
*
|
||||||
|
* This is probably only used if the kernel tries
|
||||||
|
* to actually call into trustzone to run secure
|
||||||
|
* applications, which the mainline kernel probably
|
||||||
|
* will not do on this old chipset. But you can never
|
||||||
|
* be too careful, so reserve this memory anyway.
|
||||||
|
*/
|
||||||
|
ram@17f00000 {
|
||||||
|
reg = <0x17f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -4,7 +4,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include "ste-db8500.dtsi"
|
#include "ste-db9500.dtsi"
|
||||||
#include "ste-href-ab8500.dtsi"
|
#include "ste-href-ab8500.dtsi"
|
||||||
#include "ste-href-family-pinctrl.dtsi"
|
#include "ste-href-family-pinctrl.dtsi"
|
||||||
|
|
||||||
|
|
|
@ -33,9 +33,9 @@
|
||||||
* during TX anyway and that it only controls drive enable DE
|
* during TX anyway and that it only controls drive enable DE
|
||||||
* line. Hence, the RX is always enabled here.
|
* line. Hence, the RX is always enabled here.
|
||||||
*/
|
*/
|
||||||
rs485-rx-en {
|
rs485-rx-en-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <8 GPIO_ACTIVE_HIGH>;
|
gpios = <8 0>;
|
||||||
output-low;
|
output-low;
|
||||||
line-name = "rs485-rx-en";
|
line-name = "rs485-rx-en";
|
||||||
};
|
};
|
||||||
|
@ -61,9 +61,9 @@
|
||||||
* order to reset the Hub when USB bus is powered down, but
|
* order to reset the Hub when USB bus is powered down, but
|
||||||
* so far there is no such functionality.
|
* so far there is no such functionality.
|
||||||
*/
|
*/
|
||||||
usb-hub {
|
usb-hub-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <2 GPIO_ACTIVE_HIGH>;
|
gpios = <2 0>;
|
||||||
output-high;
|
output-high;
|
||||||
line-name = "usb-hub-reset";
|
line-name = "usb-hub-reset";
|
||||||
};
|
};
|
||||||
|
@ -87,6 +87,12 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&i2c4 {
|
||||||
|
touchscreen@49 {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&i2c5 { /* TP7/TP8 */
|
&i2c5 { /* TP7/TP8 */
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&i2c5_pins_a>;
|
pinctrl-0 = <&i2c5_pins_a>;
|
||||||
|
@ -104,7 +110,7 @@
|
||||||
* are used for on-board microSD slot instead.
|
* are used for on-board microSD slot instead.
|
||||||
*/
|
*/
|
||||||
/delete-property/broken-cd;
|
/delete-property/broken-cd;
|
||||||
cd-gpios = <&gpioi 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
cd-gpios = <&gpioi 10 GPIO_ACTIVE_HIGH>;
|
||||||
disable-wp;
|
disable-wp;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -43,9 +43,9 @@
|
||||||
* in order to turn on port power when USB bus is powered up, but so
|
* in order to turn on port power when USB bus is powered up, but so
|
||||||
* far there is no such functionality.
|
* far there is no such functionality.
|
||||||
*/
|
*/
|
||||||
usb-port-power {
|
usb-port-power-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <13 GPIO_ACTIVE_LOW>;
|
gpios = <13 0>;
|
||||||
output-low;
|
output-low;
|
||||||
line-name = "usb-port-power";
|
line-name = "usb-port-power";
|
||||||
};
|
};
|
||||||
|
|
|
@ -390,7 +390,8 @@
|
||||||
pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
|
pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
|
||||||
pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
|
pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
|
||||||
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
|
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
|
||||||
broken-cd;
|
cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||||
|
disable-wp;
|
||||||
st,sig-dir;
|
st,sig-dir;
|
||||||
st,neg-edge;
|
st,neg-edge;
|
||||||
st,use-ckin;
|
st,use-ckin;
|
||||||
|
|
|
@ -110,7 +110,7 @@
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy-handle = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii-id";
|
||||||
phy-supply = <®_gmac_3v3>;
|
phy-supply = <®_gmac_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||||||
|
#ifndef _ARM_KEXEC_INTERNAL_H
|
||||||
|
#define _ARM_KEXEC_INTERNAL_H
|
||||||
|
|
||||||
|
struct kexec_relocate_data {
|
||||||
|
unsigned long kexec_start_address;
|
||||||
|
unsigned long kexec_indirection_page;
|
||||||
|
unsigned long kexec_mach_type;
|
||||||
|
unsigned long kexec_r2;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -149,7 +149,34 @@
|
||||||
|
|
||||||
.align
|
.align
|
||||||
99: .word .
|
99: .word .
|
||||||
|
#if defined(ZIMAGE)
|
||||||
|
.word . + 4
|
||||||
|
/*
|
||||||
|
* Storage for the state maintained by the macro.
|
||||||
|
*
|
||||||
|
* In the kernel proper, this data is located in arch/arm/mach-tegra/tegra.c.
|
||||||
|
* That's because this header is included from multiple files, and we only
|
||||||
|
* want a single copy of the data. In particular, the UART probing code above
|
||||||
|
* assumes it's running using physical addresses. This is true when this file
|
||||||
|
* is included from head.o, but not when included from debug.o. So we need
|
||||||
|
* to share the probe results between the two copies, rather than having
|
||||||
|
* to re-run the probing again later.
|
||||||
|
*
|
||||||
|
* In the decompressor, we put the storage right here, since common.c
|
||||||
|
* isn't included in the decompressor build. This storage data gets put in
|
||||||
|
* .text even though it's really data, since .data is discarded from the
|
||||||
|
* decompressor. Luckily, .text is writeable in the decompressor, unless
|
||||||
|
* CONFIG_ZBOOT_ROM. That dependency is handled in arch/arm/Kconfig.debug.
|
||||||
|
*/
|
||||||
|
/* Debug UART initialization required */
|
||||||
|
.word 1
|
||||||
|
/* Debug UART physical address */
|
||||||
|
.word 0
|
||||||
|
/* Debug UART virtual address */
|
||||||
|
.word 0
|
||||||
|
#else
|
||||||
.word tegra_uart_config
|
.word tegra_uart_config
|
||||||
|
#endif
|
||||||
.ltorg
|
.ltorg
|
||||||
|
|
||||||
/* Load previously selected UART address */
|
/* Load previously selected UART address */
|
||||||
|
@ -189,30 +216,3 @@
|
||||||
|
|
||||||
.macro waituarttxrdy,rd,rx
|
.macro waituarttxrdy,rd,rx
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
/*
|
|
||||||
* Storage for the state maintained by the macros above.
|
|
||||||
*
|
|
||||||
* In the kernel proper, this data is located in arch/arm/mach-tegra/tegra.c.
|
|
||||||
* That's because this header is included from multiple files, and we only
|
|
||||||
* want a single copy of the data. In particular, the UART probing code above
|
|
||||||
* assumes it's running using physical addresses. This is true when this file
|
|
||||||
* is included from head.o, but not when included from debug.o. So we need
|
|
||||||
* to share the probe results between the two copies, rather than having
|
|
||||||
* to re-run the probing again later.
|
|
||||||
*
|
|
||||||
* In the decompressor, we put the symbol/storage right here, since common.c
|
|
||||||
* isn't included in the decompressor build. This symbol gets put in .text
|
|
||||||
* even though it's really data, since .data is discarded from the
|
|
||||||
* decompressor. Luckily, .text is writeable in the decompressor, unless
|
|
||||||
* CONFIG_ZBOOT_ROM. That dependency is handled in arch/arm/Kconfig.debug.
|
|
||||||
*/
|
|
||||||
#if defined(ZIMAGE)
|
|
||||||
tegra_uart_config:
|
|
||||||
/* Debug UART initialization required */
|
|
||||||
.word 1
|
|
||||||
/* Debug UART physical address */
|
|
||||||
.word 0
|
|
||||||
/* Debug UART virtual address */
|
|
||||||
.word 0
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <linux/dma-mapping.h>
|
#include <linux/dma-mapping.h>
|
||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
|
#include <asm/kexec-internal.h>
|
||||||
#include <asm/glue-df.h>
|
#include <asm/glue-df.h>
|
||||||
#include <asm/glue-pf.h>
|
#include <asm/glue-pf.h>
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
|
@ -170,5 +171,9 @@ int main(void)
|
||||||
DEFINE(MPU_RGN_PRBAR, offsetof(struct mpu_rgn, prbar));
|
DEFINE(MPU_RGN_PRBAR, offsetof(struct mpu_rgn, prbar));
|
||||||
DEFINE(MPU_RGN_PRLAR, offsetof(struct mpu_rgn, prlar));
|
DEFINE(MPU_RGN_PRLAR, offsetof(struct mpu_rgn, prlar));
|
||||||
#endif
|
#endif
|
||||||
|
DEFINE(KEXEC_START_ADDR, offsetof(struct kexec_relocate_data, kexec_start_address));
|
||||||
|
DEFINE(KEXEC_INDIR_PAGE, offsetof(struct kexec_relocate_data, kexec_indirection_page));
|
||||||
|
DEFINE(KEXEC_MACH_TYPE, offsetof(struct kexec_relocate_data, kexec_mach_type));
|
||||||
|
DEFINE(KEXEC_R2, offsetof(struct kexec_relocate_data, kexec_r2));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include <linux/of_fdt.h>
|
#include <linux/of_fdt.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
|
#include <asm/kexec-internal.h>
|
||||||
#include <asm/fncpy.h>
|
#include <asm/fncpy.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
#include <asm/smp_plat.h>
|
#include <asm/smp_plat.h>
|
||||||
|
@ -22,11 +23,6 @@
|
||||||
extern void relocate_new_kernel(void);
|
extern void relocate_new_kernel(void);
|
||||||
extern const unsigned int relocate_new_kernel_size;
|
extern const unsigned int relocate_new_kernel_size;
|
||||||
|
|
||||||
extern unsigned long kexec_start_address;
|
|
||||||
extern unsigned long kexec_indirection_page;
|
|
||||||
extern unsigned long kexec_mach_type;
|
|
||||||
extern unsigned long kexec_boot_atags;
|
|
||||||
|
|
||||||
static atomic_t waiting_for_crash_ipi;
|
static atomic_t waiting_for_crash_ipi;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -159,6 +155,7 @@ void (*kexec_reinit)(void);
|
||||||
void machine_kexec(struct kimage *image)
|
void machine_kexec(struct kimage *image)
|
||||||
{
|
{
|
||||||
unsigned long page_list, reboot_entry_phys;
|
unsigned long page_list, reboot_entry_phys;
|
||||||
|
struct kexec_relocate_data *data;
|
||||||
void (*reboot_entry)(void);
|
void (*reboot_entry)(void);
|
||||||
void *reboot_code_buffer;
|
void *reboot_code_buffer;
|
||||||
|
|
||||||
|
@ -174,18 +171,17 @@ void machine_kexec(struct kimage *image)
|
||||||
|
|
||||||
reboot_code_buffer = page_address(image->control_code_page);
|
reboot_code_buffer = page_address(image->control_code_page);
|
||||||
|
|
||||||
/* Prepare parameters for reboot_code_buffer*/
|
|
||||||
set_kernel_text_rw();
|
|
||||||
kexec_start_address = image->start;
|
|
||||||
kexec_indirection_page = page_list;
|
|
||||||
kexec_mach_type = machine_arch_type;
|
|
||||||
kexec_boot_atags = image->arch.kernel_r2;
|
|
||||||
|
|
||||||
/* copy our kernel relocation code to the control code page */
|
/* copy our kernel relocation code to the control code page */
|
||||||
reboot_entry = fncpy(reboot_code_buffer,
|
reboot_entry = fncpy(reboot_code_buffer,
|
||||||
&relocate_new_kernel,
|
&relocate_new_kernel,
|
||||||
relocate_new_kernel_size);
|
relocate_new_kernel_size);
|
||||||
|
|
||||||
|
data = reboot_code_buffer + relocate_new_kernel_size;
|
||||||
|
data->kexec_start_address = image->start;
|
||||||
|
data->kexec_indirection_page = page_list;
|
||||||
|
data->kexec_mach_type = machine_arch_type;
|
||||||
|
data->kexec_r2 = image->arch.kernel_r2;
|
||||||
|
|
||||||
/* get the identity mapping physical address for the reboot code */
|
/* get the identity mapping physical address for the reboot code */
|
||||||
reboot_entry_phys = virt_to_idmap(reboot_entry);
|
reboot_entry_phys = virt_to_idmap(reboot_entry);
|
||||||
|
|
||||||
|
|
|
@ -5,14 +5,16 @@
|
||||||
|
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <asm/assembler.h>
|
#include <asm/assembler.h>
|
||||||
|
#include <asm/asm-offsets.h>
|
||||||
#include <asm/kexec.h>
|
#include <asm/kexec.h>
|
||||||
|
|
||||||
.align 3 /* not needed for this code, but keeps fncpy() happy */
|
.align 3 /* not needed for this code, but keeps fncpy() happy */
|
||||||
|
|
||||||
ENTRY(relocate_new_kernel)
|
ENTRY(relocate_new_kernel)
|
||||||
|
|
||||||
ldr r0,kexec_indirection_page
|
adr r7, relocate_new_kernel_end
|
||||||
ldr r1,kexec_start_address
|
ldr r0, [r7, #KEXEC_INDIR_PAGE]
|
||||||
|
ldr r1, [r7, #KEXEC_START_ADDR]
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there is no indirection page (we are doing crashdumps)
|
* If there is no indirection page (we are doing crashdumps)
|
||||||
|
@ -59,32 +61,14 @@ ENTRY(relocate_new_kernel)
|
||||||
/* Jump to relocated kernel */
|
/* Jump to relocated kernel */
|
||||||
mov lr, r1
|
mov lr, r1
|
||||||
mov r0, #0
|
mov r0, #0
|
||||||
ldr r1,kexec_mach_type
|
ldr r1, [r7, #KEXEC_MACH_TYPE]
|
||||||
ldr r2,kexec_boot_atags
|
ldr r2, [r7, #KEXEC_R2]
|
||||||
ARM( ret lr )
|
ARM( ret lr )
|
||||||
THUMB( bx lr )
|
THUMB( bx lr )
|
||||||
|
|
||||||
.align
|
|
||||||
|
|
||||||
.globl kexec_start_address
|
|
||||||
kexec_start_address:
|
|
||||||
.long 0x0
|
|
||||||
|
|
||||||
.globl kexec_indirection_page
|
|
||||||
kexec_indirection_page:
|
|
||||||
.long 0x0
|
|
||||||
|
|
||||||
.globl kexec_mach_type
|
|
||||||
kexec_mach_type:
|
|
||||||
.long 0x0
|
|
||||||
|
|
||||||
/* phy addr of the atags for the new kernel */
|
|
||||||
.globl kexec_boot_atags
|
|
||||||
kexec_boot_atags:
|
|
||||||
.long 0x0
|
|
||||||
|
|
||||||
ENDPROC(relocate_new_kernel)
|
ENDPROC(relocate_new_kernel)
|
||||||
|
|
||||||
|
.align 3
|
||||||
relocate_new_kernel_end:
|
relocate_new_kernel_end:
|
||||||
|
|
||||||
.globl relocate_new_kernel_size
|
.globl relocate_new_kernel_size
|
||||||
|
|
|
@ -693,18 +693,20 @@ struct page *get_signal_page(void)
|
||||||
|
|
||||||
addr = page_address(page);
|
addr = page_address(page);
|
||||||
|
|
||||||
|
/* Poison the entire page */
|
||||||
|
memset32(addr, __opcode_to_mem_arm(0xe7fddef1),
|
||||||
|
PAGE_SIZE / sizeof(u32));
|
||||||
|
|
||||||
/* Give the signal return code some randomness */
|
/* Give the signal return code some randomness */
|
||||||
offset = 0x200 + (get_random_int() & 0x7fc);
|
offset = 0x200 + (get_random_int() & 0x7fc);
|
||||||
signal_return_offset = offset;
|
signal_return_offset = offset;
|
||||||
|
|
||||||
/*
|
/* Copy signal return handlers into the page */
|
||||||
* Copy signal return handlers into the vector page, and
|
|
||||||
* set sigreturn to be a pointer to these.
|
|
||||||
*/
|
|
||||||
memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
|
memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
|
||||||
|
|
||||||
ptr = (unsigned long)addr + offset;
|
/* Flush out all instructions in this page */
|
||||||
flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
|
ptr = (unsigned long)addr;
|
||||||
|
flush_icache_range(ptr, ptr + PAGE_SIZE);
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,15 +65,15 @@ dc21285_read_config(struct pci_bus *bus, unsigned int devfn, int where,
|
||||||
if (addr)
|
if (addr)
|
||||||
switch (size) {
|
switch (size) {
|
||||||
case 1:
|
case 1:
|
||||||
asm("ldrb %0, [%1, %2]"
|
asm volatile("ldrb %0, [%1, %2]"
|
||||||
: "=r" (v) : "r" (addr), "r" (where) : "cc");
|
: "=r" (v) : "r" (addr), "r" (where) : "cc");
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
asm("ldrh %0, [%1, %2]"
|
asm volatile("ldrh %0, [%1, %2]"
|
||||||
: "=r" (v) : "r" (addr), "r" (where) : "cc");
|
: "=r" (v) : "r" (addr), "r" (where) : "cc");
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
asm("ldr %0, [%1, %2]"
|
asm volatile("ldr %0, [%1, %2]"
|
||||||
: "=r" (v) : "r" (addr), "r" (where) : "cc");
|
: "=r" (v) : "r" (addr), "r" (where) : "cc");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -99,17 +99,17 @@ dc21285_write_config(struct pci_bus *bus, unsigned int devfn, int where,
|
||||||
if (addr)
|
if (addr)
|
||||||
switch (size) {
|
switch (size) {
|
||||||
case 1:
|
case 1:
|
||||||
asm("strb %0, [%1, %2]"
|
asm volatile("strb %0, [%1, %2]"
|
||||||
: : "r" (value), "r" (addr), "r" (where)
|
: : "r" (value), "r" (addr), "r" (where)
|
||||||
: "cc");
|
: "cc");
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
asm("strh %0, [%1, %2]"
|
asm volatile("strh %0, [%1, %2]"
|
||||||
: : "r" (value), "r" (addr), "r" (where)
|
: : "r" (value), "r" (addr), "r" (where)
|
||||||
: "cc");
|
: "cc");
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
asm("str %0, [%1, %2]"
|
asm volatile("str %0, [%1, %2]"
|
||||||
: : "r" (value), "r" (addr), "r" (where)
|
: : "r" (value), "r" (addr), "r" (where)
|
||||||
: "cc");
|
: "cc");
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
#define MX6Q_CCM_CCR 0x0
|
#define MX6Q_CCM_CCR 0x0
|
||||||
|
|
||||||
.align 3
|
.align 3
|
||||||
|
.arm
|
||||||
|
|
||||||
.macro sync_l2_cache
|
.macro sync_l2_cache
|
||||||
|
|
||||||
|
|
|
@ -203,6 +203,8 @@ static int osk_tps_setup(struct i2c_client *client, void *context)
|
||||||
*/
|
*/
|
||||||
gpio_request(OSK_TPS_GPIO_USB_PWR_EN, "n_vbus_en");
|
gpio_request(OSK_TPS_GPIO_USB_PWR_EN, "n_vbus_en");
|
||||||
gpio_direction_output(OSK_TPS_GPIO_USB_PWR_EN, 1);
|
gpio_direction_output(OSK_TPS_GPIO_USB_PWR_EN, 1);
|
||||||
|
/* Free the GPIO again as the driver will request it */
|
||||||
|
gpio_free(OSK_TPS_GPIO_USB_PWR_EN);
|
||||||
|
|
||||||
/* Set GPIO 2 high so LED D3 is off by default */
|
/* Set GPIO 2 high so LED D3 is off by default */
|
||||||
tps65010_set_gpio_out_value(GPIO2, HIGH);
|
tps65010_set_gpio_out_value(GPIO2, HIGH);
|
||||||
|
|
|
@ -17,11 +17,10 @@ config ARCH_OMAP3
|
||||||
bool "TI OMAP3"
|
bool "TI OMAP3"
|
||||||
depends on ARCH_MULTI_V7
|
depends on ARCH_MULTI_V7
|
||||||
select ARCH_OMAP2PLUS
|
select ARCH_OMAP2PLUS
|
||||||
select ARM_CPU_SUSPEND if PM
|
select ARM_CPU_SUSPEND
|
||||||
select OMAP_HWMOD
|
select OMAP_HWMOD
|
||||||
select OMAP_INTERCONNECT
|
select OMAP_INTERCONNECT
|
||||||
select PM_OPP if PM
|
select PM_OPP
|
||||||
select PM if CPU_IDLE
|
|
||||||
select SOC_HAS_OMAP2_SDRC
|
select SOC_HAS_OMAP2_SDRC
|
||||||
select ARM_ERRATA_430973
|
select ARM_ERRATA_430973
|
||||||
|
|
||||||
|
@ -30,7 +29,7 @@ config ARCH_OMAP4
|
||||||
depends on ARCH_MULTI_V7
|
depends on ARCH_MULTI_V7
|
||||||
select ARCH_OMAP2PLUS
|
select ARCH_OMAP2PLUS
|
||||||
select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
|
select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
|
||||||
select ARM_CPU_SUSPEND if PM
|
select ARM_CPU_SUSPEND
|
||||||
select ARM_ERRATA_720789
|
select ARM_ERRATA_720789
|
||||||
select ARM_GIC
|
select ARM_GIC
|
||||||
select HAVE_ARM_SCU if SMP
|
select HAVE_ARM_SCU if SMP
|
||||||
|
@ -40,7 +39,7 @@ config ARCH_OMAP4
|
||||||
select OMAP_INTERCONNECT_BARRIER
|
select OMAP_INTERCONNECT_BARRIER
|
||||||
select PL310_ERRATA_588369 if CACHE_L2X0
|
select PL310_ERRATA_588369 if CACHE_L2X0
|
||||||
select PL310_ERRATA_727915 if CACHE_L2X0
|
select PL310_ERRATA_727915 if CACHE_L2X0
|
||||||
select PM_OPP if PM
|
select PM_OPP
|
||||||
select PM if CPU_IDLE
|
select PM if CPU_IDLE
|
||||||
select ARM_ERRATA_754322
|
select ARM_ERRATA_754322
|
||||||
select ARM_ERRATA_775420
|
select ARM_ERRATA_775420
|
||||||
|
@ -50,7 +49,7 @@ config SOC_OMAP5
|
||||||
bool "TI OMAP5"
|
bool "TI OMAP5"
|
||||||
depends on ARCH_MULTI_V7
|
depends on ARCH_MULTI_V7
|
||||||
select ARCH_OMAP2PLUS
|
select ARCH_OMAP2PLUS
|
||||||
select ARM_CPU_SUSPEND if PM
|
select ARM_CPU_SUSPEND
|
||||||
select ARM_GIC
|
select ARM_GIC
|
||||||
select HAVE_ARM_SCU if SMP
|
select HAVE_ARM_SCU if SMP
|
||||||
select HAVE_ARM_ARCH_TIMER
|
select HAVE_ARM_ARCH_TIMER
|
||||||
|
@ -58,14 +57,14 @@ config SOC_OMAP5
|
||||||
select OMAP_HWMOD
|
select OMAP_HWMOD
|
||||||
select OMAP_INTERCONNECT
|
select OMAP_INTERCONNECT
|
||||||
select OMAP_INTERCONNECT_BARRIER
|
select OMAP_INTERCONNECT_BARRIER
|
||||||
select PM_OPP if PM
|
select PM_OPP
|
||||||
select ZONE_DMA if ARM_LPAE
|
select ZONE_DMA if ARM_LPAE
|
||||||
|
|
||||||
config SOC_AM33XX
|
config SOC_AM33XX
|
||||||
bool "TI AM33XX"
|
bool "TI AM33XX"
|
||||||
depends on ARCH_MULTI_V7
|
depends on ARCH_MULTI_V7
|
||||||
select ARCH_OMAP2PLUS
|
select ARCH_OMAP2PLUS
|
||||||
select ARM_CPU_SUSPEND if PM
|
select ARM_CPU_SUSPEND
|
||||||
|
|
||||||
config SOC_AM43XX
|
config SOC_AM43XX
|
||||||
bool "TI AM43x"
|
bool "TI AM43x"
|
||||||
|
@ -79,13 +78,13 @@ config SOC_AM43XX
|
||||||
select ARM_ERRATA_754322
|
select ARM_ERRATA_754322
|
||||||
select ARM_ERRATA_775420
|
select ARM_ERRATA_775420
|
||||||
select OMAP_INTERCONNECT
|
select OMAP_INTERCONNECT
|
||||||
select ARM_CPU_SUSPEND if PM
|
select ARM_CPU_SUSPEND
|
||||||
|
|
||||||
config SOC_DRA7XX
|
config SOC_DRA7XX
|
||||||
bool "TI DRA7XX"
|
bool "TI DRA7XX"
|
||||||
depends on ARCH_MULTI_V7
|
depends on ARCH_MULTI_V7
|
||||||
select ARCH_OMAP2PLUS
|
select ARCH_OMAP2PLUS
|
||||||
select ARM_CPU_SUSPEND if PM
|
select ARM_CPU_SUSPEND
|
||||||
select ARM_GIC
|
select ARM_GIC
|
||||||
select HAVE_ARM_SCU if SMP
|
select HAVE_ARM_SCU if SMP
|
||||||
select HAVE_ARM_ARCH_TIMER
|
select HAVE_ARM_ARCH_TIMER
|
||||||
|
@ -94,7 +93,7 @@ config SOC_DRA7XX
|
||||||
select OMAP_HWMOD
|
select OMAP_HWMOD
|
||||||
select OMAP_INTERCONNECT
|
select OMAP_INTERCONNECT
|
||||||
select OMAP_INTERCONNECT_BARRIER
|
select OMAP_INTERCONNECT_BARRIER
|
||||||
select PM_OPP if PM
|
select PM_OPP
|
||||||
select ZONE_DMA if ARM_LPAE
|
select ZONE_DMA if ARM_LPAE
|
||||||
select PINCTRL_TI_IODELAY if OF && PINCTRL
|
select PINCTRL_TI_IODELAY if OF && PINCTRL
|
||||||
|
|
||||||
|
@ -112,9 +111,11 @@ config ARCH_OMAP2PLUS
|
||||||
select OMAP_DM_TIMER
|
select OMAP_DM_TIMER
|
||||||
select OMAP_GPMC
|
select OMAP_GPMC
|
||||||
select PINCTRL
|
select PINCTRL
|
||||||
select PM_GENERIC_DOMAINS if PM
|
select PM
|
||||||
select PM_GENERIC_DOMAINS_OF if PM
|
select PM_GENERIC_DOMAINS
|
||||||
|
select PM_GENERIC_DOMAINS_OF
|
||||||
select RESET_CONTROLLER
|
select RESET_CONTROLLER
|
||||||
|
select SIMPLE_PM_BUS
|
||||||
select SOC_BUS
|
select SOC_BUS
|
||||||
select TI_SYSC
|
select TI_SYSC
|
||||||
select OMAP_IRQCHIP
|
select OMAP_IRQCHIP
|
||||||
|
@ -140,7 +141,6 @@ config ARCH_OMAP2PLUS_TYPICAL
|
||||||
select I2C_OMAP
|
select I2C_OMAP
|
||||||
select MENELAUS if ARCH_OMAP2
|
select MENELAUS if ARCH_OMAP2
|
||||||
select NEON if CPU_V7
|
select NEON if CPU_V7
|
||||||
select PM
|
|
||||||
select REGULATOR
|
select REGULATOR
|
||||||
select REGULATOR_FIXED_VOLTAGE
|
select REGULATOR_FIXED_VOLTAGE
|
||||||
select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
|
select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
|
||||||
|
|
|
@ -151,10 +151,10 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||||
(cx->mpu_logic_state == PWRDM_POWER_OFF);
|
(cx->mpu_logic_state == PWRDM_POWER_OFF);
|
||||||
|
|
||||||
/* Enter broadcast mode for periodic timers */
|
/* Enter broadcast mode for periodic timers */
|
||||||
tick_broadcast_enable();
|
RCU_NONIDLE(tick_broadcast_enable());
|
||||||
|
|
||||||
/* Enter broadcast mode for one-shot timers */
|
/* Enter broadcast mode for one-shot timers */
|
||||||
tick_broadcast_enter();
|
RCU_NONIDLE(tick_broadcast_enter());
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Call idle CPU PM enter notifier chain so that
|
* Call idle CPU PM enter notifier chain so that
|
||||||
|
@ -166,7 +166,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||||
|
|
||||||
if (dev->cpu == 0) {
|
if (dev->cpu == 0) {
|
||||||
pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
|
pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
|
||||||
omap_set_pwrdm_state(mpu_pd, cx->mpu_state);
|
RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Call idle CPU cluster PM enter notifier chain
|
* Call idle CPU cluster PM enter notifier chain
|
||||||
|
@ -178,7 +178,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||||
index = 0;
|
index = 0;
|
||||||
cx = state_ptr + index;
|
cx = state_ptr + index;
|
||||||
pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
|
pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
|
||||||
omap_set_pwrdm_state(mpu_pd, cx->mpu_state);
|
RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
|
||||||
mpuss_can_lose_context = 0;
|
mpuss_can_lose_context = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,9 +194,9 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||||
mpuss_can_lose_context)
|
mpuss_can_lose_context)
|
||||||
gic_dist_disable();
|
gic_dist_disable();
|
||||||
|
|
||||||
clkdm_deny_idle(cpu_clkdm[1]);
|
RCU_NONIDLE(clkdm_deny_idle(cpu_clkdm[1]));
|
||||||
omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON);
|
RCU_NONIDLE(omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON));
|
||||||
clkdm_allow_idle(cpu_clkdm[1]);
|
RCU_NONIDLE(clkdm_allow_idle(cpu_clkdm[1]));
|
||||||
|
|
||||||
if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) &&
|
if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) &&
|
||||||
mpuss_can_lose_context) {
|
mpuss_can_lose_context) {
|
||||||
|
@ -222,7 +222,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
|
||||||
cpu_pm_exit();
|
cpu_pm_exit();
|
||||||
|
|
||||||
cpu_pm_out:
|
cpu_pm_out:
|
||||||
tick_broadcast_exit();
|
RCU_NONIDLE(tick_broadcast_exit());
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
|
cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
|
||||||
|
|
|
@ -522,6 +522,7 @@ static struct of_dev_auxdata omap_auxdata_lookup[] = {
|
||||||
&dra7_ipu1_dsp_iommu_pdata),
|
&dra7_ipu1_dsp_iommu_pdata),
|
||||||
#endif
|
#endif
|
||||||
/* Common auxdata */
|
/* Common auxdata */
|
||||||
|
OF_DEV_AUXDATA("simple-pm-bus", 0, NULL, omap_auxdata_lookup),
|
||||||
OF_DEV_AUXDATA("ti,sysc", 0, NULL, &ti_sysc_pdata),
|
OF_DEV_AUXDATA("ti,sysc", 0, NULL, &ti_sysc_pdata),
|
||||||
OF_DEV_AUXDATA("pinctrl-single", 0, NULL, &pcs_pdata),
|
OF_DEV_AUXDATA("pinctrl-single", 0, NULL, &pcs_pdata),
|
||||||
OF_DEV_AUXDATA("ti,omap-prm-inst", 0, NULL, &ti_prm_pdata),
|
OF_DEV_AUXDATA("ti,omap-prm-inst", 0, NULL, &ti_prm_pdata),
|
||||||
|
|
|
@ -280,8 +280,6 @@
|
||||||
"timing-adjustment";
|
"timing-adjustment";
|
||||||
rx-fifo-depth = <4096>;
|
rx-fifo-depth = <4096>;
|
||||||
tx-fifo-depth = <2048>;
|
tx-fifo-depth = <2048>;
|
||||||
resets = <&reset RESET_ETHERNET>;
|
|
||||||
reset-names = "stmmaceth";
|
|
||||||
power-domains = <&pwrc PWRC_AXG_ETHERNET_MEM_ID>;
|
power-domains = <&pwrc PWRC_AXG_ETHERNET_MEM_ID>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
|
@ -224,8 +224,6 @@
|
||||||
"timing-adjustment";
|
"timing-adjustment";
|
||||||
rx-fifo-depth = <4096>;
|
rx-fifo-depth = <4096>;
|
||||||
tx-fifo-depth = <2048>;
|
tx-fifo-depth = <2048>;
|
||||||
resets = <&reset RESET_ETHERNET>;
|
|
||||||
reset-names = "stmmaceth";
|
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|
||||||
mdio0: mdio {
|
mdio0: mdio {
|
||||||
|
@ -2390,7 +2388,7 @@
|
||||||
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
dr_mode = "host";
|
dr_mode = "host";
|
||||||
snps,dis_u2_susphy_quirk;
|
snps,dis_u2_susphy_quirk;
|
||||||
snps,quirk-frame-length-adjustment;
|
snps,quirk-frame-length-adjustment = <0x20>;
|
||||||
snps,parkmode-disable-ss-quirk;
|
snps,parkmode-disable-ss-quirk;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
#include <dt-bindings/interrupt-controller/irq.h>
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
#include <dt-bindings/power/meson-gxbb-power.h>
|
#include <dt-bindings/power/meson-gxbb-power.h>
|
||||||
#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
|
|
||||||
#include <dt-bindings/thermal/thermal.h>
|
#include <dt-bindings/thermal/thermal.h>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
@ -576,8 +575,6 @@
|
||||||
interrupt-names = "macirq";
|
interrupt-names = "macirq";
|
||||||
rx-fifo-depth = <4096>;
|
rx-fifo-depth = <4096>;
|
||||||
tx-fifo-depth = <2048>;
|
tx-fifo-depth = <2048>;
|
||||||
resets = <&reset RESET_ETHERNET>;
|
|
||||||
reset-names = "stmmaceth";
|
|
||||||
power-domains = <&pwrc PWRC_GXBB_ETHERNET_MEM_ID>;
|
power-domains = <&pwrc PWRC_GXBB_ETHERNET_MEM_ID>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
|
|
||||||
gpio = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
|
gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>;
|
||||||
enable-active-high;
|
enable-active-high;
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,11 +4,16 @@
|
||||||
*/
|
*/
|
||||||
usb {
|
usb {
|
||||||
compatible = "simple-bus";
|
compatible = "simple-bus";
|
||||||
dma-ranges;
|
|
||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
ranges = <0x0 0x0 0x0 0x68500000 0x0 0x00400000>;
|
ranges = <0x0 0x0 0x0 0x68500000 0x0 0x00400000>;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Internally, USB bus to the interconnect can only address up
|
||||||
|
* to 40-bit
|
||||||
|
*/
|
||||||
|
dma-ranges = <0 0 0 0 0x100 0x0>;
|
||||||
|
|
||||||
usbphy0: usb-phy@0 {
|
usbphy0: usb-phy@0 {
|
||||||
compatible = "brcm,sr-usb-combo-phy";
|
compatible = "brcm,sr-usb-combo-phy";
|
||||||
reg = <0x0 0x00000000 0x0 0x100>;
|
reg = <0x0 0x00000000 0x0 0x100>;
|
||||||
|
|
|
@ -101,7 +101,7 @@
|
||||||
reboot {
|
reboot {
|
||||||
compatible ="syscon-reboot";
|
compatible ="syscon-reboot";
|
||||||
regmap = <&rst>;
|
regmap = <&rst>;
|
||||||
offset = <0xb0>;
|
offset = <0>;
|
||||||
mask = <0x02>;
|
mask = <0x02>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -385,7 +385,7 @@
|
||||||
|
|
||||||
dcfg: dcfg@1ee0000 {
|
dcfg: dcfg@1ee0000 {
|
||||||
compatible = "fsl,ls1046a-dcfg", "syscon";
|
compatible = "fsl,ls1046a-dcfg", "syscon";
|
||||||
reg = <0x0 0x1ee0000 0x0 0x10000>;
|
reg = <0x0 0x1ee0000 0x0 0x1000>;
|
||||||
big-endian;
|
big-endian;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -253,7 +253,7 @@
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
spba: bus@30000000 {
|
spba: spba-bus@30000000 {
|
||||||
compatible = "fsl,spba-bus", "simple-bus";
|
compatible = "fsl,spba-bus", "simple-bus";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
|
|
|
@ -266,7 +266,7 @@
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <2>;
|
#interrupt-cells = <2>;
|
||||||
gpio-ranges = <&iomuxc 0 56 26>, <&iomuxc 0 144 4>;
|
gpio-ranges = <&iomuxc 0 56 26>, <&iomuxc 26 144 4>;
|
||||||
};
|
};
|
||||||
|
|
||||||
gpio4: gpio@30230000 {
|
gpio4: gpio@30230000 {
|
||||||
|
|
|
@ -415,7 +415,9 @@
|
||||||
&gcc {
|
&gcc {
|
||||||
protected-clocks = <GCC_QSPI_CORE_CLK>,
|
protected-clocks = <GCC_QSPI_CORE_CLK>,
|
||||||
<GCC_QSPI_CORE_CLK_SRC>,
|
<GCC_QSPI_CORE_CLK_SRC>,
|
||||||
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
|
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
|
||||||
|
<GCC_LPASS_Q6_AXI_CLK>,
|
||||||
|
<GCC_LPASS_SWAY_CLK>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpu {
|
&gpu {
|
||||||
|
|
|
@ -302,7 +302,9 @@
|
||||||
&gcc {
|
&gcc {
|
||||||
protected-clocks = <GCC_QSPI_CORE_CLK>,
|
protected-clocks = <GCC_QSPI_CORE_CLK>,
|
||||||
<GCC_QSPI_CORE_CLK_SRC>,
|
<GCC_QSPI_CORE_CLK_SRC>,
|
||||||
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
|
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
|
||||||
|
<GCC_LPASS_Q6_AXI_CLK>,
|
||||||
|
<GCC_LPASS_SWAY_CLK>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&gpu {
|
&gpu {
|
||||||
|
@ -320,6 +322,8 @@
|
||||||
&i2c3 {
|
&i2c3 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
clock-frequency = <400000>;
|
clock-frequency = <400000>;
|
||||||
|
/* Overwrite pinctrl-0 from sdm845.dtsi */
|
||||||
|
pinctrl-0 = <&qup_i2c3_default &i2c3_hid_active>;
|
||||||
|
|
||||||
tsel: hid@15 {
|
tsel: hid@15 {
|
||||||
compatible = "hid-over-i2c";
|
compatible = "hid-over-i2c";
|
||||||
|
@ -327,9 +331,6 @@
|
||||||
hid-descr-addr = <0x1>;
|
hid-descr-addr = <0x1>;
|
||||||
|
|
||||||
interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c3_hid_active>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
tsc2: hid@2c {
|
tsc2: hid@2c {
|
||||||
|
@ -338,11 +339,6 @@
|
||||||
hid-descr-addr = <0x20>;
|
hid-descr-addr = <0x20>;
|
||||||
|
|
||||||
interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c3_hid_active>;
|
|
||||||
|
|
||||||
status = "disabled";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue