This commit does the following to clean up x86 cpu dm drivers: - Move cpu_x86 driver codes from arch/x86/cpu/cpu.c to a dedicated file arch/x86/cpu/cpu_x86.c - Rename x86_cpu_get_desc() to cpu_x86_get_desc() to keep consistent naming with other dm drivers - Add a new cpu_x86_bind() in the cpu_x86 driver which does exactly the same as the one in the intel baytrail cpu driver - Update intel baytrail cpu driver to use cpu_x86_get_desc() and cpu_x86_bind() Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>master
parent
cb5cbfd503
commit
be3f06bcc4
@ -0,0 +1,48 @@ |
||||
/*
|
||||
* Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <cpu.h> |
||||
#include <dm.h> |
||||
#include <errno.h> |
||||
#include <asm/cpu.h> |
||||
|
||||
int cpu_x86_bind(struct udevice *dev) |
||||
{ |
||||
struct cpu_platdata *plat = dev_get_parent_platdata(dev); |
||||
|
||||
plat->cpu_id = fdtdec_get_int(gd->fdt_blob, dev->of_offset, |
||||
"intel,apic-id", -1); |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
int cpu_x86_get_desc(struct udevice *dev, char *buf, int size) |
||||
{ |
||||
if (size < CPU_MAX_NAME_LEN) |
||||
return -ENOSPC; |
||||
|
||||
cpu_get_name(buf); |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
static const struct cpu_ops cpu_x86_ops = { |
||||
.get_desc = cpu_x86_get_desc, |
||||
}; |
||||
|
||||
static const struct udevice_id cpu_x86_ids[] = { |
||||
{ .compatible = "cpu-x86" }, |
||||
{ } |
||||
}; |
||||
|
||||
U_BOOT_DRIVER(cpu_x86_drv) = { |
||||
.name = "cpu_x86", |
||||
.id = UCLASS_CPU, |
||||
.of_match = cpu_x86_ids, |
||||
.bind = cpu_x86_bind, |
||||
.ops = &cpu_x86_ops, |
||||
}; |
@ -0,0 +1,34 @@ |
||||
/*
|
||||
* Copyright (C) 2015, Bin Meng <bmeng.cn@gmail.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#ifndef _ASM_CPU_X86_H |
||||
#define _ASM_CPU_X86_H |
||||
|
||||
/**
|
||||
* cpu_x86_bind() - Bind an x86 CPU with the driver |
||||
* |
||||
* This updates cpu device's platform data with information from device tree, |
||||
* like the processor local apic id. |
||||
* |
||||
* @dev: Device to check (UCLASS_CPU) |
||||
* @return 0 always |
||||
*/ |
||||
int cpu_x86_bind(struct udevice *dev); |
||||
|
||||
/**
|
||||
* cpu_x86_get_desc() - Get a description string for an x86 CPU |
||||
* |
||||
* This uses cpu_get_name() and is suitable to use as the get_desc() method for |
||||
* the CPU uclass. |
||||
* |
||||
* @dev: Device to check (UCLASS_CPU) |
||||
* @buf: Buffer to place string |
||||
* @size: Size of string space |
||||
* @return: 0 if OK, -ENOSPC if buffer is too small, other -ve on error |
||||
*/ |
||||
int cpu_x86_get_desc(struct udevice *dev, char *buf, int size); |
||||
|
||||
#endif /* _ASM_CPU_X86_H */ |
Loading…
Reference in new issue