Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update my fork with torvalds #6

Merged
merged 135 commits into from
Nov 13, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
f2589bf
xtensa/uapi: Add definition of TIOC[SG]RS485
ribalda Sep 9, 2014
a211276
xtensa: implement pgprot_noncached
jcmvbkbc Sep 11, 2014
7a0684c
xtensa: ISS: add BLOCK dependency to BLK_DEV_SIMDISK
jcmvbkbc Aug 27, 2014
bb550fd
xtensa: add seccomp, getrandom, and memfd_create syscalls
jcmvbkbc Oct 1, 2014
61e47e9
xtensa: xtfpga: only select ethoc when ethernet is available
jcmvbkbc Oct 4, 2014
a3f2af2
dm stripe: fix potential for leak in stripe_ctr error path
Oct 10, 2014
9d28eb1
dm bufio: change __GFP_IO to __GFP_FS in shrinker callbacks
Oct 16, 2014
a13926d
Merge tag 'v3.18-rc1' into for_next
czankel Oct 21, 2014
2651cc6
xtensa: re-wire umount syscall to sys_oldumount
jcmvbkbc Oct 6, 2014
8c0b1ce
xtensa: xtfpga: add generic KC705 board config
jcmvbkbc Oct 6, 2014
3ce2ce1
xtensa: xtfpga: add lx200 SMP DTS and defconfig
jcmvbkbc Oct 6, 2014
40d43c4
dm raid: ensure superblock's size matches device's logical block size
mauelsha Oct 17, 2014
66acb02
Merge tag 'xtensa-for-next-20141021-1' of git://github.com/jcmvbkbc/l…
czankel Oct 23, 2014
923a6e5
crypto: qat - Prevent dma mapping zero length assoc data
tstruk Oct 14, 2014
09adc87
crypto: qat - Enforce valid numa configuration
tstruk Oct 14, 2014
9599815
usb: dwc2: gadget: fix enumeration issues
mszyprow Oct 20, 2014
d20c4b0
dm raid: fix inaccessible superblocks causing oops in configure_disca…
mauelsha Oct 29, 2014
f4fd36b
arm64: psci: fix cpu_suspend to check idle state type for index
Oct 30, 2014
897f1ac
audit: AUDIT_FEATURE_CHANGE message format missing delimiting space
rgbriggs Oct 30, 2014
1912528
USB: kobil_sct: fix non-atomic allocation in write path
jhovold Oct 29, 2014
e681286
USB: opticon: fix non-atomic allocation in write path
jhovold Oct 29, 2014
f7ceb0d
KVM: s390: virtio_ccw: remove unused variable
Oct 28, 2014
bc79a31
Merge tag 'kvm-s390-20141103' of git://git.kernel.org/pub/scm/linux/k…
bonzini Nov 3, 2014
cf84a69
USB: cdc-acm: add device id for GW Instek AFG-2225
jhovold Oct 27, 2014
24cb450
cdc-acm: ensure that termios get set when the port is activated
jimparis Oct 30, 2014
90a646c
usb: Do not allow usb_alloc_streams on unconfigured devices
jwrdegoede Oct 1, 2014
93c9bf4
usb-storage: handle a skipped data phase
AlanStern Oct 31, 2014
aee0ce3
uas: Add US_FL_NO_ATA_1X quirk for 1 more Seagate model
jwrdegoede Oct 31, 2014
cee2448
USB: HWA: fix a warning message
Oct 29, 2014
2391eac
xhci: Disable streams on Asmedia 1042 xhci controllers
jwrdegoede Oct 28, 2014
673029f
uas: Add NO_ATA_1X for VIA VL711 devices
jwrdegoede Oct 9, 2014
cd6e245
usb: Remove references to non-existent PLAT_S5P symbol
Oct 7, 2014
ec5633b
usb: storage: fix build warnings !CONFIG_PM
Oct 1, 2014
2e06923
MAINTAINERS: Remove duplicate entry for usbip driver
einonm Oct 19, 2014
876af5d
USB: quirks: enable device-qualifier quirk for another Elan touchscreen
Oct 9, 2014
d749947
USB: quirks: enable device-qualifier quirk for yet another Elan touch…
Oct 9, 2014
b45abac
xhci: no switching back on non-ULT Haswell
Oct 27, 2014
d1d9548
uas: Add US_FL_NO_ATA_1X quirk for 2 more Seagate models
jwrdegoede Oct 23, 2014
01ed67d
usb: core: need to call usb_phy_notify_connect after device setup
Oct 17, 2014
b2108f1
usb: core: notify disconnection when core detects disconnect
Nov 4, 2014
c72c553
ARM: imx: clk-vf610: define PLL's clock tree
agners Oct 27, 2014
a87fa1d
of: Fix overflow bug in string property parsing functions
glikely Nov 3, 2014
89fbec5
ARM: imx: Fix the removal of CONFIG_SPI option
Nov 4, 2014
6e5aafb
Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup
masoncl Nov 4, 2014
c822ed9
dm thin: grab a virtual cell before looking up the mapping
jthornber Oct 10, 2014
225112a
Thermal/int3403: Fix thermal hysteresis unit conversion
Nov 3, 2014
83b3d53
Merge tag 'imx-fixes-3.18-2' of git://git.kernel.org/pub/scm/linux/ke…
olofj Nov 5, 2014
8bcdd92
MAINTAINERS: update bcm2835 entry
swarren Nov 5, 2014
d29b9d7
KVM: x86: Fix uninitialized op->type for some immediate values
anadav Nov 2, 2014
97b56be
arm64: compat: Enable bpf syscall
ctmarinas Nov 5, 2014
2d39ad6
arm64: defconfig: update defconfig for 3.18
wildea01 Nov 5, 2014
4a53d3a
staging:iio:ad5933: Fix NULL pointer deref when enabling buffer
larsclausen Sep 25, 2014
97fb303
staging:iio:ad5933: Drop "raw" from channel names
larsclausen Sep 25, 2014
c6b4cac
iio: st_sensors: Fix buffer copy
rvdgracht Sep 29, 2014
4748119
iio: adc: mxs-lradc: Disable the clock on probe failure
Oct 4, 2014
03045bc
iio: tsl4531: Fix compiler error when CONFIG_PM_OPS is not defined
Oct 20, 2014
25afffe
io: accel: kxcjk-1013: Fix iio_event_spec direction
Oct 10, 2014
f73cde6
iio: as3935: allocate correct iio_device size
gmccollister Oct 31, 2014
e105547
staging:iio:ade7758: Fix NULL pointer deref when enabling buffer
larsclausen Nov 4, 2014
79fa64e
staging:iio:ade7758: Fix check if channels are enabled in prenable
larsclausen Nov 4, 2014
b598aac
staging:iio:ade7758: Remove "raw" from channel name
larsclausen Nov 4, 2014
ab699bc
ARM: dts: vf610: add SD node to cosmic dts
olofj Nov 5, 2014
ac0225f
Revert "storage: Replace magic number with define in usb_stor_euscsi_…
gregkh Nov 5, 2014
4473d05
USB: cdc-acm: only raise DTR on transitions from B0
jhovold Nov 5, 2014
bce20b2
Merge tag 'iio-fixes-for-3.18b' of git://git.kernel.org/pub/scm/linux…
gregkh Nov 5, 2014
a88098b
USB: storage: Fix timeout in usb_stor_euscsi_init() and usb_stor_huaw…
M-a-r-k Nov 4, 2014
f20531a
phy: omap-usb2: Enable runtime PM of omap-usb2 phy properly
Nov 4, 2014
547039e
serial: Fix divide-by-zero fault in uart_get_divisor()
peterhurley Oct 16, 2014
37b1645
tty: Fix high cpu load if tty is unreleaseable
peterhurley Oct 16, 2014
494c1ea
tty: Prevent "read/write wait queue active!" log flooding
peterhurley Oct 16, 2014
5305e4d
dma: edma: move device registration to platform code
arndb Oct 24, 2014
cd92208
tty: serial: 8250_mtk: Fix quot calculation
mbgg Oct 9, 2014
9e326f7
tty/vt: don't set font mappings on vc not supporting this
ideak Oct 2, 2014
7e12e67
serial: of-serial: fix uninitialized kmalloc variable
Oct 21, 2014
738459e
crypto: caam - fix missing dma unmap on error path
Oct 30, 2014
24c65bc
hwrng: pseries - port to new read API and fix stack corruption
gkurz Oct 31, 2014
d6a8b72
drm/i915: Disable caches for Global GTT.
rodrigovivi Nov 6, 2014
a024d2e
drm/i915: vlv: fix gunit HW state corruption during S4 suspend
ideak Sep 10, 2014
e1c412e
drm/i915: safeguard against too high minimum brightness
jnikula Nov 5, 2014
5002921
Merge tag 'usb-serial-3.18-rc4' of git://git.kernel.org/pub/scm/linux…
gregkh Nov 6, 2014
c4dc304
tty: Fix pty master poll() after slave closes v2
Oct 10, 2014
e5452dd
Merge tag 'fixes-for-v3.18-rc4' of git://git.kernel.org/pub/scm/linux…
gregkh Nov 6, 2014
2a8cdfd
USB: cdc-acm: add quirk for control-line state requests
jhovold Nov 6, 2014
dc4edad
drm/radeon: set correct CE ram size for CIK
Nov 3, 2014
8efe82c
drm/radeon: make sure mode init is complete in bandwidth_update
alexdeucher Nov 3, 2014
0b021c5
drm/radeon: use gart for DMA IB tests
alexdeucher Nov 3, 2014
f0d7bfb
drm/radeon: add missing crtc unlock when setting up the MC
alexdeucher Nov 5, 2014
2730fa0
Merge branch 'drm-fixes-3.18' of git://people.freedesktop.org/~agd5f/…
airlied Nov 7, 2014
e4a60d1
sysfs: driver core: Fix glue dir race condition by gdp_mutex
YijingWang Nov 7, 2014
1910195
USB: Update default usb-storage delay_use value in kernel-parameters.txt
M-a-r-k Nov 4, 2014
491b079
thermal: imx: correct driver load sequence for cpu cooling
Oct 14, 2014
1d6a277
thermal: exynos: use correct offset for TMU_CONTROL register on Exyno…
bzolnier Sep 11, 2014
9c60269
tiny: reverse logic for DISABLE_DEV_COREDUMP
aristeu Oct 16, 2014
cd3d9ea
tiny: rename ENABLE_DEV_COREDUMP to ALLOW_DEV_COREDUMP
jmberg-intel Oct 30, 2014
92c9e0c
ARM: dts: zynq: Enable PL clocks for Parallella
afaerber Nov 6, 2014
90a21ff
imx: thermal: imx_get_temp might be called before sensor clock is pre…
hkallweit Nov 8, 2014
b942791
Merge tag 'usb-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Nov 9, 2014
45a4c07
Merge tag 'tty-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Nov 9, 2014
86a7a16
Merge tag 'staging-3.18-rc4' of git://git.kernel.org/pub/scm/linux/ke…
torvalds Nov 9, 2014
0b0c7db
Merge tag 'driver-core-3.18-rc4' of git://git.kernel.org/pub/scm/linu…
torvalds Nov 9, 2014
c4c23fb
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Nov 9, 2014
a315780
Merge branch 'devicetree/merge' of git://git.kernel.org/pub/scm/linux…
torvalds Nov 9, 2014
b1f368b
Merge tag 'armsoc-for-rc4' of git://git.kernel.org/pub/scm/linux/kern…
torvalds Nov 9, 2014
ee867cf
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/…
torvalds Nov 9, 2014
206c5f6
Linux 3.18-rc4
torvalds Nov 9, 2014
03dca70
Merge tag 'drm-intel-fixes-2014-11-07' of git://anongit.freedesktop.o…
airlied Nov 10, 2014
aeb5897
Merge tag 'v3.18-rc4' into for_next
czankel Nov 10, 2014
871c3cf
mfd: stmpe: Fix STMPE24xx GPMR LSB
linusw Oct 4, 2014
451be64
mfd: rtsx: Fix build warnings for !PM
thierryreding Oct 2, 2014
b668422
mfd: viperboard: Fix platform-device id collision
jhovold Sep 26, 2014
43fc939
mfd: max77693: Use proper regmap for handling MUIC interrupts
krzk Oct 10, 2014
c0acb81
mfd: max77693: Fix always masked MUIC interrupts
krzk Oct 10, 2014
481c7f8
mfd: twl4030-power: Fix poweroff with PM configuration enabled
tmlind Nov 2, 2014
9b460d3
dm btree: fix a recursion depth bug in btree walking code
jthornber Nov 10, 2014
e30f53a
tracing: Do not busy wait in buffer splice
vitkyrka Nov 10, 2014
07906da
tracing: Do not risk busy looping in buffer splice
vitkyrka Nov 6, 2014
3438cf5
param: fix crash on bad kernel arguments
daniel-thompson Nov 11, 2014
aab18da
hwmon: (ibmpowernv) Quieten when probing finds no device
mpe Oct 31, 2014
48b9d5b
hwmon: (pwm-fan) Fix suspend/resume behavior
Nov 3, 2014
0bd5294
hwmon: (fam15h_power) Fix NB device ID for F16h M30h
Nov 4, 2014
799b601
audit: keep inode pinned
Nov 4, 2014
b3cf93b
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
torvalds Nov 12, 2014
c921220
Merge tag 'mfd-fixes-3.18' of git://git.kernel.org/pub/scm/linux/kern…
torvalds Nov 12, 2014
d950f84
selinux: convert WARN_ONCE() to printk() in selinux_nlmsg_perm()
rgbriggs Nov 12, 2014
999f81d
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git…
torvalds Nov 12, 2014
de34b81
Merge tag 'hwmon-for-linus-v3.18-rc5' of git://git.kernel.org/pub/scm…
torvalds Nov 12, 2014
9d1f9c7
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/ker…
torvalds Nov 12, 2014
15e5cda
Merge tag 'trace-fixes-v3.18-rc4' of git://git.kernel.org/pub/scm/lin…
torvalds Nov 12, 2014
0a6cb34
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
torvalds Nov 12, 2014
74b60ef
Merge tag 'xtensa-20141109' of git://github.com/czankel/xtensa-linux
torvalds Nov 12, 2014
04689e7
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
torvalds Nov 12, 2014
09c6268
Merge branch 'stable-3.18' of git://git.infradead.org/users/pcmoore/s…
Nov 13, 2014
5a7a662
Merge tag 'dm-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kerne…
torvalds Nov 13, 2014
9118837
Merge branch 'stable-3.18' of git://git.infradead.org/users/pcmoore/a…
torvalds Nov 13, 2014
2c54396
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Nov 13, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3621,7 +3621,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.

usb-storage.delay_use=
[UMS] The delay in seconds before a new device is
scanned for Logical Units (default 5).
scanned for Logical Units (default 1).

usb-storage.quirks=
[UMS] A list of quirks entries to supplement or
Expand Down
8 changes: 2 additions & 6 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -2072,8 +2072,9 @@ F: drivers/clocksource/bcm_kona_timer.c

BROADCOM BCM2835 ARM ARCHITECTURE
M: Stephen Warren <swarren@wwwdotorg.org>
M: Lee Jones <lee@kernel.org>
L: linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
T: git git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/rpi/linux-rpi.git
S: Maintained
N: bcm2835

Expand Down Expand Up @@ -9703,11 +9704,6 @@ S: Maintained
F: Documentation/hid/hiddev.txt
F: drivers/hid/usbhid/

USB/IP DRIVERS
L: linux-usb@vger.kernel.org
S: Orphan
F: drivers/staging/usbip/

USB ISP116X DRIVER
M: Olav Kongas <ok@artecdesign.ee>
L: linux-usb@vger.kernel.org
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
VERSION = 3
PATCHLEVEL = 18
SUBLEVEL = 0
EXTRAVERSION = -rc3
EXTRAVERSION = -rc4
NAME = Diseased Newt

# *DOCUMENTATION*
Expand Down
19 changes: 19 additions & 0 deletions arch/arm/boot/dts/vf610-cosmic.dts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@

};

&esdhc1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_esdhc1>;
bus-width = <4>;
status = "okay";
};

&fec1 {
phy-mode = "rmii";
pinctrl-names = "default";
Expand All @@ -42,6 +49,18 @@

&iomuxc {
vf610-cosmic {
pinctrl_esdhc1: esdhc1grp {
fsl,pins = <
VF610_PAD_PTA24__ESDHC1_CLK 0x31ef
VF610_PAD_PTA25__ESDHC1_CMD 0x31ef
VF610_PAD_PTA26__ESDHC1_DAT0 0x31ef
VF610_PAD_PTA27__ESDHC1_DAT1 0x31ef
VF610_PAD_PTA28__ESDHC1_DATA2 0x31ef
VF610_PAD_PTA29__ESDHC1_DAT3 0x31ef
VF610_PAD_PTB28__GPIO_98 0x219d
>;
};

pinctrl_fec1: fec1grp {
fsl,pins = <
VF610_PAD_PTC9__ENET_RMII1_MDC 0x30d2
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/boot/dts/zynq-parallella.dts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
};
};

&clkc {
fclk-enable = <0xf>;
};

&gem0 {
status = "okay";
phy-mode = "rgmii-id";
Expand Down
9 changes: 9 additions & 0 deletions arch/arm/common/edma.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/edma.h>
#include <linux/dma-mapping.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
#include <linux/of_dma.h>
Expand Down Expand Up @@ -1623,6 +1624,11 @@ static int edma_probe(struct platform_device *pdev)
struct device_node *node = pdev->dev.of_node;
struct device *dev = &pdev->dev;
int ret;
struct platform_device_info edma_dev_info = {
.name = "edma-dma-engine",
.dma_mask = DMA_BIT_MASK(32),
.parent = &pdev->dev,
};

if (node) {
/* Check if this is a second instance registered */
Expand Down Expand Up @@ -1793,6 +1799,9 @@ static int edma_probe(struct platform_device *pdev)
edma_write_array(j, EDMA_QRAE, i, 0x0);
}
arch_num_cc++;

edma_dev_info.id = j;
platform_device_register_full(&edma_dev_info);
}

return 0;
Expand Down
1 change: 1 addition & 0 deletions arch/arm/configs/imx_v4_v5_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ CONFIG_SERIAL_IMX_CONSOLE=y
# CONFIG_HW_RANDOM is not set
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_IMX=y
CONFIG_SPI=y
CONFIG_SPI_IMX=y
CONFIG_SPI_SPIDEV=y
CONFIG_GPIO_SYSFS=y
Expand Down
1 change: 1 addition & 0 deletions arch/arm/configs/imx_v6_v7_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ CONFIG_I2C_CHARDEV=y
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m
CONFIG_I2C_IMX=y
CONFIG_SPI=y
CONFIG_SPI_IMX=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_MC9S08DZ60=y
Expand Down
134 changes: 92 additions & 42 deletions arch/arm/mach-imx/clk-vf610.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,34 +58,49 @@
#define PFD_PLL1_BASE (anatop_base + 0x2b0)
#define PFD_PLL2_BASE (anatop_base + 0x100)
#define PFD_PLL3_BASE (anatop_base + 0xf0)
#define PLL1_CTRL (anatop_base + 0x270)
#define PLL2_CTRL (anatop_base + 0x30)
#define PLL3_CTRL (anatop_base + 0x10)
#define PLL4_CTRL (anatop_base + 0x70)
#define PLL5_CTRL (anatop_base + 0xe0)
#define PLL6_CTRL (anatop_base + 0xa0)
#define PLL7_CTRL (anatop_base + 0x20)
#define ANA_MISC1 (anatop_base + 0x160)

static void __iomem *anatop_base;
static void __iomem *ccm_base;

/* sources for multiplexer clocks, this is used multiple times */
static const char *fast_sels[] = { "firc", "fxosc", };
static const char *slow_sels[] = { "sirc_32k", "sxosc", };
static const char *pll1_sels[] = { "pll1_main", "pll1_pfd1", "pll1_pfd2", "pll1_pfd3", "pll1_pfd4", };
static const char *pll2_sels[] = { "pll2_main", "pll2_pfd1", "pll2_pfd2", "pll2_pfd3", "pll2_pfd4", };
static const char *sys_sels[] = { "fast_clk_sel", "slow_clk_sel", "pll2_pfd_sel", "pll2_main", "pll1_pfd_sel", "pll3_main", };
static const char *pll1_sels[] = { "pll1_sys", "pll1_pfd1", "pll1_pfd2", "pll1_pfd3", "pll1_pfd4", };
static const char *pll2_sels[] = { "pll2_bus", "pll2_pfd1", "pll2_pfd2", "pll2_pfd3", "pll2_pfd4", };
static const char *pll_bypass_src_sels[] = { "fast_clk_sel", "lvds1_in", };
static const char *pll1_bypass_sels[] = { "pll1", "pll1_bypass_src", };
static const char *pll2_bypass_sels[] = { "pll2", "pll2_bypass_src", };
static const char *pll3_bypass_sels[] = { "pll3", "pll3_bypass_src", };
static const char *pll4_bypass_sels[] = { "pll4", "pll4_bypass_src", };
static const char *pll5_bypass_sels[] = { "pll5", "pll5_bypass_src", };
static const char *pll6_bypass_sels[] = { "pll6", "pll6_bypass_src", };
static const char *pll7_bypass_sels[] = { "pll7", "pll7_bypass_src", };
static const char *sys_sels[] = { "fast_clk_sel", "slow_clk_sel", "pll2_pfd_sel", "pll2_bus", "pll1_pfd_sel", "pll3_usb_otg", };
static const char *ddr_sels[] = { "pll2_pfd2", "sys_sel", };
static const char *rmii_sels[] = { "enet_ext", "audio_ext", "enet_50m", "enet_25m", };
static const char *enet_ts_sels[] = { "enet_ext", "fxosc", "audio_ext", "usb", "enet_ts", "enet_25m", "enet_50m", };
static const char *esai_sels[] = { "audio_ext", "mlb", "spdif_rx", "pll4_main_div", };
static const char *sai_sels[] = { "audio_ext", "mlb", "spdif_rx", "pll4_main_div", };
static const char *esai_sels[] = { "audio_ext", "mlb", "spdif_rx", "pll4_audio_div", };
static const char *sai_sels[] = { "audio_ext", "mlb", "spdif_rx", "pll4_audio_div", };
static const char *nfc_sels[] = { "platform_bus", "pll1_pfd1", "pll3_pfd1", "pll3_pfd3", };
static const char *qspi_sels[] = { "pll3_main", "pll3_pfd4", "pll2_pfd4", "pll1_pfd4", };
static const char *esdhc_sels[] = { "pll3_main", "pll3_pfd3", "pll1_pfd3", "platform_bus", };
static const char *dcu_sels[] = { "pll1_pfd2", "pll3_main", };
static const char *qspi_sels[] = { "pll3_usb_otg", "pll3_pfd4", "pll2_pfd4", "pll1_pfd4", };
static const char *esdhc_sels[] = { "pll3_usb_otg", "pll3_pfd3", "pll1_pfd3", "platform_bus", };
static const char *dcu_sels[] = { "pll1_pfd2", "pll3_usb_otg", };
static const char *gpu_sels[] = { "pll2_pfd2", "pll3_pfd2", };
static const char *vadc_sels[] = { "pll6_main_div", "pll3_main_div", "pll3_main", };
static const char *vadc_sels[] = { "pll6_video_div", "pll3_usb_otg_div", "pll3_usb_otg", };
/* FTM counter clock source, not module clock */
static const char *ftm_ext_sels[] = {"sirc_128k", "sxosc", "fxosc_half", "audio_ext", };
static const char *ftm_fix_sels[] = { "sxosc", "ipg_bus", };

static struct clk_div_table pll4_main_div_table[] = {

static struct clk_div_table pll4_audio_div_table[] = {
{ .val = 0, .div = 1 },
{ .val = 1, .div = 2 },
{ .val = 2, .div = 6 },
Expand Down Expand Up @@ -120,6 +135,9 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
clk[VF610_CLK_AUDIO_EXT] = imx_obtain_fixed_clock("audio_ext", 0);
clk[VF610_CLK_ENET_EXT] = imx_obtain_fixed_clock("enet_ext", 0);

/* Clock source from external clock via LVDs PAD */
clk[VF610_CLK_ANACLK1] = imx_obtain_fixed_clock("anaclk1", 0);

clk[VF610_CLK_FXOSC_HALF] = imx_clk_fixed_factor("fxosc_half", "fxosc", 1, 2);

np = of_find_compatible_node(NULL, NULL, "fsl,vf610-anatop");
Expand All @@ -133,31 +151,63 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
clk[VF610_CLK_SLOW_CLK_SEL] = imx_clk_mux("slow_clk_sel", CCM_CCSR, 4, 1, slow_sels, ARRAY_SIZE(slow_sels));
clk[VF610_CLK_FASK_CLK_SEL] = imx_clk_mux("fast_clk_sel", CCM_CCSR, 5, 1, fast_sels, ARRAY_SIZE(fast_sels));

clk[VF610_CLK_PLL1_MAIN] = imx_clk_fixed_factor("pll1_main", "fast_clk_sel", 22, 1);
clk[VF610_CLK_PLL1_PFD1] = imx_clk_pfd("pll1_pfd1", "pll1_main", PFD_PLL1_BASE, 0);
clk[VF610_CLK_PLL1_PFD2] = imx_clk_pfd("pll1_pfd2", "pll1_main", PFD_PLL1_BASE, 1);
clk[VF610_CLK_PLL1_PFD3] = imx_clk_pfd("pll1_pfd3", "pll1_main", PFD_PLL1_BASE, 2);
clk[VF610_CLK_PLL1_PFD4] = imx_clk_pfd("pll1_pfd4", "pll1_main", PFD_PLL1_BASE, 3);

clk[VF610_CLK_PLL2_MAIN] = imx_clk_fixed_factor("pll2_main", "fast_clk_sel", 22, 1);
clk[VF610_CLK_PLL2_PFD1] = imx_clk_pfd("pll2_pfd1", "pll2_main", PFD_PLL2_BASE, 0);
clk[VF610_CLK_PLL2_PFD2] = imx_clk_pfd("pll2_pfd2", "pll2_main", PFD_PLL2_BASE, 1);
clk[VF610_CLK_PLL2_PFD3] = imx_clk_pfd("pll2_pfd3", "pll2_main", PFD_PLL2_BASE, 2);
clk[VF610_CLK_PLL2_PFD4] = imx_clk_pfd("pll2_pfd4", "pll2_main", PFD_PLL2_BASE, 3);

clk[VF610_CLK_PLL3_MAIN] = imx_clk_fixed_factor("pll3_main", "fast_clk_sel", 20, 1);
clk[VF610_CLK_PLL3_PFD1] = imx_clk_pfd("pll3_pfd1", "pll3_main", PFD_PLL3_BASE, 0);
clk[VF610_CLK_PLL3_PFD2] = imx_clk_pfd("pll3_pfd2", "pll3_main", PFD_PLL3_BASE, 1);
clk[VF610_CLK_PLL3_PFD3] = imx_clk_pfd("pll3_pfd3", "pll3_main", PFD_PLL3_BASE, 2);
clk[VF610_CLK_PLL3_PFD4] = imx_clk_pfd("pll3_pfd4", "pll3_main", PFD_PLL3_BASE, 3);

clk[VF610_CLK_PLL4_MAIN] = imx_clk_fixed_factor("pll4_main", "fast_clk_sel", 25, 1);
/* Enet pll: fixed 50Mhz */
clk[VF610_CLK_PLL5_MAIN] = imx_clk_fixed_factor("pll5_main", "fast_clk_sel", 125, 6);
/* pll6: default 960Mhz */
clk[VF610_CLK_PLL6_MAIN] = imx_clk_fixed_factor("pll6_main", "fast_clk_sel", 40, 1);
/* pll7: USB1 PLL at 480MHz */
clk[VF610_CLK_PLL7_MAIN] = imx_clk_pllv3(IMX_PLLV3_USB, "pll7_main", "fast_clk_sel", PLL7_CTRL, 0x2);
clk[VF610_CLK_PLL1_BYPASS_SRC] = imx_clk_mux("pll1_bypass_src", PLL1_CTRL, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels));
clk[VF610_CLK_PLL2_BYPASS_SRC] = imx_clk_mux("pll2_bypass_src", PLL2_CTRL, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels));
clk[VF610_CLK_PLL3_BYPASS_SRC] = imx_clk_mux("pll3_bypass_src", PLL3_CTRL, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels));
clk[VF610_CLK_PLL4_BYPASS_SRC] = imx_clk_mux("pll4_bypass_src", PLL4_CTRL, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels));
clk[VF610_CLK_PLL5_BYPASS_SRC] = imx_clk_mux("pll5_bypass_src", PLL5_CTRL, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels));
clk[VF610_CLK_PLL6_BYPASS_SRC] = imx_clk_mux("pll6_bypass_src", PLL6_CTRL, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels));
clk[VF610_CLK_PLL7_BYPASS_SRC] = imx_clk_mux("pll7_bypass_src", PLL7_CTRL, 14, 1, pll_bypass_src_sels, ARRAY_SIZE(pll_bypass_src_sels));

clk[VF610_CLK_PLL1] = imx_clk_pllv3(IMX_PLLV3_GENERIC, "pll1", "pll1_bypass_src", PLL1_CTRL, 0x1);
clk[VF610_CLK_PLL2] = imx_clk_pllv3(IMX_PLLV3_GENERIC, "pll2", "pll2_bypass_src", PLL2_CTRL, 0x1);
clk[VF610_CLK_PLL3] = imx_clk_pllv3(IMX_PLLV3_USB, "pll3", "pll3_bypass_src", PLL3_CTRL, 0x1);
clk[VF610_CLK_PLL4] = imx_clk_pllv3(IMX_PLLV3_AV, "pll4", "pll4_bypass_src", PLL4_CTRL, 0x7f);
clk[VF610_CLK_PLL5] = imx_clk_pllv3(IMX_PLLV3_ENET, "pll5", "pll5_bypass_src", PLL5_CTRL, 0x3);
clk[VF610_CLK_PLL6] = imx_clk_pllv3(IMX_PLLV3_AV, "pll6", "pll6_bypass_src", PLL6_CTRL, 0x7f);
clk[VF610_CLK_PLL7] = imx_clk_pllv3(IMX_PLLV3_USB, "pll7", "pll7_bypass_src", PLL7_CTRL, 0x1);

clk[VF610_PLL1_BYPASS] = imx_clk_mux_flags("pll1_bypass", PLL1_CTRL, 16, 1, pll1_bypass_sels, ARRAY_SIZE(pll1_bypass_sels), CLK_SET_RATE_PARENT);
clk[VF610_PLL2_BYPASS] = imx_clk_mux_flags("pll2_bypass", PLL2_CTRL, 16, 1, pll2_bypass_sels, ARRAY_SIZE(pll2_bypass_sels), CLK_SET_RATE_PARENT);
clk[VF610_PLL3_BYPASS] = imx_clk_mux_flags("pll3_bypass", PLL3_CTRL, 16, 1, pll3_bypass_sels, ARRAY_SIZE(pll3_bypass_sels), CLK_SET_RATE_PARENT);
clk[VF610_PLL4_BYPASS] = imx_clk_mux_flags("pll4_bypass", PLL4_CTRL, 16, 1, pll4_bypass_sels, ARRAY_SIZE(pll4_bypass_sels), CLK_SET_RATE_PARENT);
clk[VF610_PLL5_BYPASS] = imx_clk_mux_flags("pll5_bypass", PLL5_CTRL, 16, 1, pll5_bypass_sels, ARRAY_SIZE(pll5_bypass_sels), CLK_SET_RATE_PARENT);
clk[VF610_PLL6_BYPASS] = imx_clk_mux_flags("pll6_bypass", PLL6_CTRL, 16, 1, pll6_bypass_sels, ARRAY_SIZE(pll6_bypass_sels), CLK_SET_RATE_PARENT);
clk[VF610_PLL7_BYPASS] = imx_clk_mux_flags("pll7_bypass", PLL7_CTRL, 16, 1, pll7_bypass_sels, ARRAY_SIZE(pll7_bypass_sels), CLK_SET_RATE_PARENT);

/* Do not bypass PLLs initially */
clk_set_parent(clk[VF610_PLL1_BYPASS], clk[VF610_CLK_PLL1]);
clk_set_parent(clk[VF610_PLL2_BYPASS], clk[VF610_CLK_PLL2]);
clk_set_parent(clk[VF610_PLL3_BYPASS], clk[VF610_CLK_PLL3]);
clk_set_parent(clk[VF610_PLL4_BYPASS], clk[VF610_CLK_PLL4]);
clk_set_parent(clk[VF610_PLL5_BYPASS], clk[VF610_CLK_PLL5]);
clk_set_parent(clk[VF610_PLL6_BYPASS], clk[VF610_CLK_PLL6]);
clk_set_parent(clk[VF610_PLL7_BYPASS], clk[VF610_CLK_PLL7]);

clk[VF610_CLK_PLL1_SYS] = imx_clk_gate("pll1_sys", "pll1_bypass", PLL1_CTRL, 13);
clk[VF610_CLK_PLL2_BUS] = imx_clk_gate("pll2_bus", "pll2_bypass", PLL2_CTRL, 13);
clk[VF610_CLK_PLL3_USB_OTG] = imx_clk_gate("pll3_usb_otg", "pll3_bypass", PLL3_CTRL, 13);
clk[VF610_CLK_PLL4_AUDIO] = imx_clk_gate("pll4_audio", "pll4_bypass", PLL4_CTRL, 13);
clk[VF610_CLK_PLL5_ENET] = imx_clk_gate("pll5_enet", "pll5_bypass", PLL5_CTRL, 13);
clk[VF610_CLK_PLL6_VIDEO] = imx_clk_gate("pll6_video", "pll6_bypass", PLL6_CTRL, 13);
clk[VF610_CLK_PLL7_USB_HOST] = imx_clk_gate("pll7_usb_host", "pll7_bypass", PLL7_CTRL, 13);

clk[VF610_CLK_LVDS1_IN] = imx_clk_gate_exclusive("lvds1_in", "anaclk1", ANA_MISC1, 12, BIT(10));

clk[VF610_CLK_PLL1_PFD1] = imx_clk_pfd("pll1_pfd1", "pll1_sys", PFD_PLL1_BASE, 0);
clk[VF610_CLK_PLL1_PFD2] = imx_clk_pfd("pll1_pfd2", "pll1_sys", PFD_PLL1_BASE, 1);
clk[VF610_CLK_PLL1_PFD3] = imx_clk_pfd("pll1_pfd3", "pll1_sys", PFD_PLL1_BASE, 2);
clk[VF610_CLK_PLL1_PFD4] = imx_clk_pfd("pll1_pfd4", "pll1_sys", PFD_PLL1_BASE, 3);

clk[VF610_CLK_PLL2_PFD1] = imx_clk_pfd("pll2_pfd1", "pll2_bus", PFD_PLL2_BASE, 0);
clk[VF610_CLK_PLL2_PFD2] = imx_clk_pfd("pll2_pfd2", "pll2_bus", PFD_PLL2_BASE, 1);
clk[VF610_CLK_PLL2_PFD3] = imx_clk_pfd("pll2_pfd3", "pll2_bus", PFD_PLL2_BASE, 2);
clk[VF610_CLK_PLL2_PFD4] = imx_clk_pfd("pll2_pfd4", "pll2_bus", PFD_PLL2_BASE, 3);

clk[VF610_CLK_PLL3_PFD1] = imx_clk_pfd("pll3_pfd1", "pll3_usb_otg", PFD_PLL3_BASE, 0);
clk[VF610_CLK_PLL3_PFD2] = imx_clk_pfd("pll3_pfd2", "pll3_usb_otg", PFD_PLL3_BASE, 1);
clk[VF610_CLK_PLL3_PFD3] = imx_clk_pfd("pll3_pfd3", "pll3_usb_otg", PFD_PLL3_BASE, 2);
clk[VF610_CLK_PLL3_PFD4] = imx_clk_pfd("pll3_pfd4", "pll3_usb_otg", PFD_PLL3_BASE, 3);

clk[VF610_CLK_PLL1_PFD_SEL] = imx_clk_mux("pll1_pfd_sel", CCM_CCSR, 16, 3, pll1_sels, 5);
clk[VF610_CLK_PLL2_PFD_SEL] = imx_clk_mux("pll2_pfd_sel", CCM_CCSR, 19, 3, pll2_sels, 5);
Expand All @@ -167,12 +217,12 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
clk[VF610_CLK_PLATFORM_BUS] = imx_clk_divider("platform_bus", "sys_bus", CCM_CACRR, 3, 3);
clk[VF610_CLK_IPG_BUS] = imx_clk_divider("ipg_bus", "platform_bus", CCM_CACRR, 11, 2);

clk[VF610_CLK_PLL3_MAIN_DIV] = imx_clk_divider("pll3_main_div", "pll3_main", CCM_CACRR, 20, 1);
clk[VF610_CLK_PLL4_MAIN_DIV] = clk_register_divider_table(NULL, "pll4_main_div", "pll4_main", 0, CCM_CACRR, 6, 3, 0, pll4_main_div_table, &imx_ccm_lock);
clk[VF610_CLK_PLL6_MAIN_DIV] = imx_clk_divider("pll6_main_div", "pll6_main", CCM_CACRR, 21, 1);
clk[VF610_CLK_PLL3_MAIN_DIV] = imx_clk_divider("pll3_usb_otg_div", "pll3_usb_otg", CCM_CACRR, 20, 1);
clk[VF610_CLK_PLL4_MAIN_DIV] = clk_register_divider_table(NULL, "pll4_audio_div", "pll4_audio", 0, CCM_CACRR, 6, 3, 0, pll4_audio_div_table, &imx_ccm_lock);
clk[VF610_CLK_PLL6_MAIN_DIV] = imx_clk_divider("pll6_video_div", "pll6_video", CCM_CACRR, 21, 1);

clk[VF610_CLK_USBPHY0] = imx_clk_gate("usbphy0", "pll3_main", PLL3_CTRL, 6);
clk[VF610_CLK_USBPHY1] = imx_clk_gate("usbphy1", "pll7_main", PLL7_CTRL, 6);
clk[VF610_CLK_USBPHY0] = imx_clk_gate("usbphy0", "pll3_usb_otg", PLL3_CTRL, 6);
clk[VF610_CLK_USBPHY1] = imx_clk_gate("usbphy1", "pll7_usb_host", PLL7_CTRL, 6);

clk[VF610_CLK_USBC0] = imx_clk_gate2("usbc0", "ipg_bus", CCM_CCGR1, CCM_CCGRx_CGn(4));
clk[VF610_CLK_USBC1] = imx_clk_gate2("usbc1", "ipg_bus", CCM_CCGR7, CCM_CCGRx_CGn(4));
Expand All @@ -191,8 +241,8 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
clk[VF610_CLK_QSPI1_X1_DIV] = imx_clk_divider("qspi1_x1", "qspi1_x2", CCM_CSCDR3, 11, 1);
clk[VF610_CLK_QSPI1] = imx_clk_gate2("qspi1", "qspi1_x1", CCM_CCGR8, CCM_CCGRx_CGn(4));

clk[VF610_CLK_ENET_50M] = imx_clk_fixed_factor("enet_50m", "pll5_main", 1, 10);
clk[VF610_CLK_ENET_25M] = imx_clk_fixed_factor("enet_25m", "pll5_main", 1, 20);
clk[VF610_CLK_ENET_50M] = imx_clk_fixed_factor("enet_50m", "pll5_enet", 1, 10);
clk[VF610_CLK_ENET_25M] = imx_clk_fixed_factor("enet_25m", "pll5_enet", 1, 20);
clk[VF610_CLK_ENET_SEL] = imx_clk_mux("enet_sel", CCM_CSCMR2, 4, 2, rmii_sels, 4);
clk[VF610_CLK_ENET_TS_SEL] = imx_clk_mux("enet_ts_sel", CCM_CSCMR2, 0, 3, enet_ts_sels, 7);
clk[VF610_CLK_ENET] = imx_clk_gate("enet", "enet_sel", CCM_CSCDR1, 24);
Expand Down
26 changes: 24 additions & 2 deletions arch/arm64/configs/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_ARCH_THUNDER=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_XGENE=y
CONFIG_PCI=y
CONFIG_PCI_MSI=y
CONFIG_PCI_XGENE=y
CONFIG_SMP=y
CONFIG_PREEMPT=y
CONFIG_KSM=y
Expand All @@ -52,6 +55,7 @@ CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_INET_LRO is not set
# CONFIG_IPV6 is not set
CONFIG_BPF_JIT=y
# CONFIG_WIRELESS is not set
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
Expand All @@ -65,16 +69,17 @@ CONFIG_VIRTIO_BLK=y
CONFIG_BLK_DEV_SD=y
# CONFIG_SCSI_LOWLEVEL is not set
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_AHCI_XGENE=y
CONFIG_PHY_XGENE=y
CONFIG_PATA_PLATFORM=y
CONFIG_PATA_OF_PLATFORM=y
CONFIG_NETDEVICES=y
CONFIG_TUN=y
CONFIG_VIRTIO_NET=y
CONFIG_NET_XGENE=y
CONFIG_SMC91X=y
CONFIG_SMSC911X=y
CONFIG_NET_XGENE=y
# CONFIG_WLAN is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_SERIO_SERPORT is not set
Expand All @@ -87,6 +92,11 @@ CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_HW_RANDOM is not set
# CONFIG_HMC_DRV is not set
CONFIG_SPI=y
CONFIG_SPI_PL022=y
CONFIG_GPIO_PL061=y
CONFIG_GPIO_XGENE=y
# CONFIG_HWMON is not set
CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
Expand All @@ -97,13 +107,25 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_ISP1760_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_STORAGE=y
CONFIG_USB_ULPI=y
CONFIG_MMC=y
CONFIG_MMC_ARMMMCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SPI=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_EFI=y
CONFIG_RTC_DRV_XGENE=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_MMIO=y
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_PHY_XGENE=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
Expand Down
Loading